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 ////////////////////////////////////////////////
12 #include "AliDetector.h"
18 class AliTOF : public AliDetector {
61 AliTOF(const char *name, const char *title);
63 virtual void AddHit(Int_t track, Int_t* vol, Float_t* hits);
64 virtual void AddDigit(Int_t*, Int_t*, Float_t*);
65 virtual void CreateGeometry();
66 virtual void CreateMaterials();
68 virtual void MakeBranch(Option_t*);
69 virtual void FinishEvent();
70 virtual Int_t IsVersion() const =0;
71 Int_t DistancetoPrimitive(Int_t px, Int_t py);
72 virtual void StepManager()=0;
73 virtual void TOFpc(Float_t, Float_t, Float_t,
74 Float_t, Float_t,Float_t) {}
75 virtual void DrawModule();
76 void Hits2Digits(Int_t evNumber=0);
77 void Digits2Raw (Int_t evNumber=0);
78 void Raw2Digits (Int_t evNumber=0);
81 Bool_t CheckOverlap(Int_t*, Float_t*, Int_t);
83 ClassDef(AliTOF,1) // Time Of Flight base class
86 //___________________________________________
88 class AliTOFhit : public AliHit {
90 Int_t fSector; // number of sector
91 Int_t fPlate; // number of plate
92 Int_t fStrip; // number of strip
93 Int_t fPad_x; // number of pad along x
94 Int_t fPad_z; // number of pad along z
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
108 AliTOFhit(Int_t shunt, Int_t track, Int_t* vol,
110 virtual ~AliTOFhit() {}
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;}
124 ClassDef(AliTOFhit,1) // Hits for Time Of Flight
127 //_______________________________________________________
129 class AliTOFdigit : public AliDigit {
142 AliTOFdigit(Int_t*, Int_t*, Float_t*);
143 virtual ~AliTOFdigit(){}
144 void GetLocation(Int_t*);
146 void AddTrack(Int_t);
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;}
154 ClassDef(AliTOFdigit,2) // Digits for Time Of Flight