]>
Commit | Line | Data |
---|---|---|
3bf10ad9 | 1 | #ifndef ALIAODHMPIDRINGS_H |
2 | #define ALIAODHMPIDRINGS_H | |
3 | ||
4 | ||
5 | // | |
6 | // Class to handle the AOD tracks with good HMPID rings | |
7 | // Author: Levente Molnar | |
8 | // levente.molnar@cern.ch , March 2012 | |
9 | // | |
10 | ||
11 | ||
12 | ||
13 | //___ROOT includes | |
14 | #include <TMath.h> | |
15 | //___AliRoot includes | |
16 | #include "AliPID.h" | |
17 | ||
18 | ||
19 | class AliAODHMPIDrings : public TObject { | |
20 | ||
21 | public: | |
22 | ||
23 | AliAODHMPIDrings(); | |
24 | AliAODHMPIDrings( | |
25 | Int_t trkId, | |
26 | Int_t qn, | |
27 | Int_t cluIdx, | |
28 | Double32_t trkTheta, | |
29 | Double32_t trkPhi, | |
30 | Double32_t signal, | |
31 | Double32_t occ, | |
32 | Double32_t chi2, | |
33 | Double32_t trkX, | |
34 | Double32_t trkY, | |
35 | Double32_t mipX, | |
36 | Double32_t mipY, | |
37 | Double32_t *pid, | |
38 | Double32_t *p ); // | |
39 | ||
40 | ||
41 | AliAODHMPIDrings(const AliAODHMPIDrings& hmpidAOD);// | |
42 | AliAODHMPIDrings &operator=(const AliAODHMPIDrings& hmpidAOD);// | |
43 | virtual ~AliAODHMPIDrings() {}; | |
44 | ||
45 | //___ Getters | |
567624b5 | 46 | Double32_t GetHmpTrkID() const { return fHmpidAODtrkId; } |
3bf10ad9 | 47 | |
567624b5 | 48 | Double32_t GetHmpMipCharge() const { return fHmpidAODqn%1000000; } |
49 | Double32_t GetHmpNumOfPhotonClusters() const { return fHmpidAODqn/1000000;} | |
3bf10ad9 | 50 | |
567624b5 | 51 | Int_t GetHmpChamber() const { return fHmpidAODcluIdx/1000000; } |
3bf10ad9 | 52 | |
567624b5 | 53 | Int_t GetHmpCluIdx() const { return fHmpidAODcluIdx; } |
3bf10ad9 | 54 | |
567624b5 | 55 | Double32_t GetHmpTrackTheta() const { return fHmpidAODtrkTheta;} |
56 | Double32_t GetHmpTrackPhi() const { return fHmpidAODtrkPhi;} | |
3bf10ad9 | 57 | |
567624b5 | 58 | Double32_t GetHmpSignal() const { return fHmpidAODsignal;} |
59 | Double32_t GetHmpOccupancy() const { return fHmpidAODocc;} | |
60 | ||
61 | Double32_t GetHmpChi2() const { return fHmpidAODchi2;} | |
3bf10ad9 | 62 | |
567624b5 | 63 | Double32_t GetHmpTrackX() const { return fHmpidAODtrkX;} |
64 | Double32_t GetHmpTrackY() const { return fHmpidAODtrkY;} | |
3bf10ad9 | 65 | |
567624b5 | 66 | Double32_t GetHmpMipX() const { return fHmpidAODmipX;} |
67 | Double32_t GetHmpMipY() const { return fHmpidAODmipY;} | |
3bf10ad9 | 68 | |
567624b5 | 69 | Double32_t GetHmpDX() const { return fHmpidAODmipX - fHmpidAODtrkX;} |
70 | Double32_t GetHmpDY() const { return fHmpidAODmipY - fHmpidAODtrkY;} | |
71 | Double32_t GetHmpDist() const { return TMath::Sqrt((fHmpidAODmipX - fHmpidAODtrkX)*(fHmpidAODmipX - fHmpidAODtrkX) + (fHmpidAODmipY - fHmpidAODtrkY)*(fHmpidAODmipY - fHmpidAODtrkY));} | |
3bf10ad9 | 72 | |
73 | ||
567624b5 | 74 | void GetHmpPidProbs(Double32_t *pid) const; //defined in cxx |
75 | void GetHmpMom(Double32_t *mom) const; //defined in cxx | |
3bf10ad9 | 76 | |
77 | //___ Setters | |
78 | ||
79 | void SetHmpMipCharge(Int_t q) { fHmpidAODqn = q; } | |
80 | void SetHmpCluIdx(Int_t ch,Int_t idx) { fHmpidAODcluIdx=ch*1000000+idx;} | |
81 | ||
82 | void SetHmpNumOfPhotonClusters(Int_t nph) { fHmpidAODqn = 1000000 * nph;} | |
83 | ||
84 | void SetHmpTrackTheta(Double32_t trkTheta) { fHmpidAODtrkTheta = trkTheta;} | |
85 | void SetHmpTrackPhi(Double32_t trkPhi) { fHmpidAODtrkPhi = trkPhi;} | |
86 | ||
87 | void SetHmpSignal(Double32_t thetaC) { fHmpidAODsignal = thetaC;} | |
88 | void SetHmpOccupancy(Double32_t occ) { fHmpidAODocc = occ;} | |
89 | ||
90 | void SetHmpChi2(Double32_t chi2) { fHmpidAODchi2 = chi2;} | |
91 | ||
92 | void SetHmpTrackX(Double32_t trkX) { fHmpidAODtrkX = trkX;} | |
93 | void SetHmpTrackY(Double32_t trkY) { fHmpidAODtrkY = trkY;} | |
94 | ||
95 | void SetHmpMipX(Double32_t mipX) { fHmpidAODmipX = mipX;} | |
96 | void SetHmpMipY(Double32_t mipY) { fHmpidAODmipY = mipY;} | |
97 | ||
98 | void SetHmpPidProbs(Double32_t *pid); | |
99 | void SetHmpMom(Double32_t *mom); | |
100 | ||
101 | ||
102 | // blablabla | |
103 | ||
104 | ||
105 | ||
106 | protected: | |
107 | ||
108 | Int_t fHmpidAODtrkId; // Unique track id as in ESD | |
109 | Int_t fHmpidAODqn; // 1000000*number of photon clusters + QDC | |
110 | Int_t fHmpidAODcluIdx; // 1000000*chamber id + cluster idx of the assigned MIP cluster | |
111 | ||
112 | Double32_t fHmpidAODtrkTheta; // [-2*pi,2*pi,16] theta of the track extrapolated to the HMPID, LORS | |
113 | Double32_t fHmpidAODtrkPhi; // [-2*pi,2*pi,16] theta of the track extrapolated to the HMPID, LORS | |
114 | Double32_t fHmpidAODsignal; // [0,0.9,8] HMPID signal (Theta ckov, rad) | |
115 | Double32_t fHmpidAODocc; // [0,0,,8] chamber occupancy where the track passed through: number of pads | |
116 | Double32_t fHmpidAODchi2; // [0.,0.,8] chi2 in the HMPID | |
117 | Double32_t fHmpidAODtrkX; // [0.,0.,8] x of the track impact, LORS | |
118 | Double32_t fHmpidAODtrkY; // [0.,0.,8] y of the track impact, LORS | |
119 | Double32_t fHmpidAODmipX; // [0.,0.,8] x of the MIP in LORS | |
120 | Double32_t fHmpidAODmipY; // [0.,0.,8] y of the MIP in LORS | |
121 | Double32_t fHmpidAODpid[AliPID::kSPECIES]; // [0.,0.,8] "detector response probabilities" (for the PID) | |
122 | Double32_t fHMPIDmom[3]; // [0.,0.,8] track momentum at the HMPID ring reconstruction | |
123 | ||
124 | ClassDef(AliAODHMPIDrings,1) | |
125 | ||
126 | }; | |
127 | #endif |