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