Update TRD code from C.Blume
[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 #include "AliDigit.h"
10 #include "AliTRDconst.h"
11
12 //_____________________________________________________________________________
13 class AliTRD : public AliDetector {
14  
15 protected:
16   Int_t         fGasMix;            // Gas mixture. 0: Xe/Isobutane 1: Xe/CO2
17
18   Float_t       fClengthI[kNplan];  // Length of the inner chambers
19   Float_t       fClengthM[kNplan];  // Length of the middle chambers
20   Float_t       fClengthO[kNplan];  // Length of the outer chambers
21   Float_t       fCwidth[kNplan];    // Width of the chambers
22
23 public:
24   AliTRD();
25   AliTRD(const char *name, const char *title);
26   virtual      ~AliTRD();
27   virtual void  AddHit(Int_t, Int_t*, Float_t*);
28   virtual void  AddDigit(Int_t*, Int_t*);    
29   virtual void  BuildGeometry();
30   virtual void  CreateGeometry();
31   virtual void  CreateMaterials();
32   virtual void  DrawModule();
33   Int_t         DistancetoPrimitive(Int_t px, Int_t py);
34   virtual void  Init();
35   virtual Int_t IsVersion() const = 0;
36   virtual void  StepManager() = 0; 
37   virtual void  SetGasMix(Int_t imix = 0);
38   virtual void  SetHits(Int_t ) {};
39   virtual void  SetSensPlane(Int_t) {};
40   virtual void  SetSensChamber(Int_t) {};
41   virtual void  SetSensSector(Int_t ) {};
42
43   ClassDef(AliTRD,1)                // Transition Radiation Detector base class
44
45 };
46
47 //_____________________________________________________________________________
48 class AliTRDhit : public AliHit {
49
50 public:
51   Int_t        fSector;     // TRD sector number
52   Int_t        fChamber;    // TRD chamber number
53   Int_t        fPlane;      // TRD plane number 
54   Float_t      fQ;          // Charge created by a hit (geometry 2)
55  
56 public:
57   AliTRDhit() {}
58   AliTRDhit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits);
59   virtual ~AliTRDhit() {};
60  
61   ClassDef(AliTRDhit,1)     // Hits for Transition Radiation Detector
62
63 };
64
65 //_____________________________________________________________________________
66 class AliTRDdigit : public AliDigit {
67
68 public:
69   Int_t        fSector;     // TRD sector number
70   Int_t        fChamber;    // TRD chamber number
71   Int_t        fPlane;      // TRD plane number
72   Int_t        fRow;        // Pad row number
73   Int_t        fCol;        // Pad col number
74   Int_t        fTime;       // Time bucket
75   Int_t        fSignal;     // Signal amplitude
76
77 public:
78   AliTRDdigit() {};
79   AliTRDdigit(Int_t *tracks, Int_t *digits);
80   virtual ~AliTRDdigit() {};
81
82   ClassDef(AliTRDdigit,1)   // Digits for Transition Radiation Detector
83
84 };
85
86
87 #endif