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