]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSRawCluster.h
New class for ITS coordiante transformations used by AliITSgeom nearly
[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
14 // this class is subject to changes ! - info used for declustering
15 // and eventual debugging
16
17public:
18
19 AliITSRawCluster() {
e8189707 20 fMultiplicity=0;
b0f5e3fc 21 /*
22 for (int k=0;k<100;k++) {
e8189707 23 fIndexMap[k]=-1;
b0f5e3fc 24 }
25 fNcluster[0]=fNcluster[1]=-1;
26 fChi2=-1;
27 */
b0f5e3fc 28 }
29
30 virtual ~AliITSRawCluster() {
31 // destructor
32 }
33 virtual Bool_t IsSortable() const {
34 // is sortable
35 return kTRUE;
36 }
37
38public:
39
e8189707 40 Int_t fMultiplicity; // cluster multiplicity
b0f5e3fc 41 //Int_t fIndexMap[100]; // indices of digits
42 //Int_t fNcluster[2];
43 //Float_t fChi2;
44
45 ClassDef(AliITSRawCluster,1) // AliITSRawCluster class
46 };
47
48//---------------------------------------------
49class AliITSRawClusterSPD : public AliITSRawCluster {
50
51 // these classes are subject to changes - keep them temporarily for
52 // compatibility !!!
53
54public:
55
56 AliITSRawClusterSPD() {
57 // constructor
58 fX=fZ=fQ;
59 fZStart=fZStop;
60 fNClZ=fNClX=fXStart=fXStop=fXStartf=fXStopf=fZend;
61 }
62
63 AliITSRawClusterSPD(Float_t clz,Float_t clx,Float_t Charge,
64 Int_t ClusterSizeZ,Int_t ClusterSizeX,Int_t xstart,Int_t xstop,
65 Int_t xstartf,Int_t xstopf,Float_t zstart,Float_t zstop,Int_t zend);
66 virtual ~AliITSRawClusterSPD() {
67 // destructor
68 }
69
70 void Add(AliITSRawClusterSPD* clJ);
71 Bool_t Brother(AliITSRawClusterSPD* cluster,Float_t dz,Float_t dx);
e8189707 72 void PrintInfo();
b0f5e3fc 73 // Getters
74 Float_t Q() const {
75 // Q
76 return fQ ;
77 }
78 Float_t Z() const {
79 // Z
80 return fZ ;
81 }
82 Float_t X() const {
83 // X
84 return fX ;
85 }
86 Float_t NclZ() const {
87 // NclZ
88 return fNClZ ;
89 }
90 Float_t NclX() const {
91 // NclX
92 return fNClX ;
93 }
94 Int_t XStart() const {
95 //XStart
96 return fXStart;
97 }
98 Int_t XStop() const {
99 //XStop
100 return fXStop;
101 }
102 Int_t XStartf() const {
103 //XStartf
104 return fXStartf;
105 }
106 Int_t XStopf() const {
107 //XStopf
108 return fXStopf;
109 }
110 Float_t ZStart() const {
111 //ZStart
112 return fZStart;
113 }
114 Float_t ZStop() const {
115 //ZStop
116 return fZStop;
117 }
118 Int_t Zend() const {
119 //Zend
120 return fZend;
121 }
122
123protected:
124
125 Float_t fX; // X of cluster
126 Float_t fZ; // Z of cluster
127 Float_t fQ; // Q of cluster
128 Int_t fNClZ; // Cluster size in Z direction
129 Int_t fNClX; // Cluster size in X direction
130 Int_t fXStart; // number of first pixel in cluster
131 Int_t fXStop; // number of last pixel in cluster
132 Int_t fXStartf; // number of first pixel in full cluster
133 Int_t fXStopf; // number of last pixel in full cluster
134 Float_t fZStart; // number of first pixel in cluster
135 Float_t fZStop; // number of last pixel in cluster
136 Int_t fZend; // Zend
137
138 ClassDef(AliITSRawClusterSPD,1) // AliITSRawCluster class for SPD
139
140 };
141
142//---------------------------------------------
143class AliITSRawClusterSDD : public AliITSRawCluster {
144
145public:
146
147 AliITSRawClusterSDD() {
148 // constructor
149 fX=fZ=fQ;
150 fWing=fNsamples=0;
151 fNanodes=1;
152 fAnode=fTime=fPeakAmplitude=0;
153 }
154
155 AliITSRawClusterSDD(Int_t wing, Float_t Anode,Float_t Time,Float_t Charge,
156 Float_t PeakAmplitude,Float_t Asigma, Float_t Tsigma,Float_t DriftPath, Float_t AnodeOffset,Int_t Samples);
157 virtual ~AliITSRawClusterSDD() {
158 // destructor
159 }
160
161 void Add(AliITSRawClusterSDD* clJ);
162 Bool_t Brother(AliITSRawClusterSDD* cluster,Float_t dz,Float_t dx);
e8189707 163 void PrintInfo();
b0f5e3fc 164 // Getters
165 Float_t X() const {
166 //X
167 return fX ;
168 }
169 Float_t Z() const {
170 //Z
171 return fZ ;
172 }
173 Float_t Q() const {
174 //Q
175 return fQ ;
176 }
177 Float_t A() const {
178 //A
179 return fAnode ;
180 }
181 Float_t T() const {
182 //T
183 return fTime ;
184 }
185 Float_t W() const {
186 //W
187 return fWing ;
188 }
189 Int_t Anodes() const {
190 //Anodes
191 return fNanodes ;
192 }
193 Int_t Samples() const {
194 //Samples
195 return fNsamples ;
196 }
197 Float_t PeakAmpl() const {
198 //PeakAmpl
199 return fPeakAmplitude ;
200 }
201
202protected:
203
204 Float_t fX; // X of cluster
205 Float_t fZ; // Z of cluster
206 Float_t fQ; // Q of cluster
207 Int_t fWing; // Wing number
208 Float_t fAnode; // Anode number
209 Float_t fTime; // Drift Time
210 Float_t fPeakAmplitude; // Peak Amplitude
211 Int_t fNanodes; // N of anodes used for the cluster
212 Int_t fNsamples; // N of samples used for the cluster
213
214 ClassDef(AliITSRawClusterSDD,1) // AliITSRawCluster class for SDD
215 };
216
217//-----------------------------------------
218class AliITSRawClusterSSD : public AliITSRawCluster {
219
220public:
221
222 AliITSRawClusterSSD() {
e8189707 223 fMultiplicityN=0;
224 fQErr=0;
225 fStatus=-1;
b0f5e3fc 226 /*
227 for (int k=0;k<100;k++) {
e8189707 228 fIndexMapN[k]=-1;
b0f5e3fc 229 }
e8189707 230 fProbability=0;
231 fChi2N=-1;
b0f5e3fc 232 */
b0f5e3fc 233 }
234 AliITSRawClusterSSD(Float_t Prob,Int_t Sp,Int_t Sn);
235 virtual ~AliITSRawClusterSSD() {
236 // destructor
237 }
238
239 Int_t GetStatus() const {
240 // get status
241 return fStatus;
242 }
243 void SetStatus(Int_t status) {
244 // set status
245 fStatus=status;
246 }
247
248
249public:
b0f5e3fc 250 Int_t fMultiplicityN; // The number of N side strips involved
e8189707 251 // in this point calculations
252 Float_t fQErr; // Total charge error
b0f5e3fc 253 Int_t fStatus; // Flag status : 0 - real point
e8189707 254 // 1 - ghost
255 // 2 - EIC ?
256 // 3 - single side
b0f5e3fc 257
e8189707 258 // Float_t fProbability; // The probability that this is a "real" point
259 // Int_t fIndexMapN[100]; // indices of digits for Nside - the corresponding
260 // info for P side is carried in the base class
261 // Float_t fChi2N;
b0f5e3fc 262 ClassDef(AliITSRawClusterSSD,1) // AliITSRawCluster class for SSD
263
264};
265
266
267#endif