2 #ifndef __StMuMcTrack_h__
3 #define __StMuMcTrack_h__
4 #include "tables/St_g2t_track_Table.h"
5 #include "StThreeVectorF.hh"
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};
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;
17 mHits[keem] = 0xff & t.n_eem_hit;
18 mHits[kemc] = 0xff & t.n_emc_hit;
19 mHits[kesm] = 0xff & t.n_esm_hit;
20 mHits[kftp] = 0xff & t.n_ftp_hit;
21 mHits[kgem] = 0xff & t.n_gem_hit;
22 mHits[khpd] = 0xff & t.n_hpd_hit;
23 mHits[kist] = 0xff & t.n_ist_hit;
24 mHits[kigt] = 0xff & t.n_igt_hit;
25 mHits[kfst] = 0xff & t.n_fst_hit;
26 mHits[kfgt] = 0xff & t.n_fgt_hit;
27 mHits[kfpd] = 0xff & t.n_fpd_hit;
28 mHits[kmwc] = 0xff & t.n_mwc_hit;
29 mHits[kpgc] = 0xff & t.n_pgc_hit;
30 mHits[kpmd] = 0xff & t.n_pmd_hit;
31 mHits[ksmd] = 0xff & t.n_smd_hit;
32 mHits[kssd] = 0xff & t.n_ssd_hit;
33 mHits[ksvt] = 0xff & t.n_svt_hit;
34 mHits[kpix] = 0xff & t.n_pix_hit;
35 mHits[ktof] = 0xff & t.n_tof_hit;
36 mHits[ktpc] = 0xff & t.n_tpc_hit;
37 mHits[kvpd] = 0xff & t.n_vpd_hit;
42 Int_t GePid()
const {
return mGePid;}
43 Int_t Id()
const {
return mId;}
44 Bool_t IsShower()
const {
return mIsShower;}
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);}
48 UChar_t No_eem_hit()
const {
return NoHits(keem);}
49 UChar_t No_emc_hit()
const {
return NoHits(kemc);}
50 UChar_t No_esm_hit()
const {
return NoHits(kesm);}
51 UChar_t No_ftp_hit()
const {
return NoHits(kftp);}
52 UChar_t No_gem_hit()
const {
return NoHits(kgem);}
53 UChar_t No_hpd_hit()
const {
return NoHits(khpd);}
54 UChar_t No_ist_hit()
const {
return NoHits(kist);}
55 UChar_t No_igt_hit()
const {
return NoHits(kigt);}
56 UChar_t No_fst_hit()
const {
return NoHits(kfst);}
57 UChar_t No_fgt_hit()
const {
return NoHits(kfgt);}
58 UChar_t No_fpd_hit()
const {
return NoHits(kfpd);}
59 UChar_t No_mwc_hit()
const {
return NoHits(kmwc);}
60 UChar_t No_pgc_hit()
const {
return NoHits(kpgc);}
61 UChar_t No_pmd_hit()
const {
return NoHits(kpmd);}
62 UChar_t No_smd_hit()
const {
return NoHits(ksmd);}
63 UChar_t No_ssd_hit()
const {
return NoHits(kssd);}
64 UChar_t No_svt_hit()
const {
return NoHits(ksvt);}
65 UChar_t No_pix_hit()
const {
return NoHits(kpix);}
66 UChar_t No_tof_hit()
const {
return NoHits(ktof);}
67 UChar_t No_tpc_hit()
const {
return NoHits(ktpc);}
68 UChar_t No_vpd_hit()
const {
return NoHits(kvpd);}
69 Int_t ItrmdVertex()
const {
return mItrmdVertex;}
70 Int_t IdVx ()
const {
return mIdVx; }
71 Int_t IdVxEnd ()
const {
return mIdVxEnd; }
72 Char_t Charge ()
const {
return mCharge; }
73 Float_t E ()
const {
return mE; }
74 Float_t Eta ()
const {
return mEta; }
76 Float_t pT ()
const {
return mpT; }
77 Float_t Ptot ()
const {
return mPtot; }
78 Float_t Rapidity ()
const {
return mRapidity; }
79 virtual void Print(Option_t* option =
"")
const;
80 static Int_t CorrectGePid(Int_t gePid);
81 const Char_t *GeName();
99 ostream& operator<<(ostream& os,
StMuMcTrack const & v);
virtual void Print(Option_t *option="") const
Print track info.