]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONHit.h
Possibility to use loadlibs.C on Solaris x86
[u/mrichter/AliRoot.git] / MUON / AliMUONHit.h
1 #ifndef ALIMUONHIT_H
2 #define ALIMUONHIT_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7 // Revision of includes 07/05/2004
8
9 /// \ingroup base
10 /// \class AliMUONHit
11 /// \brief MonteCarlo hit
12 ///
13 /// MUON class for MonteCarlo Hits, inherited from AliHit for the 
14 /// In addition to the ALiHit data member fX, fY, fZ and fTrack, AliMUONHit contains some info about the particle crossing the chamber:
15 /// Impulsion: fPtot, fPx, fPy and fPz
16 /// Reference position at the center of the chamber (wire plane) fXref, fYref and fZref
17 /// Cumulated path along the active volume fTlength for spliting of hits for very inclined tracks 
18 /// Energy loss of the particle inside the gas active volume.
19 /// Incident fTheta and fPhi angle with respect of the wire plane of the chamber.
20
21
22 #include "AliHit.h"
23
24 class AliMUONHit : public AliHit {
25
26  public:
27     
28     AliMUONHit();
29     AliMUONHit(Int_t fIshunt, Int_t track, Int_t *vol, Float_t *hits); 
30                // TBR
31     AliMUONHit(Int_t fIshunt, Int_t track, Int_t *vol, Float_t *hits,
32                Bool_t isNew);
33
34     AliMUONHit(Int_t fIshunt, Int_t track, Int_t iChamber, Int_t idpart, 
35                Float_t X, Float_t Y, Float_t Z, Float_t tof, Float_t momentum, 
36                Float_t theta, Float_t phi, Float_t length, Float_t destep);
37                // TBR
38     AliMUONHit(Int_t fIshunt, Int_t track, Int_t detElemId, Int_t idpart, 
39                Float_t X, Float_t Y, Float_t Z, Float_t tof, Float_t momentum, 
40                Float_t theta, Float_t phi, Float_t length, Float_t destep, Bool_t isNew);
41
42     AliMUONHit(Int_t fIshunt, Int_t track, Int_t iChamber, Int_t idpart, 
43                Float_t X, Float_t Y, Float_t Z, Float_t tof, Float_t momentum, 
44                Float_t theta, Float_t phi, Float_t length, Float_t destep,
45                Float_t Xref, Float_t Yref, Float_t Zref);
46                // TBR
47     AliMUONHit(Int_t fIshunt, Int_t track, Int_t detElemId, Int_t idpart, 
48                Float_t X, Float_t Y, Float_t Z, Float_t tof, Float_t momentum, 
49                Float_t theta, Float_t phi, Float_t length, Float_t destep,
50                Float_t Xref, Float_t Yref, Float_t Zref, Bool_t isNew);
51     virtual ~AliMUONHit();
52
53     Int_t   DetElemId()const;
54     Int_t   Chamber()  const;
55
56     virtual void Print(Option_t* opt="") const;
57
58     Float_t Particle() const {return fParticle;}  ///< Return particle id   
59     Float_t Theta()    const {return fTheta;}     ///< Return incident theta angle in degrees
60     Float_t Phi()      const {return fPhi;}       ///< Return incident phi angle in degrees
61     Float_t Tlength()  const {return fTlength;}   ///< Return track length inside the chamber
62     Float_t Eloss()    const {return fEloss;}     ///< Return Ionisation energy loss in gas
63     Float_t Age()      const {return fAge;}       ///< Return Particle Age
64     Int_t   PHfirst()  const {return fPHfirst;}   ///< Return First padhit
65     Int_t   PHlast()   const {return fPHlast;}    ///< Return Last padhit
66
67     Float_t Momentum() const {return fPTot;}      ///< Return local momentum P of the entering track
68     Float_t Px()       const {return fPx;}        ///< Return Px
69     Float_t Py()       const {return fPy;}        ///< Return Py
70     Float_t Pz()       const {return fPz;}        ///< Return Pz
71     Float_t Cx()       const {return fPx/fPTot;}  ///< Return Px/PTot 
72     Float_t Cy()       const {return fPy/fPTot;}  ///< Return Py/PTot 
73     Float_t Cz()       const {return fPz/fPTot;}  ///< Return Pz/PTot 
74
75     Float_t Xref()     const {return fXref;}      ///< Return X position of hit in the center of the chamber (without angle effect)
76     Float_t Yref()     const {return fYref;}      ///< Return Y position of hit in the center of the chamber (without angle effect)
77     Float_t Zref()     const {return fZref;}      ///< Return Z position of hit in the center of the chamber (without angle effect)
78
79  private:  
80     Bool_t    fIsDetElemId;   ///< False if fDetElemId contains Chamber Id (old code) 
81     Int_t     fDetElemId;     ///< Detection element ID
82     Float_t   fParticle;      ///< Geant3 particle type
83     Float_t   fTheta ;        ///< Incident theta angle in degrees      
84     Float_t   fPhi   ;        ///< Incident phi angle in degrees
85     Float_t   fTlength;       ///< Track length inside the chamber
86     Float_t   fEloss;         ///< Ionisation energy loss in gas
87     Float_t   fAge;           ///< Particle Age
88     Int_t     fPHfirst;       ///< First padhit
89     Int_t     fPHlast;        ///< Last padhit
90
91     Float_t   fPTot;          ///< Local momentum P of the track when entering in the chamber
92     Float_t   fPx;            ///< Px
93     Float_t   fPy;            ///< Py
94     Float_t   fPz;            ///< Pz
95     
96     Float_t   fXref;          ///< X position of hit in the center of the chamber (without angle effect)
97     Float_t   fYref;          ///< Y position of hit in the center of the chamber (without angle effect)
98     Float_t   fZref;          ///< Z position of hit in the center of the chamber (without angle effect)
99
100     
101     ClassDef(AliMUONHit,1)    //Hit object for MUON
102 };
103 #endif