3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 #include "AliDetector.h"
11 #include "AliITSgeom.h"
14 class AliITShit : public AliHit {
15 ////////////////////////////////////////////////////////////////////////
17 // Written by Rene Brun, Federico Carminati, and Roberto Barbera
20 // Modified and documented by Bjorn S. Nilsen
23 // AliITShit is the hit class for the ITS. Hits are the information
24 // that comes from a Monte Carlo at each step as a particle mass through
25 // sensitive detector elements as particles are transported through a
31 // See AliHit for a full description. The track number of the track
32 // that made this hit.
35 // See AliHit for a full description. The global x position of the
36 // hit (in the standard units of the Monte Carlo).
39 // See AliHit for a full description. The global y position of the
40 // hit (in the standard units of the Monte Carlo).
43 // See AliHit for a full description. The global z position of the
44 // hit (in the standard units of the Monte Carlo).
47 // The track status flag. This flag indicates the track status
48 // at the time of creating this hit. It is made up of the following 8
49 // status bits from highest order to lowest order bits
50 // 0 : IsTrackAlive(): IsTrackStop():IsTrackDisappeared():
51 // IsTrackOut():IsTrackExiting():IsTrackEntering():IsTrackInside() .
52 // See AliMC for a description of these functions. If the function is
53 // true then the bit is set to one, otherwise it is zero.
56 // The layer number of the detector that contains this hit. See
57 // AliITSgeom and AliITSv? for a description of the geometry.
60 // The ladder number of the detector that contains this hit. See
61 // AliITSgeom and AliITSv? for a description of the geometry.
64 // The detector number of the detector that contains this hit. See
65 // AliITSgeom and AliITSv? for a description of the geometry.
68 // The x momentum, in global coordinates, of the particle that
69 // "created" the hit at the time and position of the hit. The units
70 // are those determined by the Monte Carlo.
73 // The y momentum, in global coordinates, of the particle that
74 // "created" the hit at the time and position of the hit. The units
75 // are those determined by the Monte Carlo.
78 // The z momentum, in global coordinates, of the particle that
79 // "created" the hit at the time and position of the hit. The units
80 // are those determined by the Monte Carlo.
83 // The energy lost by the particle during the step ending in this
84 // hit. The units are those determined by the Monte Carlo.
87 // The time of flight associated with the particle ending in this
88 // hit. The time is typically measured from the point of creation of the
89 // original particle (if this particle is a daughter). The units
90 // are those determined by the Monte Carlo.
96 // The default creator of the AliITShit class.
98 // AliITShit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits)
99 // The creator of the AliITShit class. The variables shunt and
100 // track are passed to the creator of the AliHit class. See the AliHit
101 // class for a full description. the integer array *vol contains, in order,
102 // fLayer = vol[0], fDet = vol[1], fLadder = vol[2], fStatus = vol[3].
103 // The array *hits contains, in order, fX = hits[0], fY = hits[1],
104 // fZ = hits[2], fPx = hits[3], fPy = hits[4], fPz = hits[5],
105 // fDestep = hits[6], and fTof = hits[7].
108 // The default destructor of the AliITShit class.
111 // See AliHit for a full description. Returns the track number fTrack
114 // SetTrack(int track)
115 // See AliHit for a full description. Sets the track number fTrack
118 // Int_t GetTrackStatus()
119 // Returns the value of the track status flag fStatus. This flag
120 // indicates the track status at the time of creating this hit. It is
121 // made up of the following 8 status bits from highest order to lowest
123 // 0 : IsTrackAlive(): IsTrackStop():IsTrackDisappeared():
124 // IsTrackOut():IsTrackExiting():IsTrackEntering():IsTrackInside() .
125 // See AliMC for a description of these functions. If the function is
126 // true then the bit is set to one, otherwise it is zero.
129 // Returns the layer number, fLayer, for this hit.
132 // Returns the ladder number, fLadder, for this hit.
134 // Int_t GetDetector()
135 // Returns the detector number, fDet, for this hit.
137 // GetDetectorID(Int_t &layer, Int_t &ladder, Int_t &detector)
138 // Returns the layer, ladder, and detector numbers, fLayer fLadder fDet,
141 // Float_t GetIonization()
142 // Returns the energy lost, fDestep, by the particle creating this hit,
143 // in the units defined by the Monte Carlo.
145 // GetPoositionG(Float_t &x, Float_t &y, Float_t &z)
146 // Returns the global position, fX fY fZ, of this hit, in the units
147 // define by the Monte Carlo.
150 // Returns the time of flight, fTof, of this hit, in the units defined
151 // by the Monte Carlo.
153 // GetPositionG(Float_t &x, Float_t &y, Float_t &z, Float_t &tof)
154 // Returns the global position and time of flight, fX fY fZ fTof, of
155 // this hit, in the units define by the Monte Carlo.
157 // GetPositioonP(Float_t &px, Float_t &py, Float_t &pz)
158 // Returns the global momentum, fPx fPy fPz, of the particle that made
159 // this hit, in the units define by the Monte Carlo.
160 ////////////////////////////////////////////////////////////////////////
161 // public; // defined in AliHit
162 // Int_t fTrack // defined in AliHit
163 // Float_t fX; // defined in AliHit
164 // Float_t fY; // defined in AliHit
165 // Float_t fZ; // defined in AliHit
169 Int_t fStatus; // Track Status
170 Int_t fLayer; // Layer number
171 Int_t fLadder; // Ladder number
172 Int_t fDet; // Detector number
173 Float_t fPx; // PX of particle at the point of the hit
174 Float_t fPy; // PY of particle at the point of the hit
175 Float_t fPz; // PZ of particle at the point of the hit
176 Float_t fDestep; // Energy deposited in the current step
177 Float_t fTof; // Time of flight at the point of the hit
181 AliITShit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits);
182 virtual ~AliITShit() {}
183 // Get Hit information functions.
184 // virtual int GetTrack() const {return fTrack;} // define in AliHit
185 // virtual void SetTrack(int track) const {fTrack=track;) // AliHit
186 virtual Int_t GetTrackStatus() const {return fStatus;}
187 virtual Int_t GetLayer() const {return fLayer;}
188 virtual Int_t GetLadder() const {return fLadder;}
189 virtual Int_t GetDetector() const {return fDet;}
190 virtual void GetDetectorID(Int_t &layer,Int_t &ladder,
192 const {layer=fLayer;ladder=fLadder;detector=fDet;return;};
193 virtual Float_t GetIonization() const {return fDestep;}
195 virtual void GetPositionG(Float_t &x,Float_t &y,Float_t &z)
196 const {x=fX;y=fY;z=fZ;return;};
197 virtual Float_t GetTOF() const {return fTof;}
198 virtual void GetPositionG(Float_t &x,Float_t &y,Float_t &z,
200 const {x=fX;y=fY;z=fZ,tof=fTof;return;};
201 virtual Float_t GetXG()const {return fX;}
202 virtual Float_t GetYG()const {return fY;}
203 virtual Float_t GetZG()const {return fZ;}
204 virtual void GetPositionL(Float_t &x,Float_t &y,Float_t &z);
205 virtual void GetPositionL(Float_t &x,Float_t &y,Float_t &z,
207 virtual Float_t GetXL();
208 virtual Float_t GetYL();
209 virtual Float_t GetZL();
210 // Get Monti Carlo information about hit.
211 virtual void GetMomentumG(Float_t &px,Float_t &py,Float_t &pz)
212 const {px=fPx;py=fPy;pz=fPz;return;};
213 virtual void GetMomentumL(Float_t &px,Float_t &py,Float_t &pz);
215 ClassDef(AliITShit,1) //Hits object for set:ITS