3 ////////////////////////////////////////////////////////
4 // Manager and hits classes for set:TRD version 2 //
5 ////////////////////////////////////////////////////////
9 class AliTRDv2 : public AliTRD {
13 AliTRDv2(const char *name, const char *title);
14 virtual ~AliTRDv2() {}
15 virtual void CreateGeometry();
16 virtual void CreateMaterials();
17 virtual Int_t IsVersion() const {return 2;}
18 virtual void StepManager();
20 virtual void DrawDetector();
23 Int_t fIdSenO1; // Sensitive volume identifier for outer chambers
24 Int_t fIdSenO2; // Sensitive volume identifier for outer chambers
25 Int_t fIdSenO3; // Sensitive volume identifier for outer chambers
26 Int_t fIdSenO4; // Sensitive volume identifier for outer chambers
27 Int_t fIdSenO5; // Sensitive volume identifier for outer chambers
28 Int_t fIdSenO6; // Sensitive volume identifier for outer chambers
29 Int_t fIdSenI1; // Sensitive volume identifier for inner chambers
30 Int_t fIdSenI2; // Sensitive volume identifier for inner chambers
31 Int_t fIdSenI3; // Sensitive volume identifier for inner chambers
32 Int_t fIdSenI4; // Sensitive volume identifier for inner chambers
33 Int_t fIdSenI5; // Sensitive volume identifier for inner chambers
34 Int_t fIdSenI6; // Sensitive volume identifier for inner chambers
37 // Inline functions for AliTRDv2
39 inline Float_t Eloss(Float_t rndm)
42 // Calculates the energy loss
43 // 1/E^2. distribution for the fluctuations
45 // Exponent of the distribution for the energy loss
46 // 2.0 is the apropriate value for Argon, 2.2 would be for Neon,
47 // and how about Xenon? We take the Argon value for the time being.
48 const Float_t kEexp = 2.0;
49 // First ionization potential for the gas mixture (90% Xe + 10% CO2)
50 // taken from: Ionization Measurements in High Energy Physics, Springer
51 const Float_t kPoti = 12.3E-9;
52 // Maximum energy (10 keV);
53 const Float_t kEend = 10.0E-6;
55 Float_t ex = 1. - kEexp;
56 Float_t xpot = TMath::Power(kPoti,ex);
57 Float_t xend = TMath::Power(kEend,ex);
58 Float_t elos = (1. - rndm)*xpot + rndm*xend;
60 return(TMath::Power(elos,(1./ex)) - kPoti);
64 inline Float_t BetheBloch(Float_t xx)
67 // Parametrization of the Bethe-Bloch-curve
68 // The parametrization is the same as for the TPC and is taken from
70 // The parameters have been adjusted to Xe-data found in:
71 // Allison & Cobb, Ann. Rev. Nucl. Sci. (1980), 30, 253
73 const Float_t kP1 = 0.76176E-1;
74 const Float_t kP2 = 10.632;
75 const Float_t kP3 = 3.17983E-6;
76 const Float_t kP4 = 1.8631;
77 const Float_t kP5 = 1.9479;
79 Float_t yy = xx / TMath::Sqrt(1. + xx*xx);
80 Float_t aa = TMath::Power(yy,kP4);
81 Float_t bb = TMath::Power((1./xx),kP5);
82 bb = TMath::Log(kP3 + bb);
84 return((kP2 - aa - bb)*kP1 / aa);
88 ClassDef(AliTRDv2,1) // Transition Radiation Detector version 2