]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | #ifndef TOF_H |
2 | #define TOF_H | |
3da30618 | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | ||
fe4da5cc | 8 | //////////////////////////////////////////////// |
2cef3cb2 | 9 | // Manager and hits classes for set: TOF // |
fe4da5cc | 10 | //////////////////////////////////////////////// |
11 | ||
12 | #include "AliDetector.h" | |
13 | #include "AliHit.h" | |
2cef3cb2 | 14 | #include "AliDigit.h" |
15 | #include "TObject.h" | |
16 | #include "AliTOFD.h" | |
17 | ||
fe4da5cc | 18 | class AliTOF : public AliDetector { |
19 | ||
20 | protected: | |
2cef3cb2 | 21 | Int_t fIdSens; |
22 | ||
23 | public: | |
24 | Int_t fNTof; | |
25 | Float_t fRmax; | |
26 | Float_t fRmin; | |
27 | Float_t fZlenA; | |
28 | Float_t fZlenB; | |
29 | Float_t fZlenC; | |
30 | Float_t fZtof; | |
31 | ||
32 | Float_t fStripLn; | |
33 | Float_t fSpace; | |
34 | Float_t fDeadBndZ; | |
35 | Float_t fDeadBndX; | |
36 | Float_t fXpad; | |
37 | Float_t fZpad; | |
38 | Float_t fGapA; | |
39 | Float_t fGapB; | |
40 | Float_t fOverSpc; | |
41 | Int_t fNpadX; | |
42 | Int_t fNpadZ; | |
43 | Int_t fPadXStr; | |
44 | ||
45 | Int_t fNStripA; | |
46 | Int_t fNStripB; | |
47 | Int_t fNStripC; | |
48 | ||
49 | Float_t fTimeRes; | |
50 | Float_t fChrgRes; | |
51 | ||
52 | Int_t fPadXSector; | |
53 | Int_t fNRoc; | |
54 | Int_t fNFec; | |
55 | Int_t fNTdc; | |
56 | Int_t fNPadXRoc; | |
57 | ||
58 | ||
fe4da5cc | 59 | public: |
60 | AliTOF(); | |
61 | AliTOF(const char *name, const char *title); | |
62 | virtual ~AliTOF() {} | |
2cef3cb2 | 63 | virtual void AddHit(Int_t track, Int_t* vol, Float_t* hits); |
64 | virtual void AddDigit(Int_t*, Int_t*, Float_t*); | |
fe4da5cc | 65 | virtual void CreateGeometry(); |
66 | virtual void CreateMaterials(); | |
67 | virtual void Init(); | |
2cef3cb2 | 68 | virtual void MakeBranch(Option_t*); |
69 | virtual void FinishEvent(); | |
fe4da5cc | 70 | virtual Int_t IsVersion() const =0; |
71 | Int_t DistancetoPrimitive(Int_t px, Int_t py); | |
72 | virtual void StepManager()=0; | |
2cef3cb2 | 73 | virtual void TOFpc(Float_t, Float_t, Float_t, |
74 | Float_t, Float_t,Float_t) {} | |
8f72dc0c | 75 | virtual void DrawModule(); |
2cef3cb2 | 76 | void Hits2Digits(Int_t evNumber=0); |
77 | void Digits2Raw (Int_t evNumber=0); | |
78 | void Raw2Digits (Int_t evNumber=0); | |
fe4da5cc | 79 | |
2cef3cb2 | 80 | private: |
81 | Bool_t CheckOverlap(Int_t*, Float_t*, Int_t); | |
82 | ||
fe4da5cc | 83 | ClassDef(AliTOF,1) // Time Of Flight base class |
84 | }; | |
85 | ||
86 | //___________________________________________ | |
87 | ||
88 | class AliTOFhit : public AliHit { | |
89 | public: | |
826b71ec | 90 | Int_t fSector; // number of sector |
91 | Int_t fPlate; // number of plate | |
2cef3cb2 | 92 | Int_t fStrip; // number of strip |
826b71ec | 93 | Int_t fPad_x; // number of pad along x |
94 | Int_t fPad_z; // number of pad along z | |
2cef3cb2 | 95 | Float_t fPx; // px in TOF |
96 | Float_t fPy; // py in TOF | |
97 | Float_t fPz; // pz in TOF | |
98 | Float_t fPmom; // P in TOF | |
99 | Float_t fTof; // Time of Flight | |
100 | Float_t fDx; // x of impact point in pad r.s. | |
101 | Float_t fDy; // y of impact point in pad r.s. | |
102 | Float_t fDz; // z of impact point in pad r.s. | |
103 | Float_t fIncA; // Incidence angle | |
104 | Float_t fEdep; // Energy lost in tof layer | |
fe4da5cc | 105 | |
106 | public: | |
107 | AliTOFhit() {} | |
2cef3cb2 | 108 | AliTOFhit(Int_t shunt, Int_t track, Int_t* vol, |
109 | Float_t *hits); | |
fe4da5cc | 110 | virtual ~AliTOFhit() {} |
2cef3cb2 | 111 | |
112 | inline Int_t GetSector() {return fSector;} | |
113 | inline Int_t GetPlate() {return fPlate;} | |
114 | inline Int_t GetPad_x() {return fPad_x;} | |
115 | inline Int_t GetPad_z() {return fPad_z;} | |
116 | inline Int_t GetStrip() {return (Int_t)(fPad_z*0.5);} | |
117 | inline Float_t GetTof() {return fTof;} | |
118 | inline Float_t GetMom() {return fPmom;} | |
119 | inline Float_t GetDx() {return fDx;} | |
120 | inline Float_t GetDz() {return fDz;} | |
121 | inline Float_t GetIncA() {return fIncA;} | |
122 | inline Float_t GetEdep() {return fEdep;} | |
123 | ||
fe4da5cc | 124 | ClassDef(AliTOFhit,1) // Hits for Time Of Flight |
125 | }; | |
2cef3cb2 | 126 | |
127 | //_______________________________________________________ | |
128 | ||
129 | class AliTOFdigit : public AliDigit { | |
130 | ||
131 | public: | |
132 | Int_t fSector; | |
133 | Int_t fPlate; | |
134 | Int_t fStrip; | |
135 | Int_t fPad_x; | |
136 | Int_t fPad_z; | |
137 | Float_t fTdc; | |
138 | Float_t fAdc; | |
139 | ||
140 | public: | |
141 | AliTOFdigit(){} | |
142 | AliTOFdigit(Int_t*, Int_t*, Float_t*); | |
143 | virtual ~AliTOFdigit(){} | |
144 | void GetLocation(Int_t*); | |
145 | Int_t GetTotPad(); | |
146 | void AddTrack(Int_t); | |
147 | ||
148 | inline Float_t GetTdc() {return fTdc;} | |
149 | inline Float_t GetAdc() {return fAdc;} | |
150 | inline Int_t GetSector() {return fSector;} | |
151 | inline void SetTdc(Float_t TDC){fTdc = TDC;} | |
152 | inline void SetAdc(Float_t ADC){fAdc = ADC;} | |
153 | ||
154 | ClassDef(AliTOFdigit,2) // Digits for Time Of Flight | |
155 | }; | |
156 | ||
fe4da5cc | 157 | #endif |