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