#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;
}
//___________________________________________
AliMUONv3::AliMUONv3(const char *name, const char *title)
- : AliMUON(name,title), fTrackMomentum(), fTrackPosition()
+ : AliMUON(name,title),
+ fTrackMomentum(), fTrackPosition()
{
// Constructor
// By default include all stations
{
// copy constructor (not implemented)
- Fatal("AliMUONv3", "Copy constructor not provided.");
+ AliFatal("Copy constructor not provided.");
}
//_____________________________________________________________________________
// check assignement to self
if (this == &right) return *this;
- Fatal("operator =", "Assignement operator not provided.");
+ AliFatal("Assignement operator not provided.");
return *this;
}
// --- 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);
// 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();
((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
}
//-------------- 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;
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.