]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/AliHLTTPCConfMapPoint.h
Bogdan: new version of MUON visualization.
[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
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*/
a6c02c85 15
16#include "AliHLTTPCRootTypes.h"
17
18class AliHLTTPCSpacePointData;
19class AliHLTTPCConfMapTrack;
20class AliHLTTPCVertex;
21
2a083ac4 22/**
23 * @class AliHLTTPCConfMapPoint
24 * Hit class for conformal mapper
25 *
26 */
a6c02c85 27class AliHLTTPCConfMapPoint {
28
a6c02c85 29 public:
30
31 AliHLTTPCConfMapPoint();
2a083ac4 32 /** not a valid copy constructor, defined according to effective C++ style */
33 AliHLTTPCConfMapPoint(const AliHLTTPCConfMapPoint&);
34 /** not a valid assignment op, but defined according to effective C++ style */
35 AliHLTTPCConfMapPoint& operator=(const AliHLTTPCConfMapPoint&);
36 /** destructor */
a6c02c85 37 virtual ~AliHLTTPCConfMapPoint();
38
39 void Reset();
40 Bool_t ReadHits(AliHLTTPCSpacePointData* hits );
41
42 // getter
43 Double_t GetX() const {return fx;}
44 Double_t GetY() const {return fy;}
45 Double_t GetZ() const {return fz;}
46 Double_t GetXerr() const {return fxerr;}
47 Double_t GetYerr() const {return fyerr;}
48 Double_t GetZerr() const {return fzerr;}
49 Int_t GetPadRow() const {return fPadrow;}
50 Int_t GetSector() const {return fSector;}
51
52 Double_t GetXYWeight() const {return fWxy;}
53 Double_t GetZWeight() const {return fWz;}
54 Float_t GetS() const {return fs;}
55
56 Bool_t GetUsage() const {return fUsed;}
57 Double_t GetPhi() const {return fPhi;}
58 Double_t GetEta() const {return fEta;}
59
60 Double_t GetXprime() const {return fXprime;}
61 Double_t GetYprime() const {return fYprime;}
62 Double_t GetXprimeerr() const {return fXprimeerr;}
63 Double_t GetYprimeerr() const {return fYprimeerr;}
64
65 Double_t GetXt() const {return fXt;}
66 Double_t GetYt() const {return fYt;}
67 Double_t GetZt() const {return fZt;}
68 Double_t GetXterr() const {return fXterr;}
69 Double_t GetYterr() const {return fYterr;}
70 Double_t GetZterr() const {return fZterr;}
71
72 Double_t GetXv() const {return fXv;}
73 Double_t GetYv() const {return fYv;}
74 Double_t GetZv() const {return fZv;}
75 Double_t GetXverr() const {return fXverr;}
76 Double_t GetYverr() const {return fYverr;}
77 Double_t GetZverr() const {return fZverr;}
78
79 Int_t GetHitNumber() const {return fHitNumber;}
80 Int_t GetNextHitNumber() const {return fNextHitNumber;}
81 Int_t GetTrackNumber() const {return fTrackNumber;}
82 //Int_t const *GetMCTrackID() const {return fMCTrackID;}
83
84 AliHLTTPCConfMapPoint* GetNextVolumeHit(){return fNextVolumeHit;}
85 AliHLTTPCConfMapPoint* GetNextRowHit(){return fNextRowHit;}
86 AliHLTTPCConfMapPoint* GetNextTrackHit(){return fNextTrackHit;}
87 Short_t GetPhiIndex() const {return fPhiIndex;}
88 Short_t GetEtaIndex() const {return fEtaIndex;}
89 Double_t GetXYChi2() const {return fXYChi2;}
90 Double_t GetSZChi2() const {return fSZChi2;}
91 //Int_t fMCTrackID[3]; //MClabel of tracks, may overlap
92
93 // setter
94 void SetNextVolumeHit(AliHLTTPCConfMapPoint* p){fNextVolumeHit=p;}
95 void SetNextRowHit(AliHLTTPCConfMapPoint* p){fNextRowHit=p;}
96 void SetNextTrackHit(AliHLTTPCConfMapPoint* p){fNextTrackHit=p;}
97
98 void SetPhiIndex(Short_t p){fPhiIndex=p;}
99 void SetEtaIndex(Short_t p){fEtaIndex=p;}
100 void SetXYChi2(Double_t d) {fXYChi2=d;}
101 void SetSZChi2(Double_t d) {fSZChi2=d;}
102
103 static void SetDontMap(Bool_t b){fgDontMap=b;}
104
105 void SetX(Double_t f){fx=f;}
106 void SetY(Double_t f){fy=f;}
107 void SetZ(Double_t f){fz=f;}
108 void SetXerr(Double_t f){fxerr=f;}
109 void SetYerr(Double_t f){fyerr=f;}
110 void SetZerr(Double_t f){fzerr=f;}
111 void SetPadRow(Int_t f){fPadrow=f;}
112 void SetSector(Int_t f){fSector=f;}
113 void SetMCTrackID(Int_t f,Int_t g,Int_t h){fMCTrackID[0] = f; fMCTrackID[1]=g; fMCTrackID[2]=h;}
114
115 void SetXYWeight(Float_t f){fWxy = f;}
116 void SetZWeight(Float_t f){fWz = f;}
117 void SetS(Float_t f){fs = f;}
118 void SetUsage(Bool_t f){fUsed=f;}
119 void SetPhi(Double_t f ){fPhi = f;}
120 void SetEta(Double_t f){fEta = f;}
121 void SetXprime(Double_t f){fXprime = f;}
122 void SetYprime(Double_t f){fYprime = f;}
123 void SetXprimeerr(Double_t f){fXprimeerr = f;}
124 void SetYprimeerr(Double_t f){fYprimeerr = f;}
125 void SetXt(Double_t f){fXt = f;}
126 void SetYt(Double_t f){fYt = f;}
127 void SetZt(Double_t f){fZt = f;}
128 void SetXterr(Double_t f){fXterr = f;}
129 void SetYterr(Double_t f){fYterr = f;}
130 void SetZterr(Double_t f){fZterr = f;}
131 void SetXv(Double_t f){fXv = f;}
132 void SetYv(Double_t f){fYv = f;}
133 void SetZv(Double_t f){fZv = f;}
134 void SetXverr(Double_t f){fXverr = f;}
135 void SetYverr(Double_t f){fYverr = f;}
136 void SetZverr(Double_t f){fZverr = f;}
137 void SetHitNumber(Int_t f){fHitNumber=f;}
138 void SetTrackNumber(Int_t f){fTrackNumber=f;}
139 void SetNextHitNumber(Int_t f){fNextHitNumber=f;}
140
141 void Setup(AliHLTTPCVertex *vertex);// does the usual setup in the right order
142 void SetAngles(); // calculate spherical angles and set values
143 void SetIntPoint(Double_t inx = 0., Double_t iny = 0.,
144 Double_t inz = 0., Double_t inxerr = 0.,
145 Double_t inyerr = 0., Double_t inzerr = 0.);
146 //-> set interaction point
147 void SetShiftedCoord();// set shifted coordinates
148 void SetAllCoord(const AliHLTTPCConfMapPoint *hit);// set conformal mapping coordinates in respect to given hit
149 void SetConfCoord();// conformal mapping
150
2a083ac4 151 private:
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
a6c02c85 214 ClassDef(AliHLTTPCConfMapPoint, 1) //Conformal mapping hit class.
215};
216
2a083ac4 217#endif // ALIHLTTPCCONFMAPPOINT_H