StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StMuMcTrack.h
1 // $Id: StMuMcTrack.h,v 1.4 2014/08/06 19:19:07 perev Exp $
2 #ifndef __StMuMcTrack_h__
3 #define __StMuMcTrack_h__
4 #include "tables/St_g2t_track_Table.h"
5 #include "StThreeVectorF.hh"
6 class StMuMcTrack : public TObject {
7  public:
8  enum EHIT {ktpc, ksvt, kssd,
9  kctb, keem, kemc, kesm, kftp, kgem, khpd, kist, kigt, kfst,
10  kfgt, kfpd, kmwc, kpgc, kpmd, ksmd, kpix, ktof, kvpd, ktot};
11  StMuMcTrack(const g2t_track_st &t);
12 #if 0
13  StMuMcTrack(const g2t_track_st &t) : TObject(), mGePid(t.ge_pid), mId(t.id), mIsShower(t.is_shower), mItrmdVertex(t.itrmd_vertex_p),
14  mIdVx(t.start_vertex_p), mIdVxEnd(t.stop_vertex_p), mCharge(t.charge), mE(t.e), mEta(t. eta), mPxyz(t.p), mpT(t.pt), mPtot(t.ptot),
15  mRapidity(t.rapidity) {
16  mHits[kctb] = 0xff & t.n_ctb_hit; /* Nhits in ctb */
17  mHits[keem] = 0xff & t.n_eem_hit; /* Nhits in eem (endcap em cal) */
18  mHits[kemc] = 0xff & t.n_emc_hit; /* Nhits in emc */
19  mHits[kesm] = 0xff & t.n_esm_hit; /* Nhits in esm (endcap shower max) */
20  mHits[kftp] = 0xff & t.n_ftp_hit; /* Nhits in forward tpc */
21  mHits[kgem] = 0xff & t.n_gem_hit; /* Nhits in gem barrel */
22  mHits[khpd] = 0xff & t.n_hpd_hit; /* Nhits in hpd */
23  mHits[kist] = 0xff & t.n_ist_hit; /* Nhits in ist */
24  mHits[kigt] = 0xff & t.n_igt_hit; /* Nhits in igt */
25  mHits[kfst] = 0xff & t.n_fst_hit; /* Nhits in fst */
26  mHits[kfgt] = 0xff & t.n_fgt_hit; /* Nhits in fgt */
27  mHits[kfpd] = 0xff & t.n_fpd_hit; /* Nhits in fpd */
28  mHits[kmwc] = 0xff & t.n_mwc_hit; /* Nhits in mwc */
29  mHits[kpgc] = 0xff & t.n_pgc_hit; /* Nhits in pgc ??? */
30  mHits[kpmd] = 0xff & t.n_pmd_hit; /* Nhits in pmd (PMD) */
31  mHits[ksmd] = 0xff & t.n_smd_hit; /* number of hits in shower max */
32  mHits[kssd] = 0xff & t.n_ssd_hit; /* Nhits in ssd */
33  mHits[ksvt] = 0xff & t.n_svt_hit; /* Nhits in svt */
34  mHits[kpix] = 0xff & t.n_pix_hit; /* Nhits in pix */
35  mHits[ktof] = 0xff & t.n_tof_hit; /* Nhits in tof */
36  mHits[ktpc] = 0xff & t.n_tpc_hit; /* Nhits in tpc */
37  mHits[kvpd] = 0xff & t.n_vpd_hit; /* Nhits in vpd */
38  }
39 #endif
40  StMuMcTrack() {}
41  virtual ~StMuMcTrack() {}
42  Int_t GePid() const {return mGePid;} /* GEANT particle id */
43  Int_t Id() const {return mId;} /* primary key */
44  Bool_t IsShower() const {return mIsShower;} /* 1 if shower track, 0 if not */
45  Int_t NoHits() const {Int_t n = 0; for (Int_t i = ktpc; i < ktot; i++) n+= NoHits(i); return n;}
46  UChar_t NoHits(Int_t k)const {return mHits[k];}
47  UChar_t No_ctb_hit() const {return NoHits(kctb);} /* Nhits in ctb */
48  UChar_t No_eem_hit() const {return NoHits(keem);} /* Nhits in eem (endcap em cal) */
49  UChar_t No_emc_hit() const {return NoHits(kemc);} /* Nhits in emc */
50  UChar_t No_esm_hit() const {return NoHits(kesm);} /* Nhits in esm (endcap shower max) */
51  UChar_t No_ftp_hit() const {return NoHits(kftp);} /* Nhits in forward tpc */
52  UChar_t No_gem_hit() const {return NoHits(kgem);} /* Nhits in gem barrel */
53  UChar_t No_hpd_hit() const {return NoHits(khpd);} /* Nhits in hpd */
54  UChar_t No_ist_hit() const {return NoHits(kist);} /* Nhits in ist */
55  UChar_t No_igt_hit() const {return NoHits(kigt);} /* Nhits in igt */
56  UChar_t No_fst_hit() const {return NoHits(kfst);} /* Nhits in fst */
57  UChar_t No_fgt_hit() const {return NoHits(kfgt);} /* Nhits in fgt */
58  UChar_t No_fpd_hit() const {return NoHits(kfpd);} /* Nhits in fpd */
59  UChar_t No_mwc_hit() const {return NoHits(kmwc);} /* Nhits in mwc */
60  UChar_t No_pgc_hit() const {return NoHits(kpgc);} /* Nhits in pgc ??? */
61  UChar_t No_pmd_hit() const {return NoHits(kpmd);} /* Nhits in pmd (PMD) */
62  UChar_t No_smd_hit() const {return NoHits(ksmd);} /* number of hits in shower max */
63  UChar_t No_ssd_hit() const {return NoHits(kssd);} /* Nhits in ssd */
64  UChar_t No_svt_hit() const {return NoHits(ksvt);} /* Nhits in svt */
65  UChar_t No_pix_hit() const {return NoHits(kpix);} /* Nhits in pix */
66  UChar_t No_tof_hit() const {return NoHits(ktof);} /* Nhits in tof */
67  UChar_t No_tpc_hit() const {return NoHits(ktpc);} /* Nhits in tpc */
68  UChar_t No_vpd_hit() const {return NoHits(kvpd);} /* Nhits in vpd */
69  Int_t ItrmdVertex() const {return mItrmdVertex;} /* First intermediate vertex */
70  Int_t IdVx () const {return mIdVx; } /* Id of start vertex of track */
71  Int_t IdVxEnd () const {return mIdVxEnd; } /* Id of stop vertex of this track */
72  Char_t Charge () const {return mCharge; } /* Charge */
73  Float_t E () const {return mE; } /* Energy */
74  Float_t Eta () const {return mEta; } /* Pseudorapidity */
75  const StThreeVectorF& Pxyz () const {return *&mPxyz; } /* Momentum */
76  Float_t pT () const {return mpT; } /* Transverse momentum */
77  Float_t Ptot () const {return mPtot; } /* Total momentum */
78  Float_t Rapidity () const {return mRapidity; } /* Rapidity */
79  virtual void Print(Option_t* option = "") const;
80  static Int_t CorrectGePid(Int_t gePid);
81  const Char_t *GeName();
82  private:
83  Int_t mGePid; /* GEANT particle id */
84  Int_t mId; /* primary key */
85  Bool_t mIsShower; /* 1 if shower track, 0 if not */
86  UChar_t mHits[ktot]; /* Nhits in a detector */
87  Int_t mItrmdVertex; /* First intermediate vertex */
88  Int_t mIdVx; /* Id of start vertex of track */
89  Int_t mIdVxEnd; /* Id of stop vertex of this track */
90  Char_t mCharge; /* Charge */
91  Float_t mE; /* Energy */
92  Float_t mEta; /* Pseudorapidity */
93  StThreeVectorF mPxyz; /* Momentum */
94  Float_t mpT; /* Transverse momentum */
95  Float_t mPtot; /* Total momentum */
96  Float_t mRapidity; /* Rapidity */
97  ClassDef(StMuMcTrack,1)
98 };
99 ostream& operator<<(ostream& os, StMuMcTrack const & v);
100 #endif
101 // $Log: StMuMcTrack.h,v $
102 // Revision 1.4 2014/08/06 19:19:07 perev
103 // Move constructor .h ==> .cxx
104 //
105 // Revision 1.3 2012/05/07 14:47:06 fisyak
106 // Add handles for track to fast detector matching
107 //
108 // Revision 1.2 2011/10/17 00:19:14 fisyak
109 // Active handing of IdTruth
110 //
virtual void Print(Option_t *option="") const
Print track info.
Definition: StMuMcTrack.cxx:94