]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSdigit.h
ConstructModules() corrected (both single and dependent modules are configured first...
[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   virtual int *GetTracks() {return 0;}
31   virtual Int_t *GetHits() {return 0;}
32   
33   ClassDef(AliITSdigit,1)     // Real data digit object for set:ITS
34     };
35
36 //___________________________________________
37 class AliITSdigitSPD: public AliITSdigit {
38   
39 public:
40   
41     // debugging  -- goes to the dictionary
42   Int_t       fTracks[3];         // tracks making this digit 
43   Int_t       fHits[3];           // hits associated to the tracks 
44                                   // 3 hits temporarily - it will be only 1
45   
46 public:
47
48   AliITSdigitSPD();
49   AliITSdigitSPD(Int_t *digits);
50   AliITSdigitSPD(Int_t *digits, Int_t *tracks, Int_t *hits);
51   
52   virtual ~AliITSdigitSPD(){
53     // destructor
54   }
55   virtual int *GetTracks() {
56     // returns pointer to the array of tracks which make this digit
57     return &fTracks[0];
58   }
59
60   virtual Int_t *GetHits(){
61     // returns the pointer to the array of hits which made this digit
62     return &fHits[0];
63   }
64   
65     ClassDef(AliITSdigitSPD,1)   // Simulated digit object for SPD
66       };
67
68 //___________________________________________
69 class AliITSdigitSDD: public AliITSdigit {
70   
71 public:
72   
73   // debugging  -- goes to the dictionary
74   Int_t       fTracks[3];         // tracks making this digit 
75   Int_t       fHits[3];           // hits associated to the tracks
76                                   // 3 hits temporarily - it will be only 1
77   Float_t     fTcharges[3];       // charge per track making this digit 
78   Float_t     fPhysics;           // signal particles contribution to signal
79   
80 public:
81
82   AliITSdigitSDD();  
83   AliITSdigitSDD(Float_t phys,Int_t *digits);
84   AliITSdigitSDD( Float_t phys, Int_t *digits, Int_t *tracks, Int_t *hits, Float_t *charges);
85   
86   virtual ~AliITSdigitSDD(){
87     // destructor
88   }
89   virtual int *GetTracks() {
90     // returns pointer to the array of tracks which make this digit
91     return &fTracks[0];
92   }
93   
94   virtual Int_t *GetHits(){
95     // returns the pointer to the array of hits which made this digit
96     return &fHits[0];
97   }
98  
99   ClassDef(AliITSdigitSDD,1)   // Simulated digit object for SDD
100     };
101
102 //_____________________________________________________________________________
103
104 class AliITSTransientDigit : public AliITSdigitSDD {
105 public:
106   TObjArray     *fTrackList;  // track list 
107 public:
108   AliITSTransientDigit() {
109     // constructor
110     fTrackList=0;
111   }
112   AliITSTransientDigit(Float_t phys,Int_t *digits);
113   virtual ~AliITSTransientDigit() {
114     // destructor
115     delete fTrackList;
116   }
117   AliITSTransientDigit(const AliITSTransientDigit &source); // copy constructor
118   AliITSTransientDigit& operator=(const AliITSTransientDigit &source); // ass. operator
119   TObjArray  *TrackList()   {
120     // returns pointer to the TObjArray of tracks and associated charges
121     return fTrackList;
122   }
123   
124   ClassDef(AliITSTransientDigit,1)  // Transient digit for set: ITS
125     };
126
127 //___________________________________________
128 class AliITSdigitSSD: public AliITSdigit {
129   
130 public:
131   
132   // debugging  -- goes to the dictionary
133   Int_t       fTracks[3];         // tracks making this digit 
134   Int_t       fHits[3];           // hits associated to the tracks
135                                   // 3 hits temporarily - it will be only 1
136   
137 public:
138   AliITSdigitSSD();
139   AliITSdigitSSD(Int_t *digits);
140   AliITSdigitSSD(Int_t *digits, Int_t *tracks, Int_t *hits);
141   
142   virtual ~AliITSdigitSSD(){
143     // destructor
144   }
145   
146   Int_t  GetSignal() const {
147     // returns signal
148     return fSignal;
149   }
150
151   Int_t  GetStripNumber() const {
152     // returns strip number
153     return fCoord2;
154   }
155   
156   Int_t  IsSideP() const {
157     //returns 1  when side P and 0 when side N     
158     return fCoord1;
159   }
160   
161   virtual int *GetTracks() {
162     // returns pointer to the array of tracks which make this digit
163     return &fTracks[0];
164     }
165
166   virtual Int_t *GetHits(){
167     // returns the pointer to the array of hits which made this digit
168     return &fHits[0];
169   }
170    
171   ClassDef(AliITSdigitSSD,1)   // Simulated digit object for SSD
172     };
173
174
175 #endif