]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TOF/AliTOFpidESD.h
Moving to the new VMC naming convention
[u/mrichter/AliRoot.git] / TOF / AliTOFpidESD.h
1 #ifndef ALITOFPIDESD_H
2 #define ALITOFPIDESD_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 //-------------------------------------------------------
7 //                    TOF PID class
8 // A very naive design... Should be made better by the detector experts...
9 //   Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch 
10 //-------------------------------------------------------
11
12 #include <TObject.h>
13
14 class AliESD;
15 class TFile;
16 class TTree;
17
18 const Int_t kMaxCluster=77777; //maximal number of the TOF clusters
19
20 class AliTOFpidESD : public TObject {
21 public:
22   AliTOFpidESD(){fR=376.; fDy=2.5; fDz=3.5; fN=0; fEventN=0;}
23   AliTOFpidESD(Double_t *param) throw (const Char_t *);
24   ~AliTOFpidESD(){UnloadClusters();}
25
26   Int_t MakePID(AliESD *event);
27   Int_t LoadClusters(const TFile *f);
28   Int_t LoadClusters(TTree *f);
29   void  UnloadClusters();
30   void SetEventNumber(Int_t n) {fEventN=n;}
31
32   Int_t GetEventNumber() const {return fEventN;}
33
34 public:
35   class AliTOFcluster {
36   public:
37     AliTOFcluster(Double_t *h, Int_t *l) {
38       fR=h[0]; fPhi=h[1]; fZ=h[2]; fTDC=h[3]; fADC=h[4];
39       fLab[0]=l[0]; fLab[1]=l[1]; fLab[2]=l[2];
40     }
41     void Use() {fADC=-fADC;}
42
43     Double_t GetR() const {return fR;}
44     Double_t GetPhi() const {return fPhi;}
45     Double_t GetZ()   const {return fZ;}
46     Double_t GetTDC() const {return fTDC;}
47     Double_t GetADC() const {return TMath::Abs(fADC);}
48     Int_t IsUsed() const {return (fADC<0) ? 1 : 0;}
49     Int_t GetLabel(Int_t n) const {return fLab[n];}
50   private:
51     Int_t fLab[3];
52     Double_t fR;
53     Double_t fPhi;
54     Double_t fZ;
55     Double_t fTDC;
56     Double_t fADC;
57   };
58
59 private:
60   Int_t InsertCluster(AliTOFcluster*);
61   Int_t FindClusterIndex(Double_t z) const;
62
63   Int_t fEventN;          //event number
64
65   Double_t fR;            // mean readius of the TOF barrel
66   Double_t fDy;           // size of the TOF cell in R*Phi
67   Double_t fDz;           // size of the TOF cell in Z
68
69   Double_t fSigma;        // intrinsic TOF resolution
70   Double_t fRange;        // one particle type PID range (in sigmas)
71
72   Int_t fN;                  // number of the TOF clusters
73   AliTOFcluster *fClusters[kMaxCluster];  // pointers to the TOF clusters
74
75   ClassDef(AliTOFpidESD,1)   // TOF PID class
76 };
77
78 #endif
79
80