]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONv1.h
Geometry construction functions separated from AliMUON, AliMUONv1into a new AliMUONGe...
[u/mrichter/AliRoot.git] / MUON / AliMUONv1.h
index 70c5ffe43c241115c1b7e22cd68c07c495a9847d..921069126b81b125d05f7ba441ec07ef9427f8d8 100644 (file)
@@ -4,25 +4,69 @@
  * See cxx source for full Copyright notice                               */
 
 /* $Id$ */
+// Revision of includes 07/05/2004
 
 /////////////////////////////////////////////////////////
-//  Manager and hits classes for set:MUON version 0    //
+//  Manager and hits classes for set:MUON version 1    //
 /////////////////////////////////////////////////////////
  
+#include <TLorentzVector.h>
+
 #include "AliMUON.h"
 
-class AliMUONv1 : public AliMUON {
-public:
+class TF1;
+class TGeoCombiTrans;
+class TString;
+class TGeoHMatrix;
+
+class AliMUONv1 : public AliMUON 
+{
+ public:
    AliMUONv1();
    AliMUONv1(const char *name, const char *title);
-   virtual  ~AliMUONv1() {}
+   virtual  ~AliMUONv1();
    virtual void   CreateGeometry();
    virtual void   CreateMaterials();
    virtual void   Init();
    virtual Int_t  IsVersion() const {return 1;}
    virtual void   StepManager();
-private:
-   ClassDef(AliMUONv1,1)  //Hits manager for set:MUON version 0
+   void StepManagerOld();
+   void SetStepManagerVersionOld(Bool_t Opt) 
+     { fStepManagerVersionOld = Opt; }
+   void SetAngleEffect(Bool_t Opt) 
+     { fAngleEffect = Opt; }
+   void SetStepMaxInActiveGas(Float_t StepMax)
+     {fStepMaxInActiveGas = StepMax; }
+
+ protected:
+   AliMUONv1(const AliMUONv1& right);
+   AliMUONv1&  operator = (const AliMUONv1& right);
+
+   virtual Int_t  GetChamberId(Int_t volId) const;
+
+   Bool_t  fStepManagerVersionOld; // Version of StepManager, Default is false
+   Bool_t  fAngleEffect; // Angle Effect along wires, Default is true
+   Float_t fStepMaxInActiveGas;    // Step max in active gas default 0.6cm
+
+   // StepManager 
+   Float_t *  fStepSum; //!
+   Float_t *  fDestepSum; //!
+  
+   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)
+
+ private:
+   // method
+   void PlaceVolume(const TString& name, const TString& mName, Int_t copyNo, 
+             const TGeoHMatrix& matrix, Int_t npar, Double_t* param,
+            const char* only) const;
+
+   ClassDef(AliMUONv1,2)  // MUON Detector class Version 1
+
+
 };
 #endif