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;
174 AliITSRawClusterSDD(Int_t wing, Float_t Anode,Float_t Time,Float_t Charge,
175 Float_t PeakAmplitude,Int_t PeakPosition,Float_t Asigma, Float_t Tsigma,Float_t DriftPath, Float_t AnodeOffset,Int_t Samples);
176 virtual ~AliITSRawClusterSDD() {
180 void Add(AliITSRawClusterSDD* clJ);
181 Bool_t Brother(AliITSRawClusterSDD* cluster,Float_t dz,Float_t dx);
184 void SetX(Float_t x) {fX=x;}
185 void SetZ(Float_t z) {fZ=z;}
186 void SetQ(Float_t q) {fQ=q;}
187 void SetAnode(Float_t anode) {fAnode=anode;}
188 void SetTime(Float_t time) {fTime=time;}
189 void SetWing(Int_t wing) {fWing=wing;}
190 void SetNanodes(Int_t na) {fNanodes=na;}
191 void SetNsamples(Int_t ns) {fNsamples=ns;}
192 void SetPeakAmpl(Float_t ampl) {fPeakAmplitude=ampl;}
193 void SetPeakPos(Int_t pos) {fPeakPosition=pos;}
219 Int_t Anodes() const {
223 Int_t Samples() const {
227 Float_t PeakAmpl() const {
229 return fPeakAmplitude ;
231 Int_t PeakPos() {return fPeakPosition;}
235 Float_t fX; // X of cluster
236 Float_t fZ; // Z of cluster
237 Float_t fQ; // Q of cluster
238 Int_t fWing; // Wing number
239 Float_t fAnode; // Anode number
240 Float_t fTime; // Drift Time
241 Float_t fPeakAmplitude; // Peak Amplitude
242 Int_t fPeakPosition; // index of digit corresponding to peak
243 Int_t fNanodes; // N of anodes used for the cluster
244 Int_t fNsamples; // N of samples used for the cluster
246 ClassDef(AliITSRawClusterSDD,1) // AliITSRawCluster class for SDD
249 //-----------------------------------------
250 class AliITSRawClusterSSD : public AliITSRawCluster {
254 AliITSRawClusterSSD() {
259 for (int k=0;k<100;k++) {
266 AliITSRawClusterSSD(Float_t Prob,Int_t Sp,Int_t Sn);
267 virtual ~AliITSRawClusterSSD() {
271 Int_t GetStatus() const {
275 void SetStatus(Int_t status) {
282 Int_t fMultiplicityN; // The number of N side strips involved
283 // in this point calculations
284 Float_t fQErr; // Total charge error
285 Int_t fStatus; // Flag status : 0 - real point
290 // Float_t fProbability; // The probability that this is a "real" point
291 // Int_t fIndexMapN[100]; // indices of digits for Nside - the corresponding
292 // info for P side is carried in the base class
294 ClassDef(AliITSRawClusterSSD,1) // AliITSRawCluster class for SSD