6245efa93a6291442ab604b1696e2fc7631bd2d0
[u/mrichter/AliRoot.git] / TRD / AliTRD.h
1 #ifndef TRD_H
2 #define TRD_H
3 ////////////////////////////////////////////////
4 //  Manager and hits classes for set: TRD     //
5 ////////////////////////////////////////////////
6  
7 #include "AliDetector.h"
8 #include "AliHit.h" 
9  
10 class AliTRD : public AliDetector {
11  
12 protected:
13
14   Int_t         fGasMix;         // Gas mixture. 0: Xe/Isobutane 1: Xe/CO2
15   Int_t         fSensSelect;     // Switch to select only parts of the detector
16   Int_t         fSensPlane;      // Sensitive detector plane
17   Int_t         fSensChamber;    // Sensitive detector chamber
18   Int_t         fSensSector;     // Sensitive detector sector
19
20 public:
21   AliTRD();
22   AliTRD(const char *name, const char *title);
23   virtual      ~AliTRD() {}
24   virtual void  AddHit(Int_t, Int_t*, Float_t*);
25   virtual void  BuildGeometry();
26   virtual void  CreateMaterials();
27   Int_t         DistancetoPrimitive(Int_t px, Int_t py);
28   virtual void  Init();
29   virtual Int_t IsVersion() const =0;
30   virtual void  StepManager()=0; 
31   virtual void  SetGasMix(Int_t imix = 0);
32   virtual void  SetSensPlane(Int_t iplane = 0);
33   virtual void  SetSensChamber(Int_t ichamber = 0);
34   virtual void  SetSensSector(Int_t isector = 0);
35
36   ClassDef(AliTRD,1)             // Transition Radiation Detector base class
37 };
38
39 ////////////////////////////////////////////////
40 //  Geometry parameter
41 ////////////////////////////////////////////////
42
43 const Int_t   nsect   = 18;      // Number of sectors in the full detector
44 const Int_t   nmodul  = 6;       // Number of modules in each sector
45 const Int_t   ncham   = 6;       // Number of different chambers
46 const Int_t   narmsec = 5;       // Number of sectors in one arm (geometry 1)
47
48 const Float_t rmin    = 294.0;   // r-dimensions of the TRD-frame
49 const Float_t rmax    = 368.0;
50
51 const Float_t zmax1   = 378.35;  // z-dimensions of the TRD-frame
52 const Float_t zmax2   = 302.0;
53
54 const Float_t zleni   = 110.0;   // z-dimension of the inner chamber
55 const Float_t zlenn   = 156.0;   // z-dimension of the neighbouring chambers
56 const Float_t zleno   = 156.0;   // z-dimension of the outer chambers
57
58 const Float_t widpl1  = 99.6;    // rphi-dimension of the innermost plane
59
60 const Float_t alframe = 1.0;     // Thickness of the aluminium of the support frame
61  
62 const Float_t ccframe = 1.0;     // Thickness of the carbon chamber frame
63
64 // Thicknesses of the the material layers
65 const Float_t sethick = 0.02;    // Radiator seal
66 const Float_t rathick = 4.2;     // Radiator
67 const Float_t pethick = 0.20;    // PE-layer in the radiator
68 const Float_t mythick = 0.005;   // Mylar-layer
69 const Float_t xethick = 3.5;     // Gas mixture
70 const Float_t cuthick = 0.001;   // Pad plane
71 const Float_t suthick = 0.06;    // HEXCEL+G10 support structure (= 0.31% X0)
72 const Float_t fethick = 0.0044;  // FEE + signal lines (= 0.31% X0)
73 const Float_t cothick = 0.02;    // PE of the cooling device
74 const Float_t wathick = 0.01;    // Cooling water
75
76 // Position of the material layers
77 const Float_t sezpos  = -5.657;  // Radiator seal
78 const Float_t razpos  = -3.557;  // Radiator
79 const Float_t pezpos  =  0.0;    // PE-layer in the radiator
80 const Float_t myzpos  = -1.4545; // Mylar-layer
81 const Float_t xezpos  =  0.298;  // Gas mixture
82 const Float_t cuzpos  =  2.047;  // Pad plane
83 const Float_t suzpos  =  3.046;  // HEXCEL+G10 support structure
84 const Float_t fezpos  =  4.0482; // FEE + signal lines
85 const Float_t cozpos  =  4.1504; // PE of the cooling devices
86 const Float_t wazpos  =  4.3004; // Cooling water
87
88 ////////////////////////////////////////////////
89 // Parameter for the energy loss calculation
90 ////////////////////////////////////////////////
91
92 const Float_t kPoti = 12.1;      // First ionization potential (eV)
93 const Float_t kEend = 50000.0;   // Maximum energy (50 keV);
94
95 //_____________________________________________________________________________
96 class AliTRDhit : public AliHit {
97
98 public:
99   Int_t        fSector;     // TRD sector number
100   Int_t        fChamber;    // TRD chamber number
101   Int_t        fPlane;      // TRD plane number 
102   Float_t      fQ;          // Charge created by a hit (geometry 2)
103  
104 public:
105   AliTRDhit() {}
106   AliTRDhit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits);
107   virtual ~AliTRDhit() {}
108  
109   ClassDef(AliTRDhit,1)     // Hits for Transition Radiation Detector
110 };
111
112 #endif