]>
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, | |
824d3e1f | 28 | Double_t trkTheta, |
29 | Double_t trkPhi, | |
30 | Double_t signal, | |
31 | Double_t occ, | |
32 | Double_t chi2, | |
33 | Double_t trkX, | |
34 | Double_t trkY, | |
35 | Double_t mipX, | |
36 | Double_t mipY, | |
37 | Double_t *pid, | |
38 | Double_t *p ); // | |
3bf10ad9 | 39 | |
40 | ||
41 | AliAODHMPIDrings(const AliAODHMPIDrings& hmpidAOD);// | |
42 | AliAODHMPIDrings &operator=(const AliAODHMPIDrings& hmpidAOD);// | |
43 | virtual ~AliAODHMPIDrings() {}; | |
44 | ||
45 | //___ Getters | |
824d3e1f | 46 | Int_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 | |
824d3e1f | 55 | Double_t GetHmpTrackTheta() const { return fHmpidAODtrkTheta;} |
56 | Double_t GetHmpTrackPhi() const { return fHmpidAODtrkPhi;} | |
3bf10ad9 | 57 | |
824d3e1f | 58 | Double_t GetHmpSignal() const { return fHmpidAODsignal;} |
59 | Double_t GetHmpOccupancy() const { return fHmpidAODocc;} | |
567624b5 | 60 | |
824d3e1f | 61 | Double_t GetHmpChi2() const { return fHmpidAODchi2;} |
3bf10ad9 | 62 | |
824d3e1f | 63 | Double_t GetHmpTrackX() const { return fHmpidAODtrkX;} |
64 | Double_t GetHmpTrackY() const { return fHmpidAODtrkY;} | |
3bf10ad9 | 65 | |
824d3e1f | 66 | Double_t GetHmpMipX() const { return fHmpidAODmipX;} |
67 | Double_t GetHmpMipY() const { return fHmpidAODmipY;} | |
3bf10ad9 | 68 | |
824d3e1f | 69 | Double_t GetHmpDX() const { return fHmpidAODmipX - fHmpidAODtrkX;} |
70 | Double_t GetHmpDY() const { return fHmpidAODmipY - fHmpidAODtrkY;} | |
71 | Double_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 | ||
824d3e1f | 84 | void SetHmpTrackTheta(Double_t trkTheta) { fHmpidAODtrkTheta = trkTheta;} |
85 | void SetHmpTrackPhi(Double_t trkPhi) { fHmpidAODtrkPhi = trkPhi;} | |
3bf10ad9 | 86 | |
824d3e1f | 87 | void SetHmpSignal(Double_t thetaC) { fHmpidAODsignal = thetaC;} |
88 | void SetHmpOccupancy(Double_t occ) { fHmpidAODocc = occ;} | |
3bf10ad9 | 89 | |
824d3e1f | 90 | void SetHmpChi2(Double_t chi2) { fHmpidAODchi2 = chi2;} |
3bf10ad9 | 91 | |
824d3e1f | 92 | void SetHmpTrackX(Double_t trkX) { fHmpidAODtrkX = trkX;} |
93 | void SetHmpTrackY(Double_t trkY) { fHmpidAODtrkY = trkY;} | |
3bf10ad9 | 94 | |
824d3e1f | 95 | void SetHmpMipX(Double_t mipX) { fHmpidAODmipX = mipX;} |
96 | void SetHmpMipY(Double_t mipY) { fHmpidAODmipY = mipY;} | |
3bf10ad9 | 97 | |
824d3e1f | 98 | void SetHmpPidProbs(Double_t *pid); |
99 | void SetHmpMom(Double_t *mom); | |
3bf10ad9 | 100 | |
101 | ||
102 | ||
103 | protected: | |
104 | ||
105 | Int_t fHmpidAODtrkId; // Unique track id as in ESD | |
106 | Int_t fHmpidAODqn; // 1000000*number of photon clusters + QDC | |
107 | Int_t fHmpidAODcluIdx; // 1000000*chamber id + cluster idx of the assigned MIP cluster | |
108 | ||
109 | Double32_t fHmpidAODtrkTheta; // [-2*pi,2*pi,16] theta of the track extrapolated to the HMPID, LORS | |
110 | Double32_t fHmpidAODtrkPhi; // [-2*pi,2*pi,16] theta of the track extrapolated to the HMPID, LORS | |
824d3e1f | 111 | Double32_t fHmpidAODsignal; // HMPID signal (Theta ckov, rad) |
112 | Double32_t fHmpidAODocc; // chamber occupancy where the track passed through: number of pads | |
3bf10ad9 | 113 | Double32_t fHmpidAODchi2; // [0.,0.,8] chi2 in the HMPID |
824d3e1f | 114 | Double32_t fHmpidAODtrkX; // x of the track impact, LORS |
115 | Double32_t fHmpidAODtrkY; // y of the track impact, LORS | |
116 | Double32_t fHmpidAODmipX; // x of the MIP in LORS | |
117 | Double32_t fHmpidAODmipY; // y of the MIP in LORS | |
3bf10ad9 | 118 | Double32_t fHmpidAODpid[AliPID::kSPECIES]; // [0.,0.,8] "detector response probabilities" (for the PID) |
824d3e1f | 119 | Double32_t fHMPIDmom[3]; // track momentum at the HMPID ring reconstruction |
3bf10ad9 | 120 | |
824d3e1f | 121 | ClassDef(AliAODHMPIDrings,2) |
3bf10ad9 | 122 | |
123 | }; | |
124 | #endif |