StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StPicoMcTrack.h
1 
8 #ifndef StPicoMcTrack_h
9 #define StPicoMcTrack_h
10 
11 // C++ headers
12 #include <vector>
13 
14 // ROOT headers
15 #include "TObject.h"
16 #include "TVector3.h"
17 #include "TLorentzVector.h"
18 
19 // PicoDst headers
20 #include "StPicoHelix.h"
21 #include "StPicoPhysicalHelix.h"
22 
23 #if defined (_VANILLA_ROOT_)
24 #include "SystemOfUnits.h"
25 #include "PhysicalConstants.h"
26 #else
27 #include "StarClassLibrary/SystemOfUnits.h"
28 #include "StarClassLibrary/PhysicalConstants.h"
29 #endif
30 
31 //_________________
32 class StPicoMcTrack : public TObject {
33 
34  public:
35 
37  StPicoMcTrack();
41  virtual ~StPicoMcTrack();
43  virtual void Print(const Char_t *option = "") const;
44 
46  enum EHIT {ktpc, ksvt, kssd, kctb, keem, kemc, kesm,
47  kftp, kgem, khpd, kist, kigt, kfst, kfgt,
48  kfpd, kmwc, kpgc, kpmd, ksmd, kpix, ktof,
49  kvpd, ktot};
50 
51  //
52  // Getters
53  //
54 
56  Int_t id() const { return mId; }
58  Int_t pdgId() const;
60  Int_t geantId() const { return (Int_t)mGePid; }
62  Int_t charge() const { return (Int_t)mCharge; }
64  TVector3 p() const { return TVector3(mPx, mPy, mPz); }
66  Float_t pt() const { return p().Perp(); }
68  Float_t ptot() const { return p().Mag(); }
70  Float_t eta() const { return p().PseudoRapidity(); }
72  TLorentzVector fourMomentum() const { return TLorentzVector(mPx,mPy,mPz,mE); }
74  Float_t energy() const { return mE; }
76  Float_t rapidity() const { return fourMomentum().Rapidity(); }
78  Bool_t isFromShower() const { return mIsFromShower; }
80  Int_t idVtxStart() const { return mIdVtxStart; }
82  Int_t idVtxStop() const { return mIdVtxStop; }
84  Int_t idVtxItrmd() const { return mIdVtxItrmd; }
86  Int_t nHits() const
87  { Int_t n=0; for (Int_t i=ktpc; i<ktot; i++) n+=nHits(i); return n; }
89  UChar_t nHits(Int_t k) const { return mHits[k]; }
91  UChar_t nHitsCtb() const { return mHits[kctb]; }
93  UChar_t nHitsEEmc() const { return mHits[keem]; }
95  UChar_t nHitsBEmc() const { return mHits[kemc]; }
97  UChar_t nHitsEsm() const { return mHits[kesm]; }
99  UChar_t nHitsFtpc() const { return mHits[kftp]; }
101  UChar_t nHitsGem() const { return mHits[kgem]; }
103  UChar_t nHitsHpd() const { return mHits[khpd]; }
105  UChar_t nHitsIst() const { return mHits[kist]; }
107  UChar_t nHitsIgt() const { return mHits[kigt]; }
109  UChar_t nHitsFst() const { return mHits[kfst]; }
111  UChar_t nHitsFgt() const { return mHits[kfgt]; }
113  UChar_t nHitsFpd() const { return mHits[kfpd]; }
115  UChar_t nHitsMwc() const { return mHits[kmwc]; }
117  UChar_t nHitsPgc() const { return mHits[kpgc]; }
119  UChar_t nHitsPmd() const { return mHits[kpmd]; }
121  UChar_t nHitsBsmd() const { return mHits[ksmd]; }
123  UChar_t nHitsSsd() const { return mHits[kssd]; }
125  UChar_t nHitsSvt() const { return mHits[ksvt]; }
127  UChar_t nHitsPxl() const { return mHits[kpix]; }
129  UChar_t nHitsTof() const { return mHits[ktof]; }
131  UChar_t nHitsTpc() const { return mHits[ktpc]; }
133  UChar_t nHitsVpd() const { return mHits[kvpd]; }
135  const Char_t *geName();
137  Int_t correctGePid(Int_t id);
138 
139  //
140  // Setters
141  //
142 
144  void setId(Int_t id);
146  void setGeantId(Int_t id) { mGePid = id; }
148  void setCharge(Int_t charge) { mCharge = (Char_t)charge; }
152  void setNHits(Int_t k, UChar_t n) { mHits[k] = n; }
154  void setP(Float_t px, Float_t py, Float_t pz) { mPx = px; mPy = py; mPz = pz; }
156  void setE(Float_t e) { mE = e; }
158  void setIsFromShower(Bool_t isFrom) { mIsFromShower = isFrom; }
160  void setIdVtxStart(Int_t id) { mIdVtxStart = (Short_t)id; }
162  void setIdVtxStop(Int_t id) { mIdVtxStop = (Short_t)id; }
164  void setIdVtxItrmd(Int_t id) { mIdVtxItrmd = (Short_t)id; }
165 
166 
167  private:
168 
170  UShort_t mId;
173  Int_t mGePid;
175  Char_t mCharge;
177  UChar_t mHits[ktot];
179  Float_t mPx;
181  Float_t mPy;
183  Float_t mPz;
185  Float_t mE;
189  Bool_t mIsFromShower;
191  Short_t mIdVtxStart;
193  Short_t mIdVtxStop;
195  Short_t mIdVtxItrmd;
196 
197  ClassDef(StPicoMcTrack, 1)
198 };
199 
200 #endif // #define StPicoMcTrack_h
void setE(Float_t e)
Set energy.
UChar_t nHitsPxl() const
Return number of hits in PXL.
UChar_t nHitsMwc() const
Return number of hits in MWC.
StPicoMcTrack()
Default constructor.
Float_t pt() const
Return pT of the track.
Definition: StPicoMcTrack.h:66
void setIdVtxStop(Int_t id)
Set stop MC vertex index.
UChar_t nHitsBEmc() const
Return number of hits in BEMC.
Definition: StPicoMcTrack.h:95
UChar_t nHitsPmd() const
Return number of hits in PMD.
UChar_t nHitsTpc() const
Return number of hits in TPC.
UChar_t nHitsBsmd() const
Return number of hits in BSMD.
Int_t geantId() const
Return particle ID defined by GEANT (accordingly to GPART)
Definition: StPicoMcTrack.h:60
UChar_t nHitsIgt() const
Return number of hits in IGT.
Int_t pdgId() const
Return particle ID defined by PDG.
UChar_t nHitsPgc() const
Return number of hits in PGC.
const Char_t * geName()
Return particle names (GEANT ID according to GPART)
UChar_t nHitsIst() const
Return number of hits in IST.
Int_t id() const
Return MC track ID (GEANT track ID)
Definition: StPicoMcTrack.h:56
UChar_t nHitsFtpc() const
Return number of hits in forward TPC.
Definition: StPicoMcTrack.h:99
void setIsFromShower(Bool_t isFrom)
Set flag if track comes from shower.
UChar_t nHitsTof() const
Return number of hits in TOF.
UChar_t nHitsFgt() const
Return number of hits in FGT.
EHIT
Detector names.
Definition: StPicoMcTrack.h:46
UChar_t nHitsGem() const
Return number of hits in barrel GEM.
Int_t idVtxStop() const
ID of stop MC vertex.
Definition: StPicoMcTrack.h:82
Int_t nHits() const
Return total number of hits.
Definition: StPicoMcTrack.h:86
UChar_t nHitsFpd() const
Return number of hits in FPD.
UChar_t nHitsSvt() const
Return number of hits in SVT.
void setId(Int_t id)
Set MC track ID (primary key/GEANT track ID)
Int_t correctGePid(Int_t id)
Return corrected GePid (to take embedding into account)
void setNHits(Int_t k, UChar_t n)
Int_t idVtxItrmd() const
ID of intermediate MC vertex.
Definition: StPicoMcTrack.h:84
Int_t idVtxStart() const
ID of start MC vertex.
Definition: StPicoMcTrack.h:80
UChar_t nHitsVpd() const
Return number of hits in VPD.
Float_t ptot() const
Return track total momentum.
Definition: StPicoMcTrack.h:68
Holds information about Monte Carlo track parameters.
Definition: StPicoMcTrack.h:32
UChar_t nHitsFst() const
Return number of hits in FST.
UChar_t nHitsEsm() const
Return number of hits in EEMC shower max detector.
Definition: StPicoMcTrack.h:97
virtual void Print(const Char_t *option="") const
Print MC track parameters.
Bool_t isFromShower() const
Check if track is from shower.
Definition: StPicoMcTrack.h:78
Float_t rapidity() const
Rapidity of the track.
Definition: StPicoMcTrack.h:76
Float_t energy() const
Energy of the track.
Definition: StPicoMcTrack.h:74
UChar_t nHitsCtb() const
Return number of hits in CTB.
Definition: StPicoMcTrack.h:91
TVector3 p() const
Return track three-momentum.
Definition: StPicoMcTrack.h:64
Int_t charge() const
Return charge of the particle.
Definition: StPicoMcTrack.h:62
UChar_t nHits(Int_t k) const
Return number of hits in a given detector.
Definition: StPicoMcTrack.h:89
virtual ~StPicoMcTrack()
Destructor.
void setIdVtxStart(Int_t id)
Set start MC vertex index.
UChar_t nHitsSsd() const
Return number of hits in SSD.
Float_t eta() const
Return pseudorapidity of the track.
Definition: StPicoMcTrack.h:70
TLorentzVector fourMomentum() const
Four-momentum of the track.
Definition: StPicoMcTrack.h:72
UChar_t nHitsHpd() const
Return number of hits in HPD.
void setIdVtxItrmd(Int_t id)
Set first intermediate MC vertex index.
UChar_t nHitsEEmc() const
Return number of hits in EEMC.
Definition: StPicoMcTrack.h:93
void setGeantId(Int_t id)
Set GEANT ID (according to GPART)
void setCharge(Int_t charge)
Set particle charge.
void setP(Float_t px, Float_t py, Float_t pz)
Set three-momentum.