]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TOF/AliTOF.h
Initial version
[u/mrichter/AliRoot.git] / TOF / AliTOF.h
1 #ifndef TOF_H
2 #define TOF_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 ////////////////////////////////////////////////
9 //  Manager and hits classes for set: TOF     //
10 ////////////////////////////////////////////////
11  
12 #include "AliDetector.h"
13 #include "AliHit.h"
14 #include "AliDigit.h" 
15 #include "TObject.h"
16 #include "AliTOFD.h"
17
18 class AliTOF : public AliDetector {
19
20 protected:
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
59 public:
60   AliTOF();
61   AliTOF(const char *name, const char *title);
62   virtual        ~AliTOF() {}
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();
67   virtual void    Init();
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);
79   
80 private:
81         Bool_t    CheckOverlap(Int_t*, Float_t*, Int_t);
82
83   ClassDef(AliTOF,1)  // Time Of Flight base class
84 };
85  
86 //___________________________________________
87  
88 class AliTOFhit : public AliHit {
89 public:
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
105  
106 public:
107   AliTOFhit() {}
108   AliTOFhit(Int_t shunt, Int_t track, Int_t* vol, 
109             Float_t *hits);
110   virtual ~AliTOFhit() {}
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
124   ClassDef(AliTOFhit,1)  // Hits for Time Of Flight
125 };
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
157 #endif