]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSRawCluster.h
Test the access to EMCAL
[u/mrichter/AliRoot.git] / ITS / AliITSRawCluster.h
CommitLineData
b0f5e3fc 1#ifndef ALIITSRAWCLUSTER_H
2#define ALIITSRAWCLUSTER_H
3
4
5////////////////////////////////////////////////////
6// Cluster classes for set:ITS //
7////////////////////////////////////////////////////
8
9#include <TObject.h>
10
11
12class AliITSRawCluster : public TObject {
13
313ba434 14 // this class is subject to changes !!! - info used for declustering
b0f5e3fc 15 // and eventual debugging
16
17public:
18
19 AliITSRawCluster() {
e8189707 20 fMultiplicity=0;
b0f5e3fc 21 }
22
23 virtual ~AliITSRawCluster() {
24 // destructor
25 }
26 virtual Bool_t IsSortable() const {
27 // is sortable
28 return kTRUE;
29 }
30
31public:
32
e8189707 33 Int_t fMultiplicity; // cluster multiplicity
b0f5e3fc 34
35 ClassDef(AliITSRawCluster,1) // AliITSRawCluster class
36 };
37
38//---------------------------------------------
39class AliITSRawClusterSPD : public AliITSRawCluster {
40
41 // these classes are subject to changes - keep them temporarily for
42 // compatibility !!!
43
44public:
45
46 AliITSRawClusterSPD() {
47 // constructor
313ba434 48 fX=fZ=fQ=0;
49 fZStart=fZStop=0;
50 fNClZ=fNClX=fXStart=fXStop=fXStartf=fXStopf=fZend=fNTracks=0;
51 fTracks[0]=fTracks[1]=fTracks[2]=-3;
b0f5e3fc 52 }
53
a3e16987 54 AliITSRawClusterSPD(Float_t clz,Float_t clx,Float_t Charge,Int_t ClusterSizeZ,Int_t ClusterSizeX,Int_t xstart,Int_t xstop,Int_t xstartf,Int_t xstopf,Float_t zstart,Float_t zstop,Int_t zend);
b0f5e3fc 55 virtual ~AliITSRawClusterSPD() {
56 // destructor
57 }
58
59 void Add(AliITSRawClusterSPD* clJ);
60 Bool_t Brother(AliITSRawClusterSPD* cluster,Float_t dz,Float_t dx);
e8189707 61 void PrintInfo();
b0f5e3fc 62 // Getters
63 Float_t Q() const {
64 // Q
65 return fQ ;
66 }
67 Float_t Z() const {
68 // Z
69 return fZ ;
70 }
71 Float_t X() const {
72 // X
73 return fX ;
74 }
a3e16987 75 // Float_t NclZ() const {
76 Int_t NclZ() const {
b0f5e3fc 77 // NclZ
78 return fNClZ ;
79 }
a3e16987 80 // Float_t NclX() const {
81 Int_t NclX() const {
b0f5e3fc 82 // NclX
83 return fNClX ;
84 }
85 Int_t XStart() const {
86 //XStart
87 return fXStart;
88 }
89 Int_t XStop() const {
90 //XStop
91 return fXStop;
92 }
93 Int_t XStartf() const {
94 //XStartf
95 return fXStartf;
96 }
97 Int_t XStopf() const {
98 //XStopf
99 return fXStopf;
100 }
101 Float_t ZStart() const {
102 //ZStart
103 return fZStart;
104 }
105 Float_t ZStop() const {
106 //ZStop
107 return fZStop;
108 }
109 Int_t Zend() const {
110 //Zend
111 return fZend;
112 }
a3e16987 113 Int_t NTracks() const {
114 //NTracks
115 return fNTracks;
116 }
117
118 void GetTracks(Int_t &track0,Int_t &track1,Int_t &track2) const {
119 // returns tracks created a cluster
120
121 track0=fTracks[0];
122 track1=fTracks[1];
123 track2=fTracks[2];
124 return;
125 };
126
127 void SetTracks(Int_t track0, Int_t track1, Int_t track2) {
128 // set tracks in cluster (not more than three ones)
129 fTracks[0]=track0;
130 fTracks[1]=track1;
131 fTracks[2]=track2;
132 }
133 void SetNTracks(Int_t ntracks) {
134 // set ntracks
135 fNTracks=ntracks;
136 }
b0f5e3fc 137
138protected:
139
140 Float_t fX; // X of cluster
141 Float_t fZ; // Z of cluster
142 Float_t fQ; // Q of cluster
143 Int_t fNClZ; // Cluster size in Z direction
144 Int_t fNClX; // Cluster size in X direction
145 Int_t fXStart; // number of first pixel in cluster
146 Int_t fXStop; // number of last pixel in cluster
147 Int_t fXStartf; // number of first pixel in full cluster
148 Int_t fXStopf; // number of last pixel in full cluster
149 Float_t fZStart; // number of first pixel in cluster
150 Float_t fZStop; // number of last pixel in cluster
151 Int_t fZend; // Zend
a3e16987 152 Int_t fNTracks; // number of tracks created a cluster
153 Int_t fTracks[3]; // tracks created a cluster
b0f5e3fc 154
155 ClassDef(AliITSRawClusterSPD,1) // AliITSRawCluster class for SPD
156
157 };
158
159//---------------------------------------------
160class AliITSRawClusterSDD : public AliITSRawCluster {
161
162public:
163
164 AliITSRawClusterSDD() {
165 // constructor
313ba434 166 fX=fZ=fQ=0;
44d4400c 167 fWing=0;
b0f5e3fc 168 fNanodes=1;
169 fAnode=fTime=fPeakAmplitude=0;
313ba434 170 fPeakPosition=-1;
171 fMultiplicity=0;
44d4400c 172 fTstart=fTstop=fTstartf=fTstopf=0;
173 fAstart=fAstop=0;
b0f5e3fc 174 }
44d4400c 175
176 AliITSRawClusterSDD(Int_t wing, Float_t Anode,Float_t Time, Float_t Charge,
177 Float_t PeakAmplitude,Int_t PeakPosition, Float_t Asigma, Float_t Tsigma, Float_t DriftPath, Float_t AnodeOffset, Int_t Samples,
178 Int_t Tstart, Int_t Tstop, Int_t Tstartf, Int_t Tstopf, Int_t Anodes, Int_t Astart, Int_t Astop);
179 AliITSRawClusterSDD( const AliITSRawClusterSDD & source);
180// AliITSRawClusterSDD(Int_t wing, Float_t Anode,Float_t Time,Float_t Charge,
181// Float_t PeakAmplitude,Int_t PeakPosition,Float_t Asigma, Float_t Tsigma,Float_t DriftPath, Float_t AnodeOffset,Int_t Samples);
b0f5e3fc 182 virtual ~AliITSRawClusterSDD() {
183 // destructor
184 }
185
186 void Add(AliITSRawClusterSDD* clJ);
187 Bool_t Brother(AliITSRawClusterSDD* cluster,Float_t dz,Float_t dx);
44d4400c 188// Bool_t Brother(AliITSRawClusterSDD* cluster);
e8189707 189 void PrintInfo();
313ba434 190 // Setters
191 void SetX(Float_t x) {fX=x;}
192 void SetZ(Float_t z) {fZ=z;}
193 void SetQ(Float_t q) {fQ=q;}
194 void SetAnode(Float_t anode) {fAnode=anode;}
195 void SetTime(Float_t time) {fTime=time;}
44d4400c 196 void SetAsigma(Float_t asigma) {fAsigma=asigma;}
197 void SetTsigma(Float_t tsigma) {fTsigma=tsigma;}
198 void SetWing(Int_t wing) {fWing=wing;}
313ba434 199 void SetNanodes(Int_t na) {fNanodes=na;}
44d4400c 200 void SetNsamples(Int_t ns) {fMultiplicity=ns;}
313ba434 201 void SetPeakAmpl(Float_t ampl) {fPeakAmplitude=ampl;}
202 void SetPeakPos(Int_t pos) {fPeakPosition=pos;}
b0f5e3fc 203 // Getters
204 Float_t X() const {
205 //X
206 return fX ;
207 }
208 Float_t Z() const {
209 //Z
210 return fZ ;
211 }
212 Float_t Q() const {
213 //Q
214 return fQ ;
215 }
216 Float_t A() const {
217 //A
218 return fAnode ;
219 }
220 Float_t T() const {
221 //T
222 return fTime ;
223 }
44d4400c 224 Float_t Asigma() const {
225 //Asigma
226 return fAsigma ;
227 }
228 Float_t Tsigma() const {
229 //Tsigma
230 return fTsigma ;
231 }
b0f5e3fc 232 Float_t W() const {
233 //W
234 return fWing ;
235 }
236 Int_t Anodes() const {
237 //Anodes
238 return fNanodes ;
239 }
240 Int_t Samples() const {
241 //Samples
44d4400c 242 return fMultiplicity;
b0f5e3fc 243 }
244 Float_t PeakAmpl() const {
245 //PeakAmpl
246 return fPeakAmplitude ;
247 }
44d4400c 248 Float_t SumAmpl() const {
249 //PeakAmpl
250 return fSumAmplitude ;
251 }
313ba434 252 Int_t PeakPos() {return fPeakPosition;}
44d4400c 253
254 Int_t Tstart() const {
255 //Tstart
256 return fTstart ;
257 }
258 Int_t Tstartf() const {
259 //Tstartf
260 return fTstartf ;
261 }
262 Int_t Tstop() const {
263 //Tstop
264 return fTstop ;
265 }
266 Int_t Tstopf() const {
267 //Tstopf
268 return fTstopf ;
269 }
270 Int_t Astart() const {
271 //Astart
272 return fAstart ;
273 }
274 Int_t Astop() const {
275 //Astop
276 return fAstop ;
277 }
313ba434 278public:
b0f5e3fc 279
280 Float_t fX; // X of cluster
281 Float_t fZ; // Z of cluster
282 Float_t fQ; // Q of cluster
283 Int_t fWing; // Wing number
284 Float_t fAnode; // Anode number
285 Float_t fTime; // Drift Time
44d4400c 286 Float_t fAsigma; //
287 Float_t fTsigma; //
b0f5e3fc 288 Float_t fPeakAmplitude; // Peak Amplitude
44d4400c 289 Float_t fSumAmplitude; // Total Amplitude (for weighting)
313ba434 290 Int_t fPeakPosition; // index of digit corresponding to peak
b0f5e3fc 291 Int_t fNanodes; // N of anodes used for the cluster
44d4400c 292 Int_t fTstart; // First sample in 1D cluster
293 Int_t fTstop; // Last sample in 1D cluster
294 Int_t fTstartf; // First sample in the full 2D cluster
295 Int_t fTstopf; // Last sample in the full 2D cluster
296 Int_t fAstart; // First anode in the 2D cluster
297 Int_t fAstop; // last anode in the 2D cluster
b0f5e3fc 298
299 ClassDef(AliITSRawClusterSDD,1) // AliITSRawCluster class for SDD
300 };
301
302//-----------------------------------------
303class AliITSRawClusterSSD : public AliITSRawCluster {
304
305public:
306
307 AliITSRawClusterSSD() {
e8189707 308 fMultiplicityN=0;
309 fQErr=0;
310 fStatus=-1;
b0f5e3fc 311 /*
312 for (int k=0;k<100;k++) {
e8189707 313 fIndexMapN[k]=-1;
b0f5e3fc 314 }
e8189707 315 fProbability=0;
316 fChi2N=-1;
b0f5e3fc 317 */
b0f5e3fc 318 }
319 AliITSRawClusterSSD(Float_t Prob,Int_t Sp,Int_t Sn);
320 virtual ~AliITSRawClusterSSD() {
321 // destructor
322 }
323
324 Int_t GetStatus() const {
325 // get status
326 return fStatus;
327 }
328 void SetStatus(Int_t status) {
329 // set status
330 fStatus=status;
331 }
332
333
334public:
b0f5e3fc 335 Int_t fMultiplicityN; // The number of N side strips involved
e8189707 336 // in this point calculations
337 Float_t fQErr; // Total charge error
b0f5e3fc 338 Int_t fStatus; // Flag status : 0 - real point
e8189707 339 // 1 - ghost
340 // 2 - EIC ?
341 // 3 - single side
b0f5e3fc 342
e8189707 343 // Float_t fProbability; // The probability that this is a "real" point
344 // Int_t fIndexMapN[100]; // indices of digits for Nside - the corresponding
345 // info for P side is carried in the base class
346 // Float_t fChi2N;
b0f5e3fc 347 ClassDef(AliITSRawClusterSSD,1) // AliITSRawCluster class for SSD
348
349};
350
351
352#endif