]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITShit.h
Introduction of the Copyright and cvs Log
[u/mrichter/AliRoot.git] / ITS / AliITShit.h
CommitLineData
58005f18 1#ifndef ITSHIT_H
2#define ITSHIT_H
3
4#include "AliDetector.h"
5#include "AliHit.h"
6#include "AliDigit.h"
7#include "AliITSgeom.h"
8
9
10class AliITShit : public AliHit {
11////////////////////////////////////////////////////////////////////////
12// Version: 0
13// Written by Rene Brun, Federico Carminati, and Roberto Barbera
14//
15// Version: 1
16// Modified and documented by Bjorn S. Nilsen
17// July 11 1999
18//
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
22// detector.
23//
24// Data members:
25//
26// Int_t fTrack
27// See AliHit for a full description. The track number of the track
28// that made this hit.
29//
30// Float_t fX
31// See AliHit for a full description. The global x position of the
32// hit (in the standard units of the Monte Carlo).
33//
34// Float_t fY
35// See AliHit for a full description. The global y position of the
36// hit (in the standard units of the Monte Carlo).
37//
38// Float_t fZ
39// See AliHit for a full description. The global z position of the
40// hit (in the standard units of the Monte Carlo).
41//
42// Int_t fStatus
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.
50//
51// Int_t fLayer
52// The layer number of the detector that contains this hit. See
53// AliITSgeom and AliITSv? for a description of the geometry.
54//
55// Int_t fLadder
56// The ladder number of the detector that contains this hit. See
57// AliITSgeom and AliITSv? for a description of the geometry.
58//
59// Int_t fDet
60// The detector number of the detector that contains this hit. See
61// AliITSgeom and AliITSv? for a description of the geometry.
62//
63// Float_t fPx
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.
67//
68// Float_t fPy
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.
72//
73// Float_t fPz
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.
77//
78// Float_t fDestep
79// The energy lost by the particle during the step ending in this
80// hit. The units are those determined by the Monte Carlo.
81//
82// Float_t fTof
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.
87//
88//
89// Member functions:
90//
91// AliITShit()
92// The default creator of the AliITShit class.
93//
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].
102//
103// ~AliITShit()
104// The default destructor of the AliITShit class.
105//
106// int GetTrack()
107// See AliHit for a full description. Returns the track number fTrack
108// for this hit.
109//
110// SetTrack(int track)
111// See AliHit for a full description. Sets the track number fTrack
112// for this hit.
113//
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
118// order bits
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.
123//
124// Int_t GetLayer()
125// Returns the layer number, fLayer, for this hit.
126//
127// Int_t GetLadder()
128// Returns the ladder number, fLadder, for this hit.
129//
130// Int_t GetDetector()
131// Returns the detector number, fDet, for this hit.
132//
133// GetDetectorID(Int_t &layer, Int_t &ladder, Int_t &detector)
134// Returns the layer, ladder, and detector numbers, fLayer fLadder fDet,
135// in one call.
136//
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.
140//
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.
144//
145// Float_t GetTOF()
146// Returns the time of flight, fTof, of this hit, in the units defined
147// by the Monte Carlo.
148//
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.
152//
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
162
163 public:
164//private:
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
174
175 public:
176 AliITShit() {}
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,
187 Int_t &detector)
188 {layer=fLayer;ladder=fLadder;detector=fDet;return;};
189 inline virtual Float_t GetIonization() {return fDestep;}
190 //
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,
195 Float_t &tof)
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,
202 Float_t &tof);
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
211};
212
213#endif