1 #ifndef ALIITSRAWCLUSTER_H
2 #define ALIITSRAWCLUSTER_H
4 ////////////////////////////////////////////////////
5 // Cluster classes for set:ITS //
6 ////////////////////////////////////////////////////
9 // this class is subject to changes !!! - info used for declustering
10 // and eventual debugging
12 class AliITSRawCluster : public TObject {
14 AliITSRawCluster() { // default constructor
16 virtual ~AliITSRawCluster() {// destructor
18 virtual Bool_t IsSortable() const {// is sortable
21 Int_t fMultiplicity; // cluster multiplicity
23 ClassDef(AliITSRawCluster,1) // AliITSRawCluster class
25 //----------------------------------------------------------------------
26 // these classes are subject to changes - keep them temporarily for
28 class AliITSRawClusterSPD : public AliITSRawCluster {
30 AliITSRawClusterSPD() {// constructor
33 fNClZ=fNClX=fXStart=fXStop=fZend=fNTracks=0;
34 fTracks[0]=fTracks[1]=fTracks[2]=-3,fModule=0;
36 AliITSRawClusterSPD(Float_t clz,Float_t clx,Float_t Charge,
37 Int_t ClusterSizeZ,Int_t ClusterSizeX,
38 Int_t xstart,Int_t xstop,Float_t zstart,
39 Float_t zstop,Int_t zend,Int_t module);
40 virtual ~AliITSRawClusterSPD() {// destructor
42 void Add(AliITSRawClusterSPD* clJ);
43 Bool_t Brother(AliITSRawClusterSPD* cluster,Float_t dz,Float_t dx);
46 Float_t Q() const {// Q
48 Float_t Z() const {// Z
50 Float_t X() const {// X
52 Int_t NclZ() const {// NclZ
54 Int_t NclX() const {// NclX
56 Int_t XStart() const {//XStart
58 Int_t XStop() const {//XStop
60 Int_t XStartf() const {//XStartf
62 Int_t XStopf() const {//XStopf
64 Float_t ZStart() const {//ZStart
66 Float_t ZStop() const {//ZStop
68 Int_t Zend() const {//Zend
70 Int_t NTracks() const {//NTracks
72 Int_t Module() const {//Returns module where this cluster came from
74 void GetTracks(Int_t &track0,Int_t &track1,Int_t &track2) const {
75 // returns tracks created a cluster
81 void SetTracks(Int_t track0, Int_t track1, Int_t track2) {
82 // set tracks in cluster (not more than three ones)
87 void SetNTracks(Int_t ntracks) {
92 Float_t fX; // X of cluster
93 Float_t fZ; // Z of cluster
94 Float_t fQ; // Q of cluster
95 Int_t fNClZ; // Cluster size in Z direction
96 Int_t fNClX; // Cluster size in X direction
97 Int_t fXStart; // number of first pixel in cluster
98 Int_t fXStop; // number of last pixel in cluster
99 Float_t fZStart; // number of first pixel in cluster
100 Float_t fZStop; // number of last pixel in cluster
102 Int_t fNTracks; // number of tracks created a cluster
103 Int_t fTracks[3]; // tracks created a cluster
104 Int_t fModule; // Module number for this culuster
106 ClassDef(AliITSRawClusterSPD,2) // AliITSRawCluster class for SPD
108 //----------------------------------------------------------------------
109 class AliITSRawClusterSDD : public AliITSRawCluster {
111 AliITSRawClusterSDD() {
116 fAnode=fTime=fPeakAmplitude=0;
119 fTstart=fTstop=fTstartf=fTstopf=0;
122 AliITSRawClusterSDD(Int_t wing,Float_t Anode,Float_t Time,Float_t Charge,
123 Float_t PeakAmplitude,Int_t PeakPosition,
124 Float_t Asigma,Float_t Tsigma,Float_t DriftPath,
125 Float_t AnodeOffset, Int_t Samples,
126 Int_t Tstart, Int_t Tstop,Int_t Tstartf,Int_t Tstopf,
127 Int_t Anodes, Int_t Astart, Int_t Astop);
128 AliITSRawClusterSDD( const AliITSRawClusterSDD & source);
129 virtual ~AliITSRawClusterSDD() {// destructor
131 void Add(AliITSRawClusterSDD* clJ);
132 Bool_t Brother(AliITSRawClusterSDD* cluster,Float_t dz,Float_t dx);
135 void SetX(Float_t x) {fX=x;}
136 void SetZ(Float_t z) {fZ=z;}
137 void SetQ(Float_t q) {fQ=q;}
138 void SetAnode(Float_t anode) {fAnode=anode;}
139 void SetTime(Float_t time) {fTime=time;}
140 void SetAsigma(Float_t asigma) {fAsigma=asigma;}
141 void SetTsigma(Float_t tsigma) {fTsigma=tsigma;}
142 void SetWing(Int_t wing) {fWing=wing;}
143 void SetNanodes(Int_t na) {fNanodes=na;}
144 void SetNsamples(Int_t ns) {fMultiplicity=ns;}
145 void SetPeakAmpl(Float_t ampl) {fPeakAmplitude=ampl;}
146 void SetPeakPos(Int_t pos) {fPeakPosition=pos;}
148 Float_t X() const {//X
150 Float_t Z() const {//Z
152 Float_t Q() const {//Q
154 Float_t A() const {//A
156 Float_t T() const {//T
158 Float_t Asigma() const {//Asigma
160 Float_t Tsigma() const {//Tsigma
162 Float_t W() const {//W
164 Int_t Anodes() const {//Anodes
166 Int_t Samples() const {//Samples
167 return fMultiplicity;}
168 Float_t PeakAmpl() const {//PeakAmpl
169 return fPeakAmplitude ;}
170 Float_t SumAmpl() const {//PeakAmpl
171 return fSumAmplitude ;}
172 Int_t PeakPos() {return fPeakPosition;}
173 Int_t Tstart() const {//Tstart
175 Int_t Tstartf() const {//Tstartf
177 Int_t Tstop() const {//Tstop
179 Int_t Tstopf() const {//Tstopf
181 Int_t Astart() const {//Astart
183 Int_t Astop() const {//Astop
186 Float_t fX; // X of cluster
187 Float_t fZ; // Z of cluster
188 Float_t fQ; // Q of cluster
189 Int_t fWing; // Wing number
190 Float_t fAnode; // Anode number
191 Float_t fTime; // Drift Time
194 Float_t fPeakAmplitude; // Peak Amplitude
195 Float_t fSumAmplitude; // Total Amplitude (for weighting)
196 Int_t fPeakPosition; // index of digit corresponding to peak
197 Int_t fNanodes; // N of anodes used for the cluster
198 Int_t fTstart; // First sample in 1D cluster
199 Int_t fTstop; // Last sample in 1D cluster
200 Int_t fTstartf; // First sample in the full 2D cluster
201 Int_t fTstopf; // Last sample in the full 2D cluster
202 Int_t fAstart; // First anode in the 2D cluster
203 Int_t fAstop; // last anode in the 2D cluster
205 ClassDef(AliITSRawClusterSDD,1) // AliITSRawCluster class for SDD
207 //----------------------------------------------------------------------
208 class AliITSRawClusterSSD : public AliITSRawCluster {
210 AliITSRawClusterSSD() {
218 AliITSRawClusterSSD(Float_t Prob,Int_t Sp,Int_t Sn);
219 virtual ~AliITSRawClusterSSD() {// destructor
221 Int_t GetStatus() const {// get status
223 void SetStatus(Int_t status) {// set status
226 Int_t fMultiplicityN; // The number of N side strips involved
227 // in this point calculations
228 Float_t fQErr; // Total charge error
229 Float_t fSignalP; // Signal of P side cluster
230 Float_t fSignalN; // Signal of N side cluster
231 Int_t fStatus; // Flag status : 0 - real point
235 Int_t fNtracks; // Number of tracks created the cluster
236 ClassDef(AliITSRawClusterSSD,1) // AliITSRawCluster class for SSD