4 #include "AliDetector.h"
7 #include "AliITSgeom.h"
10 class AliITShit : public AliHit {
11 ////////////////////////////////////////////////////////////////////////
13 // Written by Rene Brun, Federico Carminati, and Roberto Barbera
16 // Modified and documented by Bjorn S. Nilsen
19 // AliITShit is the hit class for the ITS. Hits are the information
20 // that comes from a Monte Carlo at each step as a particle mass through
21 // sensitive detector elements as particles are transported through a
27 // See AliHit for a full description. The track number of the track
28 // that made this hit.
31 // See AliHit for a full description. The global x position of the
32 // hit (in the standard units of the Monte Carlo).
35 // See AliHit for a full description. The global y position of the
36 // hit (in the standard units of the Monte Carlo).
39 // See AliHit for a full description. The global z position of the
40 // hit (in the standard units of the Monte Carlo).
43 // The track status flag. This flag indicates the track status
44 // at the time of creating this hit. It is made up of the following 8
45 // status bits from highest order to lowest order bits
46 // 0 : IsTrackAlive(): IsTrackStop():IsTrackDisappeared():
47 // IsTrackOut():IsTrackExiting():IsTrackEntering():IsTrackInside() .
48 // See AliMC for a description of these functions. If the function is
49 // true then the bit is set to one, otherwise it is zero.
52 // The layer number of the detector that contains this hit. See
53 // AliITSgeom and AliITSv? for a description of the geometry.
56 // The ladder number of the detector that contains this hit. See
57 // AliITSgeom and AliITSv? for a description of the geometry.
60 // The detector number of the detector that contains this hit. See
61 // AliITSgeom and AliITSv? for a description of the geometry.
64 // The x momentum, in global coordinates, of the particle that
65 // "created" the hit at the time and position of the hit. The units
66 // are those determined by the Monte Carlo.
69 // The y momentum, in global coordinates, of the particle that
70 // "created" the hit at the time and position of the hit. The units
71 // are those determined by the Monte Carlo.
74 // The z momentum, in global coordinates, of the particle that
75 // "created" the hit at the time and position of the hit. The units
76 // are those determined by the Monte Carlo.
79 // The energy lost by the particle during the step ending in this
80 // hit. The units are those determined by the Monte Carlo.
83 // The time of flight associated with the particle ending in this
84 // hit. The time is typically measured from the point of creation of the
85 // original particle (if this particle is a daughter). The units
86 // are those determined by the Monte Carlo.
92 // The default creator of the AliITShit class.
94 // AliITShit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits)
95 // The creator of the AliITShit class. The variables shunt and
96 // track are passed to the creator of the AliHit class. See the AliHit
97 // class for a full description. the integer array *vol contains, in order,
98 // fLayer = vol[0], fDet = vol[1], fLadder = vol[2], fStatus = vol[3].
99 // The array *hits contains, in order, fX = hits[0], fY = hits[1],
100 // fZ = hits[2], fPx = hits[3], fPy = hits[4], fPz = hits[5],
101 // fDestep = hits[6], and fTof = hits[7].
104 // The default destructor of the AliITShit class.
107 // See AliHit for a full description. Returns the track number fTrack
110 // SetTrack(int track)
111 // See AliHit for a full description. Sets the track number fTrack
114 // Int_t GetTrackStatus()
115 // Returns the value of the track status flag fStatus. This flag
116 // indicates the track status at the time of creating this hit. It is
117 // made up of the following 8 status bits from highest order to lowest
119 // 0 : IsTrackAlive(): IsTrackStop():IsTrackDisappeared():
120 // IsTrackOut():IsTrackExiting():IsTrackEntering():IsTrackInside() .
121 // See AliMC for a description of these functions. If the function is
122 // true then the bit is set to one, otherwise it is zero.
125 // Returns the layer number, fLayer, for this hit.
128 // Returns the ladder number, fLadder, for this hit.
130 // Int_t GetDetector()
131 // Returns the detector number, fDet, for this hit.
133 // GetDetectorID(Int_t &layer, Int_t &ladder, Int_t &detector)
134 // Returns the layer, ladder, and detector numbers, fLayer fLadder fDet,
137 // Float_t GetIonization()
138 // Returns the energy lost, fDestep, by the particle creating this hit,
139 // in the units defined by the Monte Carlo.
141 // GetPoositionG(Float_t &x, Float_t &y, Float_t &z)
142 // Returns the global position, fX fY fZ, of this hit, in the units
143 // define by the Monte Carlo.
146 // Returns the time of flight, fTof, of this hit, in the units defined
147 // by the Monte Carlo.
149 // GetPositionG(Float_t &x, Float_t &y, Float_t &z, Float_t &tof)
150 // Returns the global position and time of flight, fX fY fZ fTof, of
151 // this hit, in the units define by the Monte Carlo.
153 // GetPositioonP(Float_t &px, Float_t &py, Float_t &pz)
154 // Returns the global momentum, fPx fPy fPz, of the particle that made
155 // this hit, in the units define by the Monte Carlo.
156 ////////////////////////////////////////////////////////////////////////
157 // public; // defined in AliHit
158 // Int_t fTrack // defined in AliHit
159 // Float_t fX; // defined in AliHit
160 // Float_t fY; // defined in AliHit
161 // Float_t fZ; // defined in AliHit
165 Int_t fStatus; // Track Status
166 Int_t fLayer; // Layer number
167 Int_t fLadder; // Ladder number
168 Int_t fDet; // Detector number
169 Float_t fPx; // PX of particle at the point of the hit
170 Float_t fPy; // PY of particle at the point of the hit
171 Float_t fPz; // PZ of particle at the point of the hit
172 Float_t fDestep; // Energy deposited in the current step
173 Float_t fTof; // Time of flight at the point of the hit
177 AliITShit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits);
178 virtual ~AliITShit() {}
179 // Get Hit information functions.
180 // inline virtual int GetTrack(){return fTrack;} // define in AliHit
181 // inline virtual void SetTrack(int track){fTrack=track;) // AliHit
182 inline virtual Int_t GetTrackStatus() {return fStatus;}
183 inline virtual Int_t GetLayer() {return fLayer;}
184 inline virtual Int_t GetLadder() {return fLadder;}
185 inline virtual Int_t GetDetector() {return fDet;}
186 inline virtual void GetDetectorID(Int_t &layer,Int_t &ladder,
188 {layer=fLayer;ladder=fLadder;detector=fDet;return;};
189 inline virtual Float_t GetIonization() {return fDestep;}
191 inline virtual void GetPositionG(Float_t &x,Float_t &y,Float_t &z)
192 {x=fX;y=fY;z=fZ;return;};
193 inline virtual Float_t GetTOF() {return fTof;}
194 inline virtual void GetPositionG(Float_t &x,Float_t &y,Float_t &z,
196 {x=fX;y=fY;z=fZ,tof=fTof;return;};
197 inline virtual Float_t GetXG(){return fX;}
198 inline virtual Float_t GetYG(){return fY;}
199 inline virtual Float_t GetZG(){return fZ;}
200 virtual void GetPositionL(Float_t &x,Float_t &y,Float_t &z);
201 virtual void GetPositionL(Float_t &x,Float_t &y,Float_t &z,
203 virtual Float_t GetXL();
204 virtual Float_t GetYL();
205 virtual Float_t GetZL();
206 // Get Monti Carlo information about hit.
207 inline virtual void GetMomentumG(Float_t &px,Float_t &py,Float_t &pz)
208 {px=fPx;py=fPy;pz=fPz;return;};
209 virtual void GetMomentumL(Float_t &px,Float_t &py,Float_t &pz);
210 ClassDef(AliITShit,1) //Hits object for set:ITS