2 // Original: AliHLTConfMapPoint.h,v 1.8 2005/06/23 17:46:55 hristov
4 #ifndef ALIHLTTPCCONFMAPPOINT_H
5 #define ALIHLTTPCCONFMAPPOINT_H
7 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
8 * See cxx source for full Copyright notice */
10 /** @file AliHLTTPCConfMapPoint.h
11 @author Anders Vestbo, maintained by Matthias Richter
13 @brief Hit class for conformal mapper
16 #include "AliHLTTPCRootTypes.h"
18 class AliHLTTPCSpacePointData;
19 class AliHLTTPCConfMapTrack;
20 class AliHLTTPCVertex;
23 * @class AliHLTTPCConfMapPoint
24 * Hit class for conformal mapper
27 class AliHLTTPCConfMapPoint {
31 AliHLTTPCConfMapPoint();
32 /** copy constructor */
33 AliHLTTPCConfMapPoint(const AliHLTTPCConfMapPoint&);
34 /** assignment operator */
35 AliHLTTPCConfMapPoint& operator=(const AliHLTTPCConfMapPoint&);
37 virtual ~AliHLTTPCConfMapPoint();
41 * The usage flag will be cleared as well as variables are reset.
47 * Set members from AliHLTTPCSpacePointData.
49 Bool_t Read(const AliHLTTPCSpacePointData& hit);
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;}
61 Double_t GetXYWeight() const {return fWxy;}
62 Double_t GetZWeight() const {return fWz;}
63 Float_t GetS() const {return fs;}
65 Bool_t GetUsage() const {return fUsed;}
66 Double_t GetPhi() const {return fPhi;}
67 Double_t GetEta() const {return fEta;}
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;}
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;}
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;}
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;}
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;}
102 void SetNextVolumeHit(AliHLTTPCConfMapPoint* p){fNextVolumeHit=p;}
103 void SetNextRowHit(AliHLTTPCConfMapPoint* p){fNextRowHit=p;}
104 void SetNextTrackHit(AliHLTTPCConfMapPoint* p){fNextTrackHit=p;}
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;}
111 static void SetDontMap(Bool_t b){fgDontMap=b;}
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;}
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;}
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
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
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
176 Double_t fWxy; // x-y weight on x-y
177 Double_t fWz; // z weight on z
178 Float_t fs; //track trajectory
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
185 Double_t fXterr; // error of mXt
186 Double_t fYterr; // error of mYt
187 Double_t fZterr; // error of mZt
189 // conformal mapping coordinates
190 Double_t fXprime; // transformed x
191 Double_t fYprime; // transformed y
193 Double_t fXprimeerr; // error of mXprime
194 Double_t fYprimeerr; // error of mYprime
196 // coordinates with respect to the vertex
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
203 Double_t fXverr; // error of mXv
204 Double_t fYverr; // error of mYv
205 Double_t fZverr; // error of mZv
207 // spherical coordinates
208 Double_t fPhi; // angle phi
209 Double_t fEta; // pseudorapidity
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
220 static Bool_t fgDontMap; //flag to switch off mapping
222 ClassDef(AliHLTTPCConfMapPoint, 1) //Conformal mapping hit class.
225 #endif // ALIHLTTPCCONFMAPPOINT_H