Separating run-dependent mapping data from data, which are not
[u/mrichter/AliRoot.git] / MUON / AliMUONv1.h
1 #ifndef ALIMUONV1_H
2 #define ALIMUONV1_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 sim
10 /// \class AliMUONv1
11 /// \brief AliDetector class for MUON subsystem which implements
12 /// functions for simulation 
13  
14 #include "AliMUON.h"
15
16 #include <TLorentzVector.h>
17
18 class TF1;
19 class TF2;
20 class TGeoCombiTrans;
21 class TString;
22 class TGeoHMatrix;
23
24 class AliMUONv1 : public AliMUON 
25 {
26  public:
27    AliMUONv1();
28    AliMUONv1(const char *name, const char* title = "default");
29    virtual  ~AliMUONv1();
30    virtual void   CreateGeometry();
31    virtual void   CreateMaterials();
32    virtual void   AddAlignableVolumes() const;
33    virtual void   Init();
34    
35                   /// Return the version number of this detector
36    virtual Int_t  IsVersion() const {return 1;}
37    
38    virtual void   StepManager();
39
40         /// Set option to take into account angle effect
41    void SetAngleEffect(Bool_t Opt) 
42      { fAngleEffect = Opt; }
43
44         /// Set option to take into account magnetic field effect
45    void SetMagEffect(Bool_t Opt) 
46      { fMagEffect = Opt; }
47         
48         /// Set max step max in active gas 
49    void SetStepMaxInActiveGas(Float_t StepMax)
50      {fStepMaxInActiveGas = StepMax; }
51
52  protected:
53    /// Not implemented
54    AliMUONv1(const AliMUONv1& right);
55    /// Not implemented
56    AliMUONv1&  operator = (const AliMUONv1& right);
57
58    virtual Int_t  GetGeomModuleId(Int_t volId) const;
59    TString CurrentVolumePath() const;        
60
61    Bool_t  fAngleEffect;           ///< Angle Effect along wires, Default is true
62    Bool_t  fMagEffect;             ///< Magnetic Field Effect along wires, Default is true
63    Float_t fStepMaxInActiveGas;    ///< Step max in active gas default 0.6cm
64
65    // StepManager 
66    Float_t *  fStepSum;   //!< Sum of track steps per chamber
67    Float_t *  fDestepSum; //!< Sum of energy deposits per chamber
68   
69    TLorentzVector fTrackMomentum; ///< Momentum of the particle entering in the active gas of chamber
70    TLorentzVector fTrackPosition; ///< Position of the particle exiting the active gas of chamber
71    TF1 *          fElossRatio;    ///< Ratio of particle mean eloss with respect MIP's 
72    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)  
73    TF1 *          fAngleEffectNorma;///< Angle effect: Normalisation form theta=10 degres to theta between 0 and 10 (Khalil BOUDJEMLINE sep 2003 Ph.D Thesis)
74    TF2 *          fMagAngleEffectNorma;///< Magnetic field effect: Normalisation from theta=16 degres to theta between -20 and 20 (Lamia Benhabib jun 2006 Master Thesis)
75     
76    ClassDef(AliMUONv1,6)  // MUON Detector class Version 1
77 };
78 #endif
79
80
81
82
83
84
85