]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONHit.h
20-sep-2005 NvE Dummy values 0 set for KAPPA-ADC and KAPPA-TOT for OMs in IceCal2Root
[u/mrichter/AliRoot.git] / MUON / AliMUONHit.h
index edd1e4d70db5fe8d61dd3f6c2325b1e22bd0aa1b..d093fbf1f9f864c2e16d40f2fd46edacdc4fb242 100644 (file)
@@ -4,6 +4,17 @@
  * See cxx source for full Copyright notice                               */
 
 /* $Id$ */
+// Revision of includes 07/05/2004
+
+// MUON classe 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,29 +22,57 @@ class AliMUONHit : public AliHit {
 
  public:
     
-    AliMUONHit() {}
-    AliMUONHit(Int_t fIshunt, Int_t track, Int_t *vol, Float_t *hits);
-    AliMUONHit(Int_t fIshunt, Int_t track, Int_t iChamber, 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();
+    AliMUONHit(Int_t fIshunt, Int_t track, Int_t *vol, Float_t *hits); 
+               // TBR
+    AliMUONHit(Int_t fIshunt, Int_t track, Int_t *vol, Float_t *hits,
+               Bool_t isNew);
+
+    AliMUONHit(Int_t fIshunt, Int_t track, Int_t iChamber, 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);
+              // TBR
+    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, Bool_t isNew);
+
+    AliMUONHit(Int_t fIshunt, Int_t track, Int_t iChamber, 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);
+              // TBR
+    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, Bool_t isNew);
     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;}
-    Float_t Cx()       {return fPx/fPTot;} 
-    Float_t Cy()       {return fPy/fPTot;}
-    Float_t Cz()       {return fPz/fPTot;}
-
- private:
-    Int_t     fChamber;       // Chamber number
+
+    Int_t   DetElemId()const;
+    Int_t   Chamber()  const;
+    Float_t Particle() const {return fParticle;}    
+    Float_t Theta()    const {return fTheta;}
+    Float_t Phi()      const {return fPhi;}
+    Float_t Tlength()  const {return fTlength;}
+    Float_t Eloss()    const {return fEloss;}
+    Float_t Age()      const {return fAge;}
+    Int_t   PHfirst()  const {return fPHfirst;}
+    Int_t   PHlast()   const {return fPHlast;}
+
+    Float_t Momentum() const {return fPTot;}
+    Float_t Px()       const {return fPx;}
+    Float_t Py()       const {return fPy;}
+    Float_t Pz()       const {return fPz;}
+    Float_t Cx()       const {return fPx/fPTot;} 
+    Float_t Cy()       const {return fPy/fPTot;}
+    Float_t Cz()       const {return fPz/fPTot;}
+
+    Float_t Xref()     const {return fXref;}
+    Float_t Yref()     const {return fYref;}
+    Float_t Zref()     const {return fZref;}
+
+ private:  
+    Bool_t    fIsDetElemId;   // False if fDetElemId contains Chamber Id (old code) 
+    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
@@ -43,11 +82,16 @@ class AliMUONHit : public AliHit {
     Int_t     fPHfirst;       // first padhit
     Int_t     fPHlast;        // last padhit
 
-    Float_t   fPTot;          // hit local momentum P
+    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
 };
 #endif