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