]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONv1.h
Update from Alberica. Addition of VZERO equalized signals and ZNC.
[u/mrichter/AliRoot.git] / MUON / AliMUONv1.h
index f0119ea12580a1a5398e3b92478dc96f62b3b46b..94ac7f7489ed47d6ec3edfe39937bfc783214a9b 100644 (file)
@@ -4,28 +4,77 @@
  * See cxx source for full Copyright notice                               */
 
 /* $Id$ */
+// Revision of includes 07/05/2004
 
-/////////////////////////////////////////////////////////
-//  Manager and hits classes for set:MUON version 0    //
-/////////////////////////////////////////////////////////
+/// \ingroup sim
+/// \class AliMUONv1
+/// \brief AliDetector class for MUON subsystem which implements
+/// functions for simulation 
  
 #include "AliMUON.h"
 
-class AliMUONv1 : public AliMUON {
-public:
+#include <TLorentzVector.h>
+
+class TF1;
+class TF2;
+class TGeoCombiTrans;
+class TString;
+class TGeoHMatrix;
+
+class AliMUONv1 : public AliMUON 
+{
+ public:
    AliMUONv1();
-   AliMUONv1(const char *name, const char *title);
-   virtual  ~AliMUONv1() {}
+   AliMUONv1(const char *name, const char* title = "default");
+   virtual  ~AliMUONv1();
    virtual void   CreateGeometry();
    virtual void   CreateMaterials();
+   virtual void   UpdateInternalGeometry();
+   virtual void   AddAlignableVolumes() const;
    virtual void   Init();
+   
+                  /// Return the version number of this detector
    virtual Int_t  IsVersion() const {return 1;}
+   
    virtual void   StepManager();
-protected:
-   virtual Int_t  GetChamberId(Int_t volId) const;
-   Int_t* fStations; //! allow to externally set which station to create
-private:
-   ClassDef(AliMUONv1,1)  // MUON Detector class Version 1
+
+        /// Set option to take into account angle effect
+   void SetAngleEffect(Bool_t Opt) 
+     { fAngleEffect = Opt; }
+
+        /// Set option to take into account magnetic field effect
+   void SetMagEffect(Bool_t Opt) 
+     { fMagEffect = Opt; }
+        
+        /// Set max step max in active gas 
+   void SetStepMaxInActiveGas(Float_t StepMax)
+     {fStepMaxInActiveGas = StepMax; }
+
+ protected:
+   /// Not implemented
+   AliMUONv1(const AliMUONv1& right);
+   /// Not implemented
+   AliMUONv1&  operator = (const AliMUONv1& right);
+
+   virtual Int_t  GetGeomModuleId(Int_t volId) const;
+   TString CurrentVolumePath() const;       
+
+   Bool_t  fAngleEffect;           ///< Angle Effect along wires, Default is true
+   Bool_t  fMagEffect;             ///< Magnetic Field Effect along wires, Default is true
+   Float_t fStepMaxInActiveGas;    ///< Step max in active gas default 0.6cm
+
+   // StepManager 
+   Float_t *  fStepSum;   //!< Sum of track steps per chamber
+   Float_t *  fDestepSum; //!< Sum of energy deposits per chamber
+  
+   TLorentzVector fTrackMomentum; ///< Momentum of the particle entering in the active gas of chamber
+   TLorentzVector fTrackPosition; ///< Position of the particle exiting the active gas of chamber
+   TF1 *          fElossRatio;    ///< Ratio of particle mean eloss with respect MIP's 
+   TF1 *          fAngleEffect10; ///< Angle effect in tracking chambers at theta =10 degres as a function of ElossRatio (Khalil BOUDJEMLINE sep 2003 Ph.D Thesis) (in micrometers)  
+   TF1 *          fAngleEffectNorma;///< Angle effect: Normalisation form theta=10 degres to theta between 0 and 10 (Khalil BOUDJEMLINE sep 2003 Ph.D Thesis)
+   TF2 *          fMagAngleEffectNorma;///< Magnetic field effect: Normalisation from theta=16 degres to theta between -20 and 20 (Lamia Benhabib jun 2006 Master Thesis)
+    
+   ClassDef(AliMUONv1,6)  // MUON Detector class Version 1
 };
 #endif