]>
Commit | Line | Data |
---|---|---|
6aecf4fd | 1 | // |
2 | // Class AliRsnMonitorTrack | |
3 | // | |
4 | // Monitor object used | |
5 | // for storing info ina TTree | |
6 | // and studying cut values and variables. | |
7 | // | |
8 | // author: A. Pulvirenti | |
9 | // | |
10 | ||
11 | #ifndef ALIRSNMONITORTRACK_H | |
12 | #define ALIRSNMONITORTRACK_H | |
13 | ||
14 | #include "AliPID.h" | |
15 | ||
16 | class AliESDtrack; | |
17 | class AliTOFT0maker; | |
18 | class AliStack; | |
19 | ||
20 | class AliRsnMonitorTrack : public TObject | |
21 | { | |
22 | public: | |
23 | ||
24 | AliRsnMonitorTrack(); | |
25 | AliRsnMonitorTrack(const AliRsnMonitorTrack& copy); | |
26 | //AliRsnMonitorTrack& operator=(const AliRsnMonitorTrack& copy) {MakeCopy(copy); return (*this);} | |
27 | virtual ~AliRsnMonitorTrack() { /*nothing*/ } | |
28 | ||
29 | void Reset(); | |
30 | Bool_t AdoptMC(Int_t label, AliStack *stack); | |
31 | ||
32 | Bool_t& IsUsable() {return fUsable;} | |
33 | void SetUsable() {fUsable = kTRUE;} | |
34 | Bool_t& CutsPassed() {return fCutsPassed;} | |
35 | ||
36 | Double_t& PsimX() {return fPsim[0];} | |
37 | Double_t& PrecX() {return fPrec[0];} | |
38 | Double_t& PtpcX() {return fPtpc[0];} | |
39 | ||
40 | Double_t& PsimY() {return fPsim[1];} | |
41 | Double_t& PrecY() {return fPrec[1];} | |
42 | Double_t& PtpcY() {return fPtpc[1];} | |
43 | ||
44 | Double_t& PsimZ() {return fPsim[2];} | |
45 | Double_t& PrecZ() {return fPrec[2];} | |
46 | Double_t& PtpcZ() {return fPtpc[2];} | |
47 | ||
48 | Double_t PsimT() {return TMath::Sqrt(fPsim[0]*fPsim[0] + fPsim[1]*fPsim[1]);} | |
49 | Double_t PrecT() {return TMath::Sqrt(fPrec[0]*fPrec[0] + fPrec[1]*fPrec[1]);} | |
50 | Double_t PtpcT() {return TMath::Sqrt(fPtpc[0]*fPtpc[0] + fPtpc[1]*fPtpc[1]);} | |
51 | ||
52 | Double_t Psim() {return TMath::Sqrt(PsimT()*PsimT() + fPsim[2]*fPsim[2]);} | |
53 | Double_t Prec() {return TMath::Sqrt(PrecT()*PrecT() + fPrec[2]*fPrec[2]);} | |
54 | Double_t Ptpc() {return TMath::Sqrt(PtpcT()*PtpcT() + fPtpc[2]*fPtpc[2]);} | |
55 | ||
56 | Bool_t& Prim() {return fPrim;} | |
57 | Int_t& PDG() {return fPDG;} | |
58 | Int_t& PDGM() {return fPDGM;} | |
59 | Int_t& Mother() {return fMother;} | |
60 | ||
61 | UInt_t& Status() {return fStatus;} | |
62 | Double_t& Length() {return fLength;} | |
63 | Int_t& Charge() {return fCharge;} | |
64 | Bool_t& ITSsa() {return fITSsa;} | |
65 | Double_t& DCAr() {return fDCA[0];} | |
66 | Double_t& DCAz() {return fDCA[1];} | |
67 | ||
68 | Bool_t& ITSmap(Int_t i) {if (i>=0 && i<6) return fITSmap[i]; else return fITSmap[0];} | |
69 | Int_t ITScount() {return (SPDcount() + SDDcount() + SSDcount());} | |
70 | Int_t SPDcount() {Int_t count=0; if (fITSmap[0]) count++; if (fITSmap[1]) count++; return count;} | |
71 | Int_t SDDcount() {Int_t count=0; if (fITSmap[2]) count++; if (fITSmap[3]) count++; return count;} | |
72 | Int_t SSDcount() {Int_t count=0; if (fITSmap[4]) count++; if (fITSmap[5]) count++; return count;} | |
73 | Double_t& ITSchi2() {return fITSchi2;} | |
74 | Double_t& ITSdedx(Int_t i) {if (i>=0 && i<4) return fITSdedx[i]; else return fITSdedx[0];} | |
75 | Double_t& ITSsignal() {return fITSsignal;} | |
76 | Double_t& ITSnsigma() {return fITSnsigma;} | |
77 | ||
78 | Double_t& TPCdedx() {return fTPCdedx;} | |
79 | Int_t& TPCcount() {return fTPCcount;} | |
80 | Double_t& TPCref(Int_t i) {if (i>=0 && i<AliPID::kSPECIES) return fTPCref[i]; else return fTPCref[0];} | |
81 | Double_t& TPCchi2() {return fTPCchi2;} | |
82 | Double_t& TPCnsigma() {return fTPCnsigma;} | |
83 | ||
84 | Double_t& TOFsignal() {return fTOFsignal;} | |
85 | Double_t& TOFsigma(Int_t i){if (i>=0 && i<AliPID::kSPECIES) return fTOFsigma[i]; else return fTOFsigma[0];} | |
86 | Double_t& TOFref(Int_t i) {if (i>=0 && i<AliPID::kSPECIES) return fTOFref[i]; else return fTOFref[0];} | |
87 | ||
88 | private: | |
89 | ||
90 | Bool_t fUsable; // utility flag | |
91 | Bool_t fCutsPassed; // did it pass all defined cuts? | |
92 | ||
93 | Bool_t fPrim; // is physical primary? | |
94 | Int_t fPDG; // true PDG code | |
95 | Int_t fPDGM; // PDG code of mother (if any) | |
96 | Int_t fMother; // label of mother (if any) | |
97 | ||
98 | UInt_t fStatus; // 'status' flag of track in ESD (0 = none) | |
99 | Double_t fLength; // integrated length | |
100 | Int_t fCharge; // track charge | |
101 | Bool_t fITSsa; // to know if its is ITS standalone | |
102 | Double_t fDCA[2]; // DCA ([0] = xy, [1] = z) | |
103 | ||
104 | Bool_t fITSmap[6]; // ITS cluster map | |
105 | Double_t fITSchi2; // chi2 in ITS | |
106 | Double_t fITSdedx[4]; // ITS dEdx signal in the 4 analog layers | |
107 | Double_t fITSsignal; // ITS signal used for PID | |
108 | Double_t fITSnsigma; // number of sigmas ITS | |
109 | ||
110 | Double_t fTPCchi2; // TPC chi 2 | |
111 | Double_t fTPCdedx; // TPC dEdx signal | |
112 | Int_t fTPCcount; // # TPC clusters | |
113 | Double_t fTPCref[AliPID::kSPECIES]; // ALEPH Bethe-Bloch count for: e, mu, pi, K, p | |
114 | Double_t fTPCnsigma; // number of sigmas TPC | |
115 | ||
116 | Double_t fTOFsignal; // TOF signal | |
117 | Double_t fTOFsigma[AliPID::kSPECIES]; // TOF sigma for: e, mu, pi, K, p | |
118 | Double_t fTOFref[AliPID::kSPECIES]; // expected times for: e, mu, pi, K, p | |
119 | ||
120 | Double_t fPsim[3]; // simulated momentum | |
121 | Double_t fPrec[3]; // reconstructed momentum | |
122 | Double_t fPtpc[3]; // reconstructed momentum at the TPC inner wall | |
123 | ||
124 | ClassDef(AliRsnMonitorTrack, 1) | |
125 | }; | |
126 | ||
127 | #endif |