]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALICOMPLEXCLUSTER_H | |
2 | #define ALICOMPLEXCLUSTER_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | // | |
8 | // this is a class | |
9 | // AliComplexCluster | |
10 | // by M. Ivanov | |
11 | // | |
12 | ||
13 | #include "TObject.h" | |
14 | #include "TMath.h" | |
15 | #include "AliTPCclusterMI.h" | |
16 | // | |
17 | ||
18 | class AliComplexCluster : public TObject { | |
19 | public: | |
20 | ||
21 | AliComplexCluster(); | |
22 | virtual ~AliComplexCluster() {;} | |
23 | Bool_t IsSortable() const; | |
24 | Int_t Compare(const TObject *o) const; | |
25 | // the following getters are needed by HLT | |
26 | // please dont remove... C. Loizides | |
27 | Int_t GetTrack(Int_t i)const {return fTracks[i];} //labels of overlapped tracks | |
28 | Float_t GetX()const {return fX;} | |
29 | Float_t GetY()const {return fY;} | |
30 | Float_t GetQ()const {return fQ;} | |
31 | Float_t GetSigmaX2()const {return fSigmaX2;} | |
32 | Float_t GetSigmaY2()const {return fSigmaY2;} | |
33 | Float_t GetSigmaXY()const {return fSigmaXY;} | |
34 | Float_t GetArea()const {return fArea;} | |
35 | Float_t GetMax()const {return fMax;} | |
36 | private: | |
37 | Int_t fTracks[3];//labels of overlapped tracks | |
38 | Float_t fX ; //Y of cluster | |
39 | Float_t fY ; //Z of cluster | |
40 | Float_t fQ ; //Q of cluster (in ADC counts) | |
41 | Float_t fSigmaX2; //Sigma Y square of cluster | |
42 | Float_t fSigmaY2; //Sigma Z square of cluster | |
43 | Float_t fSigmaXY; // XY moment | |
44 | Float_t fArea; //area of cluster | |
45 | Float_t fMax; //amplitude at maximum | |
46 | ||
47 | ClassDef(AliComplexCluster,1) | |
48 | // Cluster manager | |
49 | }; | |
50 | ||
51 | ||
52 | ||
53 | class AliTPCTrackerPoint { | |
54 | public: | |
55 | ||
56 | AliTPCTrackerPoint(): | |
57 | fTX(0), | |
58 | fTZ(0), | |
59 | fTY(0), | |
60 | fTAngleZ(0), | |
61 | fTAngleY(0), | |
62 | fSigmaZ(0), | |
63 | fSigmaY(0), | |
64 | fErrZ(0), | |
65 | fErrY(0), | |
66 | fIsShared(0){} | |
67 | virtual ~AliTPCTrackerPoint(){} | |
68 | AliTPCTrackerPoint &operator=(const AliTPCTrackerPoint& o); | |
69 | Float_t GetX() const {return (fTX*0.01);} | |
70 | Float_t GetZ() const {return (fTZ*0.01);} | |
71 | Float_t GetY() const {return (fTY*0.01);} | |
72 | Float_t GetAngleZ() const {return (Float_t(fTAngleZ)*0.02);} | |
73 | Float_t GetAngleY() const {return (Float_t(fTAngleY)*0.02);} | |
74 | // | |
75 | void SetX(Float_t x) { fTX = Short_t(TMath::Nint(x*100.));} | |
76 | void SetY(Float_t y) { fTY = Short_t(TMath::Nint(y*100.));} | |
77 | void SetZ(Float_t z) { fTZ = Short_t(TMath::Nint(z*100.));} | |
78 | void SetAngleZ(Float_t anglez) {fTAngleZ = Char_t(TMath::Nint(anglez*50.));} | |
79 | void SetAngleY(Float_t angley) {fTAngleY = Char_t(TMath::Nint(angley*50.));} | |
80 | Float_t GetSigmaZ() const {return (fSigmaZ*0.02);} | |
81 | Float_t GetSigmaY() const {return (fSigmaY*0.02);} | |
82 | Float_t GetErrZ() const {return (fErrZ*0.005);} | |
83 | Float_t GetErrY() const {return (fErrY*0.005);} | |
84 | void SetErrZ(Float_t errz) {fErrZ = UChar_t(TMath::Nint(errz*200.));} | |
85 | void SetErrY(Float_t erry) {fErrY = UChar_t(TMath::Nint(erry*200.));} | |
86 | ||
87 | void SetSigmaZ(Float_t sigmaz) {fSigmaZ = UChar_t(TMath::Nint(sigmaz*50.));} | |
88 | void SetSigmaY(Float_t sigmay) {fSigmaY = UChar_t(TMath::Nint(sigmay*50.));} | |
89 | ||
90 | Char_t IsShared() const {return fIsShared;} | |
91 | void SetShared(Char_t s) {fIsShared=s;} | |
92 | ||
93 | // | |
94 | private: | |
95 | Short_t fTX; // x position of the cluster in cm - 10 mum prec | |
96 | Short_t fTZ; // current prolongation in Z in cm - 10 mum prec. | |
97 | Short_t fTY; // current prolongation in Y in cm - 10 mum prec. | |
98 | Char_t fTAngleZ; // angle | |
99 | Char_t fTAngleY; // angle | |
100 | UShort_t fSigmaZ; // shape Z - normalised shape - normaliziation 1 - precision 2 percent | |
101 | UShort_t fSigmaY; // shape Y - normalised shape - normaliziation 1 - precision 2 percent | |
102 | UShort_t fErrZ; // z error estimate - in mm - 50 mum precision | |
103 | UShort_t fErrY; // y error estimate - in mm - 50 mum precision | |
104 | Char_t fIsShared; // indicate sharing of the point between several tracks | |
105 | ||
106 | ClassDef(AliTPCTrackerPoint,2) | |
107 | }; | |
108 | ||
109 | class AliTPCClusterPoint { | |
110 | public: | |
111 | AliTPCClusterPoint(): | |
112 | fCZ(0), | |
113 | fCY(0), | |
114 | fSigmaZ(0), | |
115 | fSigmaY(0), | |
116 | fQ(0), | |
117 | fMax(0), | |
118 | fCType(0){} | |
119 | virtual ~AliTPCClusterPoint(){} | |
120 | Float_t GetZ() const {return (fCZ*0.01);} | |
121 | Float_t GetY() const {return (fCY*0.01);} | |
122 | Float_t GetSigmaZ() const {return (fSigmaZ*0.02);} | |
123 | Float_t GetSigmaY() const {return (fSigmaY*0.02);} | |
124 | Int_t GetType() const {return fCType;} | |
125 | Int_t GetMax() const {return fMax;} | |
126 | Float_t GetQ() const {return fQ;} | |
127 | ||
128 | // | |
129 | void SetY(Float_t y){ fCY = Short_t(TMath::Nint(y*100.));} | |
130 | void SetZ(Float_t z){ fCZ = Short_t(TMath::Nint(z*100.));} | |
131 | void SetSigmaZ(Float_t sigmaz) {fSigmaZ = UChar_t(TMath::Nint(sigmaz*50.));} | |
132 | void SetSigmaY(Float_t sigmay) {fSigmaY = UChar_t(TMath::Nint(sigmay*50.));} | |
133 | void SetQ(Float_t q) {fQ = UShort_t(q);} | |
134 | void SetMax(Float_t max) {fMax = UShort_t(max);} | |
135 | void SetType(Char_t type) {fCType = type;} | |
136 | private: | |
137 | Short_t fCZ; // current cluster position Z in cm - 100 mum precision | |
138 | Short_t fCY; // current cluster position Y in cm - 100 mum precision | |
139 | UChar_t fSigmaZ; // shape Z - normalised shape - normaliziation 1 - precision 2 percent | |
140 | UChar_t fSigmaY; // shape Y - normalised shape - normaliziation 1 - precision 2 percent | |
141 | UShort_t fQ; // total charge in cluster | |
142 | UShort_t fMax; // charge at maximum | |
143 | Char_t fCType; // type of the cluster | |
144 | ||
145 | // | |
146 | ClassDef(AliTPCClusterPoint,1) | |
147 | }; | |
148 | ||
149 | ||
150 | class AliTPCExactPoint : public TObject{ | |
151 | public: | |
152 | AliTPCExactPoint():TObject(), | |
153 | fEZ(0.), | |
154 | fEY(0.), | |
155 | fEX(0.), | |
156 | fEAngleZ(0.), | |
157 | fEAngleY(0.), | |
158 | fEAmp(0.), | |
159 | fEPrim(0.), | |
160 | fTrackID(0), | |
161 | fRow(0), | |
162 | fSec(0){} | |
163 | private: | |
164 | Float_t fEZ; // current "exact" position according simulation | |
165 | Float_t fEY; // current "exact" position according simulation | |
166 | Float_t fEX; // x poistion of the cluster | |
167 | Float_t fEAngleZ; // angle Z | |
168 | Float_t fEAngleY; // angle Y | |
169 | Float_t fEAmp; // total charge deposited in row | |
170 | Float_t fEPrim; // primary charge deposited in row | |
171 | Int_t fTrackID; // id of the track | |
172 | Int_t fRow; // row | |
173 | Int_t fSec; //sector | |
174 | ClassDef(AliTPCExactPoint,1) | |
175 | }; | |
176 | ||
177 | ||
178 | class AliTPCTrackPoint: public TObject{ | |
179 | public: | |
180 | AliTPCTrackPoint():TObject(), | |
181 | fTPoint(), | |
182 | fCPoint(){} | |
183 | ||
184 | // AliTPCClusterPoint & GetCPoint(){return fCPoint;} | |
185 | AliTPCTrackerPoint & GetTPoint(){return fTPoint;} | |
186 | AliTPCclusterMI & GetCPoint(){return fCPoint;} | |
187 | private: | |
188 | // AliTPCClusterPoint fCPoint; | |
189 | //Char_t fIsShared; | |
190 | AliTPCTrackerPoint fTPoint; // track point | |
191 | AliTPCclusterMI fCPoint; // cluster point | |
192 | ClassDef(AliTPCTrackPoint,1) | |
193 | }; | |
194 | ||
195 | class AliTPCTrackPoint2: public AliTPCTrackPoint{ | |
196 | public: | |
197 | AliTPCTrackPoint2():AliTPCTrackPoint(), | |
198 | fGX(0.), | |
199 | fGY(0.), | |
200 | fGZ(0.), | |
201 | fDY(0.), | |
202 | fDZ(0.), | |
203 | fDYU(0.), | |
204 | fDYD(0), | |
205 | fDZU(0.), | |
206 | fDZD(0.), | |
207 | fDDY(0), | |
208 | fDDZ(0.), | |
209 | fID(0), | |
210 | fLab(0){} | |
211 | private: | |
212 | Float_t fGX; //global poition of the point | |
213 | Float_t fGY; //global poition of the point | |
214 | Float_t fGZ; //global poition of the point | |
215 | // | |
216 | Float_t fDY; //distortion of the clusters from the global helix (3 point interpolation) | |
217 | Float_t fDZ; //distortion of the clusters from the global helix (3 point interpolation) | |
218 | // | |
219 | Float_t fDYU; //derivation in y up | |
220 | Float_t fDYD; //distortion of y down | |
221 | // | |
222 | Float_t fDZU; //derivation in y up | |
223 | Float_t fDZD; //distortion of y down | |
224 | // | |
225 | Float_t fDDY; //derivation in y,z up-down | |
226 | Float_t fDDZ; //derivation in y,z up-down | |
227 | // | |
228 | Int_t fID; //id of the corresponding track | |
229 | Int_t fLab; //MC label of the track | |
230 | ClassDef(AliTPCTrackPoint2,1) | |
231 | }; | |
232 | ||
233 | ||
234 | ||
235 | ||
236 | ||
237 | ||
238 | #endif //ALICOMPLEXCLUSTER_H |