changed to 6 patches
[u/mrichter/AliRoot.git] / ITS / AliITSdigit.h
CommitLineData
3bd79107 1#ifndef ALIITSDIGIT_H
2#define ALIITSDIGIT_H
3da30618 3
3bd79107 4////////////////////////////////////////////////
5// Digits classes for set:ITS //
6////////////////////////////////////////////////
3bd79107 7#include <TObjArray.h>
92c19c36 8#include <TObject.h>
9
58005f18 10
11//___________________________________________
3bd79107 12class AliITSdigit: public TObject {
13
14public:
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)
e8189707 18 Int_t fSignal; // Signal in ADC counts
3bd79107 19
20public:
21 AliITSdigit() {
22 // constructor
23 fSignal=fCoord1=fCoord2=0;
24 }
25 AliITSdigit(Int_t *digits);
e8189707 26 virtual ~AliITSdigit() {
3bd79107 27 // destructor
28 }
7fc27b48 29
30 virtual int *GetTracks() {return 0;}
31 virtual Int_t *GetHits() {return 0;}
3bd79107 32
33 ClassDef(AliITSdigit,1) // Real data digit object for set:ITS
34 };
35
36//___________________________________________
37class AliITSdigitSPD: public AliITSdigit {
38
39public:
40
41 // debugging -- goes to the dictionary
42 Int_t fTracks[3]; // tracks making this digit
e8189707 43 Int_t fHits[3]; // hits associated to the tracks
44 // 3 hits temporarily - it will be only 1
3bd79107 45
46public:
92c19c36 47
48 AliITSdigitSPD();
3bd79107 49 AliITSdigitSPD(Int_t *digits);
e8189707 50 AliITSdigitSPD(Int_t *digits, Int_t *tracks, Int_t *hits);
3bd79107 51
e8189707 52 virtual ~AliITSdigitSPD(){
3bd79107 53 // destructor
54 }
55 virtual int *GetTracks() {
56 // returns pointer to the array of tracks which make this digit
57 return &fTracks[0];
58 }
7fc27b48 59
60 virtual Int_t *GetHits(){
61 // returns the pointer to the array of hits which made this digit
62 return &fHits[0];
63 }
3bd79107 64
65 ClassDef(AliITSdigitSPD,1) // Simulated digit object for SPD
66 };
67
68//___________________________________________
69class AliITSdigitSDD: public AliITSdigit {
70
71public:
72
73 // debugging -- goes to the dictionary
74 Int_t fTracks[3]; // tracks making this digit
e8189707 75 Int_t fHits[3]; // hits associated to the tracks
76 // 3 hits temporarily - it will be only 1
3bd79107 77 Float_t fTcharges[3]; // charge per track making this digit
78 Float_t fPhysics; // signal particles contribution to signal
79
80public:
92c19c36 81
82 AliITSdigitSDD();
3bd79107 83 AliITSdigitSDD(Float_t phys,Int_t *digits);
e8189707 84 AliITSdigitSDD( Float_t phys, Int_t *digits, Int_t *tracks, Int_t *hits, Float_t *charges);
3bd79107 85
e8189707 86 virtual ~AliITSdigitSDD(){
3bd79107 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
7fc27b48 94 virtual Int_t *GetHits(){
95 // returns the pointer to the array of hits which made this digit
96 return &fHits[0];
97 }
98
3bd79107 99 ClassDef(AliITSdigitSDD,1) // Simulated digit object for SDD
100 };
101
102//_____________________________________________________________________________
103
104class AliITSTransientDigit : public AliITSdigitSDD {
105public:
106 TObjArray *fTrackList; // track list
107public:
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//___________________________________________
128class AliITSdigitSSD: public AliITSdigit {
129
130public:
131
132 // debugging -- goes to the dictionary
133 Int_t fTracks[3]; // tracks making this digit
e8189707 134 Int_t fHits[3]; // hits associated to the tracks
135 // 3 hits temporarily - it will be only 1
3bd79107 136
137public:
92c19c36 138 AliITSdigitSSD();
3bd79107 139 AliITSdigitSSD(Int_t *digits);
e8189707 140 AliITSdigitSSD(Int_t *digits, Int_t *tracks, Int_t *hits);
3bd79107 141
e8189707 142 virtual ~AliITSdigitSSD(){
3bd79107 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 }
7fc27b48 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
3bd79107 171 ClassDef(AliITSdigitSSD,1) // Simulated digit object for SSD
172 };
58005f18 173
58005f18 174
58005f18 175#endif