]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AOD/AliAODHMPIDrings.h
Fix for track vertices without constraint
[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()                const { return fHmpidAODtrkId; }
47   
48   Double32_t GetHmpMipCharge()            const { return fHmpidAODqn%1000000; }
49   Double32_t GetHmpNumOfPhotonClusters()  const { return fHmpidAODqn/1000000;}
50  
51   Int_t      GetHmpChamber()              const { return fHmpidAODcluIdx/1000000; }
52   
53   Int_t      GetHmpCluIdx()               const { return fHmpidAODcluIdx; }
54   
55   Double32_t GetHmpTrackTheta()           const { return fHmpidAODtrkTheta;}
56   Double32_t GetHmpTrackPhi()             const { return fHmpidAODtrkPhi;}
57   
58   Double32_t GetHmpSignal()               const { return fHmpidAODsignal;}
59   Double32_t GetHmpOccupancy()            const { return fHmpidAODocc;}
60   
61   Double32_t GetHmpChi2()                 const { return fHmpidAODchi2;}
62
63   Double32_t GetHmpTrackX()               const { return fHmpidAODtrkX;}
64   Double32_t GetHmpTrackY()               const { return fHmpidAODtrkY;}
65
66   Double32_t GetHmpMipX()                 const { return fHmpidAODmipX;}
67   Double32_t GetHmpMipY()                 const { return fHmpidAODmipY;}
68
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));}
72   
73   
74   void GetHmpPidProbs(Double32_t *pid) const;   //defined in cxx
75   void GetHmpMom(Double32_t *mom)      const;   //defined in cxx
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