1 #ifndef ALIITSRAWCLUSTER_H
2 #define ALIITSRAWCLUSTER_H
5 ////////////////////////////////////////////////////
6 // Cluster classes for set:ITS //
7 ////////////////////////////////////////////////////
12 class AliITSRawCluster : public TObject {
14 // this class is subject to changes !!! - info used for declustering
15 // and eventual debugging
23 virtual ~AliITSRawCluster() {
26 virtual Bool_t IsSortable() const {
33 Int_t fMultiplicity; // cluster multiplicity
35 ClassDef(AliITSRawCluster,1) // AliITSRawCluster class
38 //---------------------------------------------
39 class AliITSRawClusterSPD : public AliITSRawCluster {
41 // these classes are subject to changes - keep them temporarily for
46 AliITSRawClusterSPD() {
50 fNClZ=fNClX=fXStart=fXStop=fXStartf=fXStopf=fZend=fNTracks=0;
51 fTracks[0]=fTracks[1]=fTracks[2]=-3;
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);
55 virtual ~AliITSRawClusterSPD() {
59 void Add(AliITSRawClusterSPD* clJ);
60 Bool_t Brother(AliITSRawClusterSPD* cluster,Float_t dz,Float_t dx);
75 // Float_t NclZ() const {
80 // Float_t NclX() const {
85 Int_t XStart() const {
93 Int_t XStartf() const {
97 Int_t XStopf() const {
101 Float_t ZStart() const {
105 Float_t ZStop() const {
113 Int_t NTracks() const {
118 void GetTracks(Int_t &track0,Int_t &track1,Int_t &track2) const {
119 // returns tracks created a cluster
127 void SetTracks(Int_t track0, Int_t track1, Int_t track2) {
128 // set tracks in cluster (not more than three ones)
133 void SetNTracks(Int_t ntracks) {
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
152 Int_t fNTracks; // number of tracks created a cluster
153 Int_t fTracks[3]; // tracks created a cluster
155 ClassDef(AliITSRawClusterSPD,1) // AliITSRawCluster class for SPD
159 //---------------------------------------------
160 class AliITSRawClusterSDD : public AliITSRawCluster {
164 AliITSRawClusterSDD() {
169 fAnode=fTime=fPeakAmplitude=0;
172 fTstart=fTstop=fTstartf=fTstopf=0;
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);
182 virtual ~AliITSRawClusterSDD() {
186 void Add(AliITSRawClusterSDD* clJ);
187 Bool_t Brother(AliITSRawClusterSDD* cluster,Float_t dz,Float_t dx);
188 // Bool_t Brother(AliITSRawClusterSDD* cluster);
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;}
196 void SetAsigma(Float_t asigma) {fAsigma=asigma;}
197 void SetTsigma(Float_t tsigma) {fTsigma=tsigma;}
198 void SetWing(Int_t wing) {fWing=wing;}
199 void SetNanodes(Int_t na) {fNanodes=na;}
200 void SetNsamples(Int_t ns) {fMultiplicity=ns;}
201 void SetPeakAmpl(Float_t ampl) {fPeakAmplitude=ampl;}
202 void SetPeakPos(Int_t pos) {fPeakPosition=pos;}
224 Float_t Asigma() const {
228 Float_t Tsigma() const {
236 Int_t Anodes() const {
240 Int_t Samples() const {
242 return fMultiplicity;
244 Float_t PeakAmpl() const {
246 return fPeakAmplitude ;
248 Float_t SumAmpl() const {
250 return fSumAmplitude ;
252 Int_t PeakPos() {return fPeakPosition;}
254 Int_t Tstart() const {
258 Int_t Tstartf() const {
262 Int_t Tstop() const {
266 Int_t Tstopf() const {
270 Int_t Astart() const {
274 Int_t Astop() const {
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
288 Float_t fPeakAmplitude; // Peak Amplitude
289 Float_t fSumAmplitude; // Total Amplitude (for weighting)
290 Int_t fPeakPosition; // index of digit corresponding to peak
291 Int_t fNanodes; // N of anodes used for the cluster
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
299 ClassDef(AliITSRawClusterSDD,1) // AliITSRawCluster class for SDD
302 //-----------------------------------------
303 class AliITSRawClusterSSD : public AliITSRawCluster {
307 AliITSRawClusterSSD() {
315 AliITSRawClusterSSD(Float_t Prob,Int_t Sp,Int_t Sn);
316 virtual ~AliITSRawClusterSSD() {
320 Int_t GetStatus() const {
324 void SetStatus(Int_t status) {
331 Int_t fMultiplicityN; // The number of N side strips involved
332 // in this point calculations
333 Float_t fQErr; // Total charge error
334 Float_t fSignalP; // Signal of P side cluster
335 Float_t fSignalN; // Signal of N side cluster
336 Int_t fStatus; // Flag status : 0 - real point
340 Int_t fNtracks; // Number of tracks created the cluster
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
347 ClassDef(AliITSRawClusterSSD,1) // AliITSRawCluster class for SSD