Forward declaration added
[u/mrichter/AliRoot.git] / ITS / AliITSdigit.h
1 #ifndef ALIITSDIGIT_H
2 #define ALIITSDIGIT_H
3
4 ////////////////////////////////////////////////
5 //  Digits classes for set:ITS                //
6 ////////////////////////////////////////////////
7 #include <TObjArray.h>
8 #include <TObject.h>
9
10
11 //___________________________________________
12 class AliITSdigit: public TObject  {
13   
14 public:
15   
16   Int_t fCoord1;  // Cell number on Z axis (SPD+SDD) , flag for side type (SSD)
17   Int_t fCoord2 ; // Cell number on X axis (SPD+SDD) , strip number (SSD)
18   Int_t fSignal;  // Signal in ADC counts
19   
20 public:
21   AliITSdigit() {
22     // constructor
23     fSignal=fCoord1=fCoord2=0;
24   }
25   AliITSdigit(Int_t *digits);
26   virtual ~AliITSdigit() {
27     // destructor
28   }
29   
30   ClassDef(AliITSdigit,1)     // Real data digit object for set:ITS
31     };
32
33 //___________________________________________
34 class AliITSdigitSPD: public AliITSdigit {
35   
36 public:
37   
38     // debugging  -- goes to the dictionary
39   Int_t       fTracks[3];         // tracks making this digit 
40   Int_t       fHits[3];           // hits associated to the tracks 
41                                   // 3 hits temporarily - it will be only 1
42   
43 public:
44
45   AliITSdigitSPD();
46   AliITSdigitSPD(Int_t *digits);
47   AliITSdigitSPD(Int_t *digits, Int_t *tracks, Int_t *hits);
48   
49   virtual ~AliITSdigitSPD(){
50     // destructor
51   }
52   virtual int *GetTracks() {
53     // returns pointer to the array of tracks which make this digit
54     return &fTracks[0];
55   }
56   
57     ClassDef(AliITSdigitSPD,1)   // Simulated digit object for SPD
58       };
59
60 //___________________________________________
61 class AliITSdigitSDD: public AliITSdigit {
62   
63 public:
64   
65   // debugging  -- goes to the dictionary
66   Int_t       fTracks[3];         // tracks making this digit 
67   Int_t       fHits[3];           // hits associated to the tracks
68                                   // 3 hits temporarily - it will be only 1
69   Float_t     fTcharges[3];       // charge per track making this digit 
70   Float_t     fPhysics;           // signal particles contribution to signal
71   
72 public:
73
74   AliITSdigitSDD();  
75   AliITSdigitSDD(Float_t phys,Int_t *digits);
76   AliITSdigitSDD( Float_t phys, Int_t *digits, Int_t *tracks, Int_t *hits, Float_t *charges);
77   
78   virtual ~AliITSdigitSDD(){
79     // destructor
80   }
81   virtual int *GetTracks() {
82     // returns pointer to the array of tracks which make this digit
83     return &fTracks[0];
84   }
85   
86   ClassDef(AliITSdigitSDD,1)   // Simulated digit object for SDD
87     };
88
89 //_____________________________________________________________________________
90
91 class AliITSTransientDigit : public AliITSdigitSDD {
92 public:
93   TObjArray     *fTrackList;  // track list 
94 public:
95   AliITSTransientDigit() {
96     // constructor
97     fTrackList=0;
98   }
99   AliITSTransientDigit(Float_t phys,Int_t *digits);
100   virtual ~AliITSTransientDigit() {
101     // destructor
102     delete fTrackList;
103   }
104   AliITSTransientDigit(const AliITSTransientDigit &source); // copy constructor
105   AliITSTransientDigit& operator=(const AliITSTransientDigit &source); // ass. operator
106   TObjArray  *TrackList()   {
107     // returns pointer to the TObjArray of tracks and associated charges
108     return fTrackList;
109   }
110   
111   ClassDef(AliITSTransientDigit,1)  // Transient digit for set: ITS
112     };
113
114 //___________________________________________
115 class AliITSdigitSSD: public AliITSdigit {
116   
117 public:
118   
119   // debugging  -- goes to the dictionary
120   Int_t       fTracks[3];         // tracks making this digit 
121   Int_t       fHits[3];           // hits associated to the tracks
122                                   // 3 hits temporarily - it will be only 1
123   
124 public:
125   AliITSdigitSSD();
126   AliITSdigitSSD(Int_t *digits);
127   AliITSdigitSSD(Int_t *digits, Int_t *tracks, Int_t *hits);
128   
129   virtual ~AliITSdigitSSD(){
130     // destructor
131   }
132   
133   Int_t  GetSignal() const {
134     // returns signal
135     return fSignal;
136   }
137
138   Int_t  GetStripNumber() const {
139     // returns strip number
140     return fCoord2;
141   }
142   
143   Int_t  IsSideP() const {
144     //returns 1  when side P and 0 when side N     
145     return fCoord1;
146   }
147   
148   virtual int *GetTracks() {
149     // returns pointer to the array of tracks which make this digit
150     return &fTracks[0];
151     }
152   
153   ClassDef(AliITSdigitSSD,1)   // Simulated digit object for SSD
154     };
155
156
157 #endif