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,
11 ketr, khca, kfts, keto, kstg, kwca, kpre, kepd,
15 StMuMcTrack(
const g2t_track_st &t) : TObject(), mGePid(t.ge_pid), mId(t.id), mIsShower(t.is_shower), mItrmdVertex(t.itrmd_vertex_p),
16 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),
17 mRapidity(t.rapidity) {
18 mHits[kctb] = 0xff & t.n_ctb_hit;
19 mHits[keem] = 0xff & t.n_eem_hit;
20 mHits[kemc] = 0xff & t.n_emc_hit;
21 mHits[kesm] = 0xff & t.n_esm_hit;
22 mHits[kftp] = 0xff & t.n_ftp_hit;
23 mHits[kgem] = 0xff & t.n_gem_hit;
24 mHits[khpd] = 0xff & t.n_hpd_hit;
25 mHits[kist] = 0xff & t.n_ist_hit;
26 mHits[kigt] = 0xff & t.n_igt_hit;
27 mHits[kfst] = 0xff & t.n_fst_hit;
28 mHits[kfgt] = 0xff & t.n_fgt_hit;
29 mHits[kfpd] = 0xff & t.n_fpd_hit;
30 mHits[kmwc] = 0xff & t.n_mwc_hit;
31 mHits[kpgc] = 0xff & t.n_pgc_hit;
32 mHits[kpmd] = 0xff & t.n_pmd_hit;
33 mHits[ksmd] = 0xff & t.n_smd_hit;
34 mHits[kssd] = 0xff & t.n_ssd_hit;
35 mHits[ksvt] = 0xff & t.n_svt_hit;
36 mHits[kpix] = 0xff & t.n_pix_hit;
37 mHits[ktof] = 0xff & t.n_tof_hit;
38 mHits[ktpc] = 0xff & t.n_tpc_hit;
39 mHits[kvpd] = 0xff & t.n_vpd_hit;
44 Int_t GePid()
const {
return mGePid;}
45 Int_t Id()
const {
return mId;}
46 Bool_t IsShower()
const {
return mIsShower;}
47 Int_t NoHits()
const {Int_t n = 0;
for (Int_t i = ktpc; i < ktot; i++) n+= NoHits(i);
return n;}
48 UChar_t NoHits(Int_t k)
const {
return mHits[k];}
49 UChar_t No_ctb_hit()
const {
return NoHits(kctb);}
50 UChar_t No_eem_hit()
const {
return NoHits(keem);}
51 UChar_t No_emc_hit()
const {
return NoHits(kemc);}
52 UChar_t No_esm_hit()
const {
return NoHits(kesm);}
53 UChar_t No_ftp_hit()
const {
return NoHits(kftp);}
54 UChar_t No_gem_hit()
const {
return NoHits(kgem);}
55 UChar_t No_hpd_hit()
const {
return NoHits(khpd);}
56 UChar_t No_ist_hit()
const {
return NoHits(kist);}
57 UChar_t No_igt_hit()
const {
return NoHits(kigt);}
58 UChar_t No_fst_hit()
const {
return NoHits(kfst);}
59 UChar_t No_fgt_hit()
const {
return NoHits(kfgt);}
60 UChar_t No_fpd_hit()
const {
return NoHits(kfpd);}
61 UChar_t No_mwc_hit()
const {
return NoHits(kmwc);}
62 UChar_t No_pgc_hit()
const {
return NoHits(kpgc);}
63 UChar_t No_pmd_hit()
const {
return NoHits(kpmd);}
64 UChar_t No_smd_hit()
const {
return NoHits(ksmd);}
65 UChar_t No_ssd_hit()
const {
return NoHits(kssd);}
66 UChar_t No_svt_hit()
const {
return NoHits(ksvt);}
67 UChar_t No_pix_hit()
const {
return NoHits(kpix);}
68 UChar_t No_tof_hit()
const {
return NoHits(ktof);}
69 UChar_t No_tpc_hit()
const {
return NoHits(ktpc);}
70 UChar_t No_vpd_hit()
const {
return NoHits(kvpd);}
71 UChar_t No_etr_hit()
const {
return NoHits(ketr);}
72 UChar_t No_hca_hit()
const {
return NoHits(khca);}
73 UChar_t No_fts_hit()
const {
return NoHits(kfts);}
74 UChar_t No_eto_hit()
const {
return NoHits(keto);}
75 UChar_t No_stg_hit()
const {
return NoHits(kstg);}
76 UChar_t No_wca_hit()
const {
return NoHits(kwca);}
77 UChar_t No_pre_hit()
const {
return NoHits(kpre);}
78 UChar_t No_epd_hit()
const {
return NoHits(kepd);}
79 Int_t ItrmdVertex()
const {
return mItrmdVertex;}
80 Int_t IdVx ()
const {
return mIdVx; }
81 Int_t IdVxEnd ()
const {
return mIdVxEnd; }
82 Char_t Charge ()
const {
return mCharge; }
83 Float_t E ()
const {
return mE; }
84 Float_t Eta ()
const {
return mEta; }
86 Float_t pT ()
const {
return mpT; }
87 Float_t Ptot ()
const {
return mPtot; }
88 Float_t Rapidity ()
const {
return mRapidity; }
89 virtual void Print(Option_t* option =
"")
const;
90 static Int_t CorrectGePid(Int_t gePid);
91 const Char_t *GeName();
109 ostream& operator<<(ostream& os,
StMuMcTrack const & v);
virtual void Print(Option_t *option="") const
Print track info.