reverting to version 1.12 due to new library dependencies
[u/mrichter/AliRoot.git] / HLT / src / AliHLTConfMapPoint.h
1 // @(#) $Id$
2
3 #ifndef ALIL3ConfMapPointH
4 #define ALIL3ConfMapPointH
5
6 #include "AliHLTRootTypes.h"
7
8 class AliHLTSpacePointData;
9 class AliHLTConfMapTrack;
10 class AliHLTVertex;
11
12 class AliHLTConfMapPoint {
13
14  private:
15
16   Int_t fHitNumber;     //hit number
17   Int_t fTrackNumber;   //track number
18   Int_t fNextHitNumber; //next hit number
19   Bool_t fUsed;         //flag is used
20   Int_t fPadrow;        //padrow
21   Int_t fSector;        //sector
22
23   //global coordinates and their errors
24   Double_t fx;    //glob x
25   Double_t fy;    //glob y
26   Double_t fz;    //glob z
27   Double_t fxerr; //glob xerr
28   Double_t fyerr; //glob yerr
29   Double_t fzerr; //glob zerr
30
31   Double_t fWxy;  // x-y weight on x-y
32   Double_t fWz;   // z weight on z
33   Float_t fs;      //track trajectory
34   
35    // Interaction point
36   Double_t   fXt;          // x-value of the interaction point
37   Double_t   fYt;          // y-value of the interaction point
38   Double_t   fZt;          // z-value of the interaction point
39   
40   Double_t   fXterr;       // error of mXt
41   Double_t   fYterr;       // error of mYt
42   Double_t   fZterr;       // error of mZt
43   
44   // conformal mapping coordinates
45   Double_t   fXprime;      // transformed x
46   Double_t   fYprime;      // transformed y  
47   
48   Double_t   fXprimeerr;   // error of mXprime
49   Double_t   fYprimeerr;   // error of mYprime
50   
51   // coordinates with respect to the vertex
52   
53   // cartesian coordinates
54   Double_t   fXv;          // x with respect to vertex
55   Double_t   fYv;          // y with respect to vertex
56   Double_t   fZv;          // z with respect to vertex
57   
58   Double_t   fXverr;       // error of mXv
59   Double_t   fYverr;       // error of mYv
60   Double_t   fZverr;       // error of mZv
61   
62   // spherical coordinates
63   Double_t   fPhi;         // angle phi
64   Double_t   fEta;         // pseudorapidity
65   
66   AliHLTConfMapPoint *fNextVolumeHit; //!
67   AliHLTConfMapPoint *fNextRowHit;    //!
68   AliHLTConfMapPoint *fNextTrackHit;  //! Linked chain of points in a track
69   Short_t fPhiIndex; //phi index
70   Short_t fEtaIndex; //eta index
71   Double_t fXYChi2; //xy chi
72   Double_t fSZChi2; //z chi
73   Int_t fMCTrackID[3]; //MClabel of tracks, may overlap
74
75   static Bool_t fgDontMap; //flag to switch off mapping  
76
77  public:
78
79   AliHLTConfMapPoint();
80   virtual ~AliHLTConfMapPoint();
81   
82   void Reset();
83   Bool_t ReadHits(AliHLTSpacePointData* hits );
84   
85    // getter
86   Double_t GetX() const {return fx;}
87   Double_t GetY() const {return fy;}
88   Double_t GetZ() const {return fz;}
89   Double_t GetXerr() const {return fxerr;}
90   Double_t GetYerr() const {return fyerr;}
91   Double_t GetZerr() const {return fzerr;}
92   Int_t GetPadRow() const {return fPadrow;}
93   Int_t GetSector() const {return fSector;}
94   
95   Double_t GetXYWeight() const {return fWxy;}
96   Double_t GetZWeight() const {return fWz;}
97   Float_t GetS()        const {return fs;}
98
99   Bool_t GetUsage() const {return fUsed;}
100   Double_t GetPhi() const {return fPhi;}
101   Double_t GetEta() const {return fEta;}
102   
103   Double_t GetXprime() const    {return fXprime;}
104   Double_t GetYprime() const    {return fYprime;}
105   Double_t GetXprimeerr() const {return fXprimeerr;}
106   Double_t GetYprimeerr() const {return fYprimeerr;}
107   
108   Double_t GetXt() const {return fXt;}
109   Double_t GetYt() const {return fYt;}
110   Double_t GetZt() const {return fZt;}
111   Double_t GetXterr() const {return fXterr;}
112   Double_t GetYterr() const {return fYterr;}
113   Double_t GetZterr() const {return fZterr;}
114   
115   Double_t GetXv() const {return fXv;}
116   Double_t GetYv() const {return fYv;}
117   Double_t GetZv() const {return fZv;}
118   Double_t GetXverr() const {return fXverr;}
119   Double_t GetYverr() const {return fYverr;}
120   Double_t GetZverr() const {return fZverr;}
121
122   Int_t GetHitNumber() const {return fHitNumber;}
123   Int_t GetNextHitNumber() const {return fNextHitNumber;}
124   Int_t GetTrackNumber() const {return fTrackNumber;}
125   //Int_t const *GetMCTrackID()     const {return fMCTrackID;}
126   
127   AliHLTConfMapPoint* GetNextVolumeHit(){return fNextVolumeHit;}
128   AliHLTConfMapPoint* GetNextRowHit(){return fNextRowHit;}
129   AliHLTConfMapPoint* GetNextTrackHit(){return fNextTrackHit;}
130   Short_t GetPhiIndex() const {return fPhiIndex;}
131   Short_t GetEtaIndex() const {return fEtaIndex;}
132   Double_t GetXYChi2() const {return fXYChi2;}
133   Double_t GetSZChi2() const {return fSZChi2;}
134   //Int_t fMCTrackID[3]; //MClabel of tracks, may overlap
135
136   // setter
137   void SetNextVolumeHit(AliHLTConfMapPoint* p){fNextVolumeHit=p;}
138   void SetNextRowHit(AliHLTConfMapPoint* p){fNextRowHit=p;}
139   void SetNextTrackHit(AliHLTConfMapPoint* p){fNextTrackHit=p;}
140
141   void SetPhiIndex(Short_t p){fPhiIndex=p;}
142   void SetEtaIndex(Short_t p){fEtaIndex=p;}
143   void SetXYChi2(Double_t d) {fXYChi2=d;}
144   void SetSZChi2(Double_t d) {fSZChi2=d;}
145
146   static void SetDontMap(Bool_t b){fgDontMap=b;}
147
148   void SetX(Double_t f){fx=f;}
149   void SetY(Double_t f){fy=f;}
150   void SetZ(Double_t f){fz=f;}
151   void SetXerr(Double_t f){fxerr=f;}
152   void SetYerr(Double_t f){fyerr=f;}
153   void SetZerr(Double_t f){fzerr=f;}
154   void SetPadRow(Int_t f){fPadrow=f;}
155   void SetSector(Int_t f){fSector=f;}
156   void SetMCTrackID(Int_t f,Int_t g,Int_t h){fMCTrackID[0] = f; fMCTrackID[1]=g; fMCTrackID[2]=h;}
157
158   void SetXYWeight(Float_t f){fWxy = f;}
159   void SetZWeight(Float_t f){fWz = f;}
160   void SetS(Float_t f){fs = f;}
161   void SetUsage(Bool_t f){fUsed=f;}
162   void SetPhi(Double_t f ){fPhi = f;}
163   void SetEta(Double_t f){fEta = f;}
164   void SetXprime(Double_t f){fXprime = f;}
165   void SetYprime(Double_t f){fYprime = f;}
166   void SetXprimeerr(Double_t f){fXprimeerr = f;}
167   void SetYprimeerr(Double_t f){fYprimeerr = f;}
168   void SetXt(Double_t f){fXt = f;}
169   void SetYt(Double_t f){fYt = f;}
170   void SetZt(Double_t f){fZt = f;}
171   void SetXterr(Double_t f){fXterr = f;}
172   void SetYterr(Double_t f){fYterr = f;}
173   void SetZterr(Double_t f){fZterr = f;}
174   void SetXv(Double_t f){fXv = f;}
175   void SetYv(Double_t f){fYv = f;}
176   void SetZv(Double_t f){fZv = f;}
177   void SetXverr(Double_t f){fXverr = f;}
178   void SetYverr(Double_t f){fYverr = f;}
179   void SetZverr(Double_t f){fZverr = f;}
180   void SetHitNumber(Int_t f){fHitNumber=f;}
181   void SetTrackNumber(Int_t f){fTrackNumber=f;}
182   void SetNextHitNumber(Int_t f){fNextHitNumber=f;}
183
184   void Setup(AliHLTVertex *vertex);// does the usual setup in the right order
185   void SetAngles();               // calculate spherical angles and set values
186   void SetIntPoint(Double_t inx = 0., Double_t iny = 0.,
187                    Double_t inz = 0., Double_t inxerr = 0., 
188                    Double_t inyerr = 0., Double_t inzerr = 0.);  
189   //-> set interaction point
190   void SetShiftedCoord();// set shifted coordinates  
191   void SetAllCoord(const AliHLTConfMapPoint *hit);// set conformal mapping coordinates in respect to given hit
192   void SetConfCoord();// conformal mapping
193
194   ClassDef(AliHLTConfMapPoint, 1)   //Conformal mapping hit class.
195 };
196
197 typedef AliHLTConfMapPoint AliL3ConfMapPoint; // for backward compatibility
198
199 #endif