3 #ifndef ALIL3_ConfMapPoint
4 #define ALIL3_ConfMapPoint
6 #include "AliL3RootTypes.h"
8 class AliL3SpacePointData;
9 class AliL3ConfMapTrack;
12 class AliL3ConfMapPoint {
23 //global coordinates and their errors
31 Double_t fWxy; // x-y weight on x-y
32 Double_t fWz; // z weight on z
33 Float_t s; //track trajectory
36 Double_t fXt; // x-value of the interaction point
37 Double_t fYt; // y-value of the interaction point
38 Double_t fZt; // z-value of the interaction point
40 Double_t fXterr; // error of mXt
41 Double_t fYterr; // error of mYt
42 Double_t fZterr; // error of mZt
44 // conformal mapping coordinates
45 Double_t fXprime; // transformed x
46 Double_t fYprime; // transformed y
48 Double_t fXprimeerr; // error of mXprime
49 Double_t fYprimeerr; // error of mYprime
51 // coordinates with respect to the vertex
53 // cartesian coordinates
54 Double_t fXv; // x with respect to vertex
55 Double_t fYv; // y with respect to vertex
56 Double_t fZv; // z with respect to vertex
58 Double_t fXverr; // error of mXv
59 Double_t fYverr; // error of mYv
60 Double_t fZverr; // error of mZv
62 // spherical coordinates
63 Double_t fPhi; // angle phi
64 Double_t fEta; // pseudorapidity
66 static Bool_t fDontMap; //flag to switch off mapping
71 virtual ~AliL3ConfMapPoint();
74 Bool_t ReadHits(AliL3SpacePointData* hits ); //!
76 AliL3ConfMapPoint *nextVolumeHit; //!
77 AliL3ConfMapPoint *nextRowHit; //!
79 AliL3ConfMapPoint *nextTrackHit; //! Linked chain of points in a track
85 Int_t fMCTrackID[3]; //MClabel of tracks, may overlap
88 Double_t GetX() const {return x;}
89 Double_t GetY() const {return y;}
90 Double_t GetZ() const {return z;}
91 Double_t GetXerr() const {return xerr;}
92 Double_t GetYerr() const {return yerr;}
93 Double_t GetZerr() const {return zerr;}
94 Int_t GetPadRow() const {return fPadrow;}
95 Int_t GetSector() const {return fSector;}
97 Double_t GetXYWeight() const {return fWxy;}
98 Double_t GetZWeight() const {return fWz;}
99 Float_t GetS() const {return s;}
101 //AliL3ConfMapTrack *GetTrack(TClonesArray *tracks) const;
103 Bool_t GetUsage() const {return fUsed;}
104 Double_t GetPhi() const {return fPhi;}
105 Double_t GetEta() const {return fEta;}
107 Double_t GetXprime() const {return fXprime;}
108 Double_t GetYprime() const {return fYprime;}
109 Double_t GetXprimeerr() const {return fXprimeerr;}
110 Double_t GetYprimeerr() const {return fYprimeerr;}
112 Double_t GetXt() const { return fXt; }
113 Double_t GetYt() const { return fYt; }
114 Double_t GetZt() const { return fZt; }
115 Double_t GetXterr() const { return fXterr; }
116 Double_t GetYterr() const { return fYterr; }
117 Double_t GetZterr() const { return fZterr; }
119 Double_t GetXv() const { return fXv; }
120 Double_t GetYv() const { return fYv; }
121 Double_t GetZv() const { return fZv; }
122 Double_t GetXverr() const { return fXverr; }
123 Double_t GetYverr() const { return fYverr; }
124 Double_t GetZverr() const { return fZverr; }
126 Int_t GetHitNumber() const {return fHitNumber;}
127 Int_t GetNextHitNumber() const {return fNextHitNumber;}
128 Int_t GetTrackNumber() const {return fTrackNumber;}
129 // Int_t const *GetMCTrackID() const {return fMCTrackID;}
132 static void SetDontMap(Bool_t b){fDontMap=b;}
134 void SetX(Double_t f) {x=f;}
135 void SetY(Double_t f) {y=f;}
136 void SetZ(Double_t f) {z=f;}
137 void SetXerr(Double_t f) {xerr=f;}
138 void SetYerr(Double_t f) {yerr=f;}
139 void SetZerr(Double_t f) {zerr=f;}
140 void SetPadRow(Int_t f) {fPadrow=f;}
141 void SetSector(Int_t f) {fSector=f;}
142 void SetMCTrackID(Int_t f,Int_t g,Int_t h) {fMCTrackID[0] = f; fMCTrackID[1]=g; fMCTrackID[2]=h;}
144 void SetXYWeight(Float_t f) {fWxy = f;}
145 void SetZWeight(Float_t f) {fWz = f;}
146 void SetS(Float_t f) {s = f;}
148 void SetUsage(Bool_t f) {fUsed=f;}
150 void SetPhi(Double_t f) { fPhi = f; }
151 void SetEta(Double_t f) { fEta = f; }
153 void SetXprime(Double_t f) { fXprime = f; }
154 void SetYprime(Double_t f) { fYprime = f; }
155 void SetXprimeerr(Double_t f) { fXprimeerr = f; }
156 void SetYprimeerr(Double_t f) { fYprimeerr = f; }
158 void SetXt(Double_t f) { fXt = f; }
159 void SetYt(Double_t f) { fYt = f; }
160 void SetZt(Double_t f) { fZt = f; }
161 void SetXterr(Double_t f) { fXterr = f; }
162 void SetYterr(Double_t f) { fYterr = f; }
163 void SetZterr(Double_t f) { fZterr = f; }
165 void SetXv(Double_t f) { fXv = f; }
166 void SetYv(Double_t f) { fYv = f; }
167 void SetZv(Double_t f) { fZv = f; }
168 void SetXverr(Double_t f) { fXverr = f; }
169 void SetYverr(Double_t f) { fYverr = f; }
170 void SetZverr(Double_t f) { fZverr = f; }
172 void SetHitNumber(Int_t f) {fHitNumber=f;}
173 void SetTrackNumber(Int_t f) {fTrackNumber=f;}
174 void SetNextHitNumber(Int_t f) {fNextHitNumber=f;}
176 void Setup(AliL3Vertex *vertex);// does the usual setup in the right order
177 void SetAngles();// calculate spherical angles and set values
178 void SetIntPoint(const Double_t in_x = 0.,const Double_t in_y = 0.,
179 const Double_t in_z = 0.,const Double_t in_x_err = 0.,
180 const Double_t in_y_err = 0., const Double_t in_z_err = 0.);
181 //-> set interaction point
182 void SetShiftedCoord();// set shifted coordinates
183 void SetAllCoord(const AliL3ConfMapPoint *hit);// set conformal mapping coordinates in respect to given hit
184 void SetConfCoord();// conformal mapping
186 ClassDef(AliL3ConfMapPoint, 1) //Conformal mapping hit class.