Introduction of the reference to Copyright and cvs Id
[u/mrichter/AliRoot.git] / ITS / AliITShit.h
CommitLineData
58005f18 1#ifndef ITSHIT_H
2#define ITSHIT_H
3da30618 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
58005f18 7
8#include "AliDetector.h"
9#include "AliHit.h"
10#include "AliDigit.h"
11#include "AliITSgeom.h"
12
13
14class AliITShit : public AliHit {
15////////////////////////////////////////////////////////////////////////
16// Version: 0
17// Written by Rene Brun, Federico Carminati, and Roberto Barbera
18//
19// Version: 1
20// Modified and documented by Bjorn S. Nilsen
21// July 11 1999
22//
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
26// detector.
27//
28// Data members:
29//
30// Int_t fTrack
31// See AliHit for a full description. The track number of the track
32// that made this hit.
33//
34// Float_t fX
35// See AliHit for a full description. The global x position of the
36// hit (in the standard units of the Monte Carlo).
37//
38// Float_t fY
39// See AliHit for a full description. The global y position of the
40// hit (in the standard units of the Monte Carlo).
41//
42// Float_t fZ
43// See AliHit for a full description. The global z position of the
44// hit (in the standard units of the Monte Carlo).
45//
46// Int_t fStatus
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.
54//
55// Int_t fLayer
56// The layer number of the detector that contains this hit. See
57// AliITSgeom and AliITSv? for a description of the geometry.
58//
59// Int_t fLadder
60// The ladder number of the detector that contains this hit. See
61// AliITSgeom and AliITSv? for a description of the geometry.
62//
63// Int_t fDet
64// The detector number of the detector that contains this hit. See
65// AliITSgeom and AliITSv? for a description of the geometry.
66//
67// Float_t fPx
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.
71//
72// Float_t fPy
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.
76//
77// Float_t fPz
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.
81//
82// Float_t fDestep
83// The energy lost by the particle during the step ending in this
84// hit. The units are those determined by the Monte Carlo.
85//
86// Float_t fTof
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.
91//
92//
93// Member functions:
94//
95// AliITShit()
96// The default creator of the AliITShit class.
97//
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].
106//
107// ~AliITShit()
108// The default destructor of the AliITShit class.
109//
110// int GetTrack()
111// See AliHit for a full description. Returns the track number fTrack
112// for this hit.
113//
114// SetTrack(int track)
115// See AliHit for a full description. Sets the track number fTrack
116// for this hit.
117//
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
122// order bits
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.
127//
128// Int_t GetLayer()
129// Returns the layer number, fLayer, for this hit.
130//
131// Int_t GetLadder()
132// Returns the ladder number, fLadder, for this hit.
133//
134// Int_t GetDetector()
135// Returns the detector number, fDet, for this hit.
136//
137// GetDetectorID(Int_t &layer, Int_t &ladder, Int_t &detector)
138// Returns the layer, ladder, and detector numbers, fLayer fLadder fDet,
139// in one call.
140//
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.
144//
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.
148//
149// Float_t GetTOF()
150// Returns the time of flight, fTof, of this hit, in the units defined
151// by the Monte Carlo.
152//
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.
156//
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
166
167 public:
168//private:
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
178
179 public:
180 AliITShit() {}
181 AliITShit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits);
182 virtual ~AliITShit() {}
183 // Get Hit information functions.
184 // inline virtual int GetTrack(){return fTrack;} // define in AliHit
185 // inline virtual void SetTrack(int track){fTrack=track;) // AliHit
186 inline virtual Int_t GetTrackStatus() {return fStatus;}
187 inline virtual Int_t GetLayer() {return fLayer;}
188 inline virtual Int_t GetLadder() {return fLadder;}
189 inline virtual Int_t GetDetector() {return fDet;}
190 inline virtual void GetDetectorID(Int_t &layer,Int_t &ladder,
191 Int_t &detector)
192 {layer=fLayer;ladder=fLadder;detector=fDet;return;};
193 inline virtual Float_t GetIonization() {return fDestep;}
194 //
195 inline virtual void GetPositionG(Float_t &x,Float_t &y,Float_t &z)
196 {x=fX;y=fY;z=fZ;return;};
197 inline virtual Float_t GetTOF() {return fTof;}
198 inline virtual void GetPositionG(Float_t &x,Float_t &y,Float_t &z,
199 Float_t &tof)
200 {x=fX;y=fY;z=fZ,tof=fTof;return;};
201 inline virtual Float_t GetXG(){return fX;}
202 inline virtual Float_t GetYG(){return fY;}
203 inline virtual Float_t GetZG(){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,
206 Float_t &tof);
207 virtual Float_t GetXL();
208 virtual Float_t GetYL();
209 virtual Float_t GetZL();
210 // Get Monti Carlo information about hit.
211 inline virtual void GetMomentumG(Float_t &px,Float_t &py,Float_t &pz)
212 {px=fPx;py=fPy;pz=fPz;return;};
213 virtual void GetMomentumL(Float_t &px,Float_t &py,Float_t &pz);
214 ClassDef(AliITShit,1) //Hits object for set:ITS
215};
216
217#endif