]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AOD/AliAODHMPIDrings.h
fTRDsignal is added to AliAODPid class (copied from AliESDtrack).
[u/mrichter/AliRoot.git] / STEER / AOD / AliAODHMPIDrings.h
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
46   Double32_t GetHmpTrkID()                { return fHmpidAODtrkId; }
47   
48   Double32_t GetHmpMipCharge()            { return fHmpidAODqn%1000000; }
49   Double32_t GetHmpNumOfPhotonClusters()  { return fHmpidAODqn/1000000;}
50  
51   Int_t      GetHmpChamber()              { return fHmpidAODcluIdx/1000000; }
52   
53   Double32_t GetHmpTrackTheta()           { return fHmpidAODtrkTheta;}
54   Double32_t GetHmpTrackPhi()             { return fHmpidAODtrkPhi;}
55   
56   Double32_t GetHmpSignal()               { return fHmpidAODsignal;}
57   Double32_t GetHmpOccupancy()            { return fHmpidAODocc;}
58   
59   Double32_t GetHmpChi2()                 { return fHmpidAODchi2;}
60
61   Double32_t GetHmpTrackX()               { return fHmpidAODtrkX;}
62   Double32_t GetHmpTrackY()               { return fHmpidAODtrkY;}
63
64   Double32_t GetHmpMipX()                 { return fHmpidAODmipX;}
65   Double32_t GetHmpMipY()                 { return fHmpidAODmipY;}
66
67   Double32_t GetHmpDX()                   { return fHmpidAODmipX - fHmpidAODtrkX;}
68   Double32_t GetHmpDY()                   { return fHmpidAODmipY - fHmpidAODtrkY;}
69   Double32_t GetHmpDist()                 { return TMath::Sqrt((fHmpidAODmipX - fHmpidAODtrkX)*(fHmpidAODmipX - fHmpidAODtrkX) + (fHmpidAODmipY - fHmpidAODtrkY)*(fHmpidAODmipY - fHmpidAODtrkY));}
70   
71   
72   void GetHmpPidProbs(Double32_t *pid);   //defined in cxx
73   void GetHmpMom(Double32_t *mom);        //defined in cxx
74   
75   //___ Setters
76   
77   void SetHmpMipCharge(Int_t q)               { fHmpidAODqn = q; }
78   void SetHmpCluIdx(Int_t ch,Int_t idx)       { fHmpidAODcluIdx=ch*1000000+idx;}
79   
80   void SetHmpNumOfPhotonClusters(Int_t nph)   { fHmpidAODqn = 1000000 * nph;}
81   
82   void SetHmpTrackTheta(Double32_t trkTheta)  { fHmpidAODtrkTheta = trkTheta;}
83   void SetHmpTrackPhi(Double32_t trkPhi)      { fHmpidAODtrkPhi = trkPhi;}
84   
85   void SetHmpSignal(Double32_t thetaC)        { fHmpidAODsignal = thetaC;}
86   void SetHmpOccupancy(Double32_t occ)        { fHmpidAODocc =  occ;}
87   
88   void SetHmpChi2(Double32_t chi2)            { fHmpidAODchi2 = chi2;}
89
90   void SetHmpTrackX(Double32_t trkX)          { fHmpidAODtrkX = trkX;}
91   void SetHmpTrackY(Double32_t trkY)          { fHmpidAODtrkY = trkY;}
92
93   void SetHmpMipX(Double32_t mipX)            { fHmpidAODmipX = mipX;}
94   void SetHmpMipY(Double32_t mipY)            { fHmpidAODmipY = mipY;}
95  
96   void SetHmpPidProbs(Double32_t *pid);       
97   void SetHmpMom(Double32_t *mom);        
98   
99   
100   // blablabla
101   
102   
103   
104  protected:
105   
106   Int_t       fHmpidAODtrkId;                      // Unique track id as in ESD
107   Int_t       fHmpidAODqn;                         // 1000000*number of photon clusters + QDC
108   Int_t       fHmpidAODcluIdx;                     // 1000000*chamber id + cluster idx of the assigned MIP cluster
109   
110   Double32_t  fHmpidAODtrkTheta;                   // [-2*pi,2*pi,16] theta of the track extrapolated to the HMPID, LORS
111   Double32_t  fHmpidAODtrkPhi;                     // [-2*pi,2*pi,16] theta of the track extrapolated to the HMPID, LORS
112   Double32_t  fHmpidAODsignal;                     // [0,0.9,8] HMPID signal (Theta ckov, rad)
113   Double32_t  fHmpidAODocc;                        // [0,0,,8]  chamber occupancy where the track passed through: number of pads
114   Double32_t  fHmpidAODchi2;                       // [0.,0.,8] chi2 in the HMPID  
115   Double32_t  fHmpidAODtrkX;                       // [0.,0.,8] x of the track impact, LORS 
116   Double32_t  fHmpidAODtrkY;                       // [0.,0.,8] y of the track impact, LORS 
117   Double32_t  fHmpidAODmipX;                       // [0.,0.,8] x of the MIP in LORS
118   Double32_t  fHmpidAODmipY;                       // [0.,0.,8] y of the MIP in LORS
119   Double32_t  fHmpidAODpid[AliPID::kSPECIES];      // [0.,0.,8] "detector response probabilities" (for the PID)
120   Double32_t  fHMPIDmom[3];                          // [0.,0.,8] track momentum at the HMPID ring reconstruction
121   
122   ClassDef(AliAODHMPIDrings,1)  
123         
124 };
125 #endif