]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONHit.h
Adding classes: AliMpManuIterator, AliMpManuUID, AliMpPadUID, AliMpHVUID, AliMpHVNamer;
[u/mrichter/AliRoot.git] / MUON / AliMUONHit.h
index d761dd37bb7365a1464e6e1675b9ef265043e753..cd3bf2484da7e18b2b9c4d856da96810c4124c2e 100644 (file)
@@ -4,6 +4,20 @@
  * See cxx source for full Copyright notice                               */
 
 /* $Id$ */
+// Revision of includes 07/05/2004
+
+/// \ingroup sim
+/// \class AliMUONHit
+/// \brief MonteCarlo hit
+///
+/// MUON class for MonteCarlo Hits, inherited from AliHit for the 
+/// In addition to the ALiHit data member fX, fY, fZ and fTrack, AliMUONHit contains some info about the particle crossing the chamber:
+/// Impulsion: fPtot, fPx, fPy and fPz
+/// Reference position at the center of the chamber (wire plane) fXref, fYref and fZref
+/// Cumulated path along the active volume fTlength for spliting of hits for very inclined tracks 
+/// Energy loss of the particle inside the gas active volume.
+/// Incident fTheta and fPhi angle with respect of the wire plane of the chamber.
+
 
 #include "AliHit.h"
 
@@ -11,38 +25,68 @@ class AliMUONHit : public AliHit {
 
  public:
     
-    AliMUONHit() {}
+    AliMUONHit();
     AliMUONHit(Int_t fIshunt, Int_t track, Int_t *vol, Float_t *hits);
-    virtual ~AliMUONHit() {}
-    Int_t   Chamber()  {return fChamber;}
-    Float_t Particle() {return fParticle;}    
-    Float_t Theta()    {return fTheta;}
-    Float_t Phi()      {return fPhi;}
-    Float_t Tlength()  {return fTlength;}
-    Float_t Eloss()    {return fEloss;}
-    Float_t Age()      {return fAge;}
-    Int_t   PHfirst()  {return fPHfirst;}
-    Int_t   PHlast()   {return fPHlast;}
-    Float_t Momentum() {return fPTot;}
-    Float_t Px()       {return fPx;}
-    Float_t Py()       {return fPy;}
-    Float_t Pz()       {return fPz;}
- private:
-    Int_t     fChamber;       // Chamber number
-    Float_t   fParticle;      // Geant3 particle type
-    Float_t   fTheta ;        // Incident theta angle in degrees      
-    Float_t   fPhi   ;        // Incident phi angle in degrees
-    Float_t   fTlength;       // Track length inside the chamber
-    Float_t   fEloss;         // ionisation energy loss in gas
-    Float_t   fAge;           // Particle Age
-    Int_t     fPHfirst;       // first padhit
-    Int_t     fPHlast;        // last padhit
-
-    Float_t   fPTot;          // hit local momentum P
-    Float_t   fPx;            // Px
-    Float_t   fPy;            // Py
-    Float_t   fPz;            // Pz
+
+    AliMUONHit(Int_t fIshunt, Int_t track, Int_t detElemId, Int_t idpart, 
+               Float_t X, Float_t Y, Float_t Z, Float_t tof, Float_t momentum, 
+              Float_t theta, Float_t phi, Float_t length, Float_t destep);
+
+    AliMUONHit(Int_t fIshunt, Int_t track, Int_t detElemId, Int_t idpart, 
+               Float_t X, Float_t Y, Float_t Z, Float_t tof, Float_t momentum, 
+               Float_t theta, Float_t phi, Float_t length, Float_t destep,
+               Float_t Xref, Float_t Yref, Float_t Zref);
+    virtual ~AliMUONHit();
+
+    virtual const char* GetName() const;
+    
+    Int_t   DetElemId()const {return fDetElemId;} ///< Return detection element ID
+    Int_t   Chamber()  const;
+
+    virtual void Print(Option_t* opt="") const;
+
+    Float_t Particle() const {return fParticle;}  ///< Return particle id   
+    Float_t Theta()    const {return fTheta;}     ///< Return incident theta angle in degrees
+    Float_t Phi()      const {return fPhi;}       ///< Return incident phi angle in degrees
+    Float_t Tlength()  const {return fTlength;}   ///< Return track length inside the chamber
+    Float_t Eloss()    const {return fEloss;}     ///< Return Ionisation energy loss in gas
+    Float_t Age()      const {return fAge;}       ///< Return Particle Age
+    Int_t   PHfirst()  const {return fPHfirst;}   ///< Return First padhit
+    Int_t   PHlast()   const {return fPHlast;}    ///< Return Last padhit
+
+    Float_t Momentum() const {return fPTot;}      ///< Return local momentum P of the entering track
+    Float_t Px()       const {return fPx;}        ///< Return Px
+    Float_t Py()       const {return fPy;}        ///< Return Py
+    Float_t Pz()       const {return fPz;}        ///< Return Pz
+    Float_t Cx()       const {return fPx/fPTot;}  ///< Return Px/PTot 
+    Float_t Cy()       const {return fPy/fPTot;}  ///< Return Py/PTot 
+    Float_t Cz()       const {return fPz/fPTot;}  ///< Return Pz/PTot 
+
+    Float_t Xref()     const {return fXref;}      ///< Return X position of hit in the center of the chamber (without angle effect)
+    Float_t Yref()     const {return fYref;}      ///< Return Y position of hit in the center of the chamber (without angle effect)
+    Float_t Zref()     const {return fZref;}      ///< Return Z position of hit in the center of the chamber (without angle effect)
+
+ private:  
+    Int_t     fDetElemId;     ///< Detection element ID
+    Float_t   fParticle;      ///< Geant3 particle type
+    Float_t   fTheta ;        ///< Incident theta angle in degrees      
+    Float_t   fPhi   ;        ///< Incident phi angle in degrees
+    Float_t   fTlength;       ///< Track length inside the chamber
+    Float_t   fEloss;         ///< Ionisation energy loss in gas
+    Float_t   fAge;           ///< Particle Age
+    Int_t     fPHfirst;       ///< First padhit
+    Int_t     fPHlast;        ///< Last padhit
+
+    Float_t   fPTot;          ///< Local momentum P of the track when entering in the chamber
+    Float_t   fPx;            ///< Px
+    Float_t   fPy;            ///< Py
+    Float_t   fPz;            ///< Pz
+    
+    Float_t   fXref;          ///< X position of hit in the center of the chamber (without angle effect)
+    Float_t   fYref;          ///< Y position of hit in the center of the chamber (without angle effect)
+    Float_t   fZref;          ///< Z position of hit in the center of the chamber (without angle effect)
+
     
-    ClassDef(AliMUONHit,1)    //Hit object for MUON
+    ClassDef(AliMUONHit,2)    //Hit object for MUON
 };
 #endif