]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONv3.cxx
Implementation of ITS tracking for HLT. The tracking is based on the off-line AliITSt...
[u/mrichter/AliRoot.git] / MUON / AliMUONv3.cxx
index 9cea1dfd776f4a21c60dbb0808d9598b9a9900ec..032d81552d00a4f44ccecdaf6d4aaf5302cc8ded 100644 (file)
 #include <TRandom.h>
 #include <TF1.h>
 #include <TClonesArray.h>
-#include <TLorentzVector.h>   
+#include <TRandom.h> 
 #include <TVirtualMC.h>
-#include <TParticle.h>
 
+#include "AliMUONv3.h"
 #include "AliConst.h" 
 #include "AliMUONChamber.h"
 #include "AliMUONConstants.h"
 #include "AliMUONHit.h"
 #include "AliMUONTriggerCircuit.h"
 #include "AliMUONChamberGeometry.h"
-#include "AliMUONv3.h"
 #include "AliMagF.h"
 #include "AliRun.h"
 #include "AliMC.h"
+#include "AliLog.h"
 
 ClassImp(AliMUONv3)
  
 //___________________________________________
-AliMUONv3::AliMUONv3() : AliMUON()
-  ,fTrackMomentum(), fTrackPosition()
+AliMUONv3::AliMUONv3()
+ : AliMUON(),
+   fTrackMomentum(), fTrackPosition()
 {
 // Constructor
     fChambers   = 0;
@@ -65,7 +66,8 @@ AliMUONv3::AliMUONv3() : AliMUON()
 } 
 //___________________________________________
 AliMUONv3::AliMUONv3(const char *name, const char *title)
-  : AliMUON(name,title), fTrackMomentum(), fTrackPosition()
+  : AliMUON(name,title), 
+    fTrackMomentum(), fTrackPosition()
 {
 // Constructor
     // By default include all stations
@@ -113,7 +115,7 @@ AliMUONv3::AliMUONv3(const AliMUONv3& right)
 {  
   // copy constructor (not implemented)
 
-  Fatal("AliMUONv3", "Copy constructor not provided.");
+  AliFatal("Copy constructor not provided.");
 }
 
 //_____________________________________________________________________________
@@ -124,7 +126,7 @@ AliMUONv3& AliMUONv3::operator=(const AliMUONv3& right)
   // check assignement to self
   if (this == &right) return *this;
 
-  Fatal("operator =", "Assignement operator not provided.");
+  AliFatal("Assignement operator not provided.");
     
   return *this;  
 }    
@@ -1538,7 +1540,13 @@ void AliMUONv3::CreateMaterials()
     // --- Define the various materials for GEANT --- 
     AliMaterial(9, "ALUMINIUM$", 26.98, 13., 2.7, 8.9, 37.2);
     AliMaterial(10, "ALUMINIUM$", 26.98, 13., 2.7, 8.9, 37.2);
-    AliMaterial(15, "AIR$      ", 14.61, 7.3, .001205, 30423.24, 67500);
+    // Air
+    Float_t aAir[4]={12.0107,14.0067,15.9994,39.948};
+    Float_t zAir[4]={6.,7.,8.,18.};
+    Float_t wAir[4]={0.000124,0.755267,0.231781,0.012827};
+    Float_t dAir = 1.20479E-3;
+    AliMixture(15, "AIR$      ", aAir,  zAir, dAir,4, wAir);
+    //    AliMaterial(15, "AIR$      ", 14.61, 7.3, .001205, 30423.24, 67500);
     AliMixture(19, "Bakelite$", abak, zbak, dbak, -3, wbak);
     AliMixture(20, "ArC4H10 GAS$", ag, zg, dg, 3, wg);
     AliMixture(21, "TRIG GAS$", atrig, ztrig, dtrig, -5, wtrig);
@@ -1616,7 +1624,7 @@ void AliMUONv3::Init()
    // Initialize Tracking Chambers
    //
 
-   if(fDebug) printf("\n%s: Start Init for version 1 - CPC chamber type\n\n",ClassName());
+   AliDebug(0,"Start Init for version 1 - CPC chamber type");
    Int_t i;
    for (i=0; i<AliMUONConstants::NCh(); i++) {
        ( (AliMUONChamber*) (*fChambers)[i])->Init();
@@ -1644,14 +1652,13 @@ void AliMUONv3::Init()
    ((AliMUONChamber*)(*fChambers)[12])->GetGeometry()->SetSensitiveVolume("SG3A");
    ((AliMUONChamber*)(*fChambers)[13])->GetGeometry()->SetSensitiveVolume("SG4A");
 
-   if(fDebug) printf("\n%s: Finished Init for version 1 - CPC chamber type\n",ClassName());
-
+   AliDebug(0,"Finished Init for version 1 - CPC chamber type");
    //cp 
-   if(fDebug) printf("\n%s: Start Init for Trigger Circuits\n",ClassName());
+   AliDebug(0,"Start Init for Trigger Circuits");
    for (i=0; i<AliMUONConstants::NTriggerCircuit(); i++) {
      ( (AliMUONTriggerCircuit*) (*fTriggerCircuits)[i])->Init(i);
    }
-   if(fDebug) printf("%s: Finished Init for Trigger Circuits\n",ClassName());
+   AliDebug(0,"Finished Init for Trigger Circuits");
    //cp
 
 }
@@ -1749,7 +1756,7 @@ void AliMUONv3::StepManager()
     //-------------- Angle effect 
     // Ratio between energy loss of particle and Mip as a function of BetaGamma of particle (Energy/Mass)
     
-    Float_t BetaxGamma    = fTrackMomentum.P()/mass;//  pc/mc2
+    Float_t betaxGamma    = fTrackMomentum.P()/mass;//  pc/mc2
     Float_t sigmaEffect10degrees;
     Float_t sigmaEffectThetadegrees;
     Float_t eLossParticleELossMip;
@@ -1758,9 +1765,9 @@ void AliMUONv3::StepManager()
 
 
     if (fAngleEffect){
-    if ( (BetaxGamma >3.2)   &&  (thetawires*kRaddeg<=15.) ) {
-      BetaxGamma=TMath::Log(BetaxGamma);
-      eLossParticleELossMip = fElossRatio->Eval(BetaxGamma);
+    if ( (betaxGamma >3.2)   &&  (thetawires*kRaddeg<=15.) ) {
+      betaxGamma=TMath::Log(betaxGamma);
+      eLossParticleELossMip = fElossRatio->Eval(betaxGamma);
       // 10 degrees is a reference for a model (arbitrary)
       sigmaEffect10degrees=fAngleEffect10->Eval(eLossParticleELossMip);// in micrometers
       // Angle with respect to the wires assuming that chambers are perpendicular to the z axis.