0acc7778c000c563d95babd08542a003a2b0a4d6
[u/mrichter/AliRoot.git] / FMD / AliFMDHit.h
1 #ifndef AliFMDhit_H
2 #define AliFMDhit_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
4  * reserved. 
5  *
6  * See cxx source for full Copyright notice                               
7  */
8 /** @file    AliFMDHit.h
9     @author  Christian Holm Christensen <cholm@nbi.dk>
10     @date    Mon Mar 27 12:41:58 2006
11     @brief   Hit in the FMD
12 */
13 //___________________________________________________________________
14 //
15 #ifndef ALIHIT_H
16 # include <AliHit.h>
17 #endif
18
19 //___________________________________________________________________
20 /** @brief AliFMDhit is the hit class for the FMD. 
21     Hits are the information that comes from a Monte Carlo at each
22     step as a particle mass through sensitive detector elements as
23     particles are transported through a detector. 
24     @ingroup FMD_sim
25 */
26 class AliFMDHit : public AliHit 
27 {
28 public:
29   /** Default CTOR */
30   AliFMDHit();
31   /** Normal FMD hit ctor
32       @param shunt     ???
33       @param track     Track #
34       @param detector  Detector # (1, 2, or 3)                      
35       @param ring      Ring ID ('I' or 'O')
36       @param sector    Sector # (For inner/outer rings: 0-19/0-39)
37       @param strip     Strip # (For inner/outer rings: 0-511/0-255)
38       @param x         Track's X-coordinate at hit
39       @param y         Track's Y-coordinate at hit
40       @param z         Track's Z-coordinate at hit
41       @param px        X-component of track's momentum 
42       @param py        Y-component of track's momentum
43       @param pz        Z-component of track's momentum
44       @param edep      Energy deposited by track
45       @param pdg       Track's particle Id #
46       @param t         Time when the track hit 
47       @param l         Track lenght through medium 
48       @param stop      Whether track is stopped in medium */
49   AliFMDHit(Int_t    shunt, 
50             Int_t    track, 
51             UShort_t detector, 
52             Char_t   ring, 
53             UShort_t sector, 
54             UShort_t strip, 
55             Float_t  x=0, 
56             Float_t  y=0, 
57             Float_t  z=0,
58             Float_t  px=0, 
59             Float_t  py=0, 
60             Float_t  pz=0,
61             Float_t  edep=0,
62             Int_t    pdg=0,
63             Float_t  t=0, 
64             Float_t  l=0, 
65             Bool_t   stop=kFALSE);
66   /** DTOR  */
67   virtual ~AliFMDHit() {}
68   
69   /** @return Detector # */
70   UShort_t Detector()   const { return fDetector; }
71   /** @return Ring ID */
72   Char_t   Ring()       const { return fRing;     }
73   /** @return Sector # */
74   UShort_t Sector()     const { return fSector;   }
75   /** @return Strip # */
76   UShort_t Strip()      const { return fStrip;    }
77   /** @return Energy deposited (MeV) */
78   Float_t  Edep()       const { return fEdep;     }
79   /** @return Track @f$ p_x@f$ - momentum in @f$ x@f$ (GeV) */
80   Float_t  Px()         const { return fPx;       }
81   /** @return Track @f$ p_y@f$ - momentum in @f$ y@f$ (GeV) */
82   Float_t  Py()         const { return fPy;       }
83   /** @return Track @f$ p_z@f$ - momentum in @f$ z@f$ (GeV) */
84   Float_t  Pz()         const { return fPz;       } 
85   /** @return Track @f$ |p|@f$ - momentum (GeV) */
86   Float_t  P()          const;
87   /** @return Track @f$ m@f$ - mass (GeV) */
88   Float_t  M()          const;
89   /** @return Track @f$ q@f$ - charge (1/3) */
90   Float_t  Q()          const;
91   /** @return Track PDG id number */
92   Int_t    Pdg()        const { return fPdg;      }
93   /** @return Time of hit in seconds */
94   Float_t  Time()       const { return fTime;     }
95   /** @return Path length through silicon */
96   Float_t  Length()     const { return fLength;   }
97   /** @return Whether track was stopped in silicon */
98   Bool_t   IsStop()     const { return fStop;     }
99
100   /** Print info 
101       @param opt Not used */
102   void        Print(Option_t* opt="") const;
103   /** @return Get Name */
104   const char* GetName()               const;
105   /** @return Get title */
106   const char* GetTitle()              const;
107
108   /** Set enenrgy deposited
109       @param edep Energy deposited */
110   void     SetEdep(Float_t edep) { fEdep = edep; }
111 protected:
112   UShort_t fDetector;  // (Sub) Detector # (1,2, or 3)
113   Char_t   fRing;      // Ring ID ('I' or 'O')
114   UShort_t fSector;    // Sector # (phi division)
115   UShort_t fStrip;     // Strip # (radial division)
116   Float_t  fPx;        // Particle's X momentum X
117   Float_t  fPy;        // Particle's Y momentum Y
118   Float_t  fPz;        // Particle's Z momentum Z
119   Int_t    fPdg;       // Particles PDG code 
120   Float_t  fEdep;      // Energy deposition
121   Float_t  fTime;      // Particle's time of flight
122   Float_t  fLength;    // Track length through material. 
123   Bool_t   fStop;      // Whether track was stopped. 
124   
125   ClassDef(AliFMDHit,2)  //Hits for detector FMD
126 };
127 #endif
128 //____________________________________________________________________
129 //
130 // Local Variables:
131 //   mode: C++
132 // End:
133 //
134 // EOF
135 //