3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 ////////////////////////////////////////////////
9 // Manager and hits classes for set: TOF //
10 ////////////////////////////////////////////////
15 #include "AliDetector.h"
20 class AliTOF : public AliDetector {
63 AliTOF(const char *name, const char *title);
65 virtual void AddHit(Int_t track, Int_t* vol, Float_t* hits);
66 virtual void AddDigit(Int_t*, Int_t*, Float_t*);
67 virtual void CreateGeometry();
68 virtual void CreateMaterials();
70 virtual void MakeBranch(Option_t*, char *file=0);
71 virtual void FinishEvent();
72 virtual Int_t IsVersion() const =0;
73 Int_t DistancetoPrimitive(Int_t px, Int_t py);
74 virtual void StepManager()=0;
75 virtual void TOFpc(Float_t, Float_t, Float_t,
76 Float_t, Float_t,Float_t) {}
77 virtual void DrawModule();
78 virtual void SDigits2Digits();
79 void Hits2Digits(Int_t evNumber=0);
80 void Digits2Raw (Int_t evNumber=0);
81 void Raw2Digits (Int_t evNumber=0);
84 Bool_t CheckOverlap(Int_t*, Float_t*, Int_t);
86 ClassDef(AliTOF,1) // Time Of Flight base class
89 //___________________________________________
91 class AliTOFhit : public AliHit {
93 Int_t fSector; // number of sector
94 Int_t fPlate; // number of plate
95 Int_t fStrip; // number of strip
96 Int_t fPad_x; // number of pad along x
97 Int_t fPad_z; // number of pad along z
98 Float_t fPx; // px in TOF
99 Float_t fPy; // py in TOF
100 Float_t fPz; // pz in TOF
101 Float_t fPmom; // P in TOF
102 Float_t fTof; // Time of Flight
103 Float_t fDx; // x of impact point in pad r.s.
104 Float_t fDy; // y of impact point in pad r.s.
105 Float_t fDz; // z of impact point in pad r.s.
106 Float_t fIncA; // Incidence angle
107 Float_t fEdep; // Energy lost in tof layer
111 AliTOFhit(Int_t shunt, Int_t track, Int_t* vol,
113 virtual ~AliTOFhit() {}
115 inline Int_t GetSector() {return fSector;}
116 inline Int_t GetPlate() {return fPlate;}
117 inline Int_t GetPad_x() {return fPad_x;}
118 inline Int_t GetPad_z() {return fPad_z;}
119 inline Int_t GetStrip() {return (Int_t)(fPad_z*0.5);}
120 inline Float_t GetTof() {return fTof;}
121 inline Float_t GetMom() {return fPmom;}
122 inline Float_t GetDx() {return fDx;}
123 inline Float_t GetDz() {return fDz;}
124 inline Float_t GetIncA() {return fIncA;}
125 inline Float_t GetEdep() {return fEdep;}
127 ClassDef(AliTOFhit,1) // Hits for Time Of Flight
130 //_______________________________________________________
132 class AliTOFdigit : public AliDigit {
145 AliTOFdigit(Int_t*, Int_t*, Float_t*);
146 virtual ~AliTOFdigit(){}
147 void GetLocation(Int_t*);
149 void AddTrack(Int_t);
151 inline Float_t GetTdc() {return fTdc;}
152 inline Float_t GetAdc() {return fAdc;}
153 inline Int_t GetSector() {return fSector;}
154 inline void SetTdc(Float_t TDC){fTdc = TDC;}
155 inline void SetAdc(Float_t ADC){fAdc = ADC;}
157 ClassDef(AliTOFdigit,2) // Digits for Time Of Flight