]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TOF/AliTOFcalib.h
New AliTRDcluster constructor
[u/mrichter/AliRoot.git] / TOF / AliTOFcalib.h
1 #ifndef ALITOFCALIB_H
2 #define ALITOFCALIB_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 //////////////////////////////////////////////////////////////////
8 //  class for TOF calibration:: simulation of uncalibrated data //
9 //////////////////////////////////////////////////////////////////
10
11 #include "TTask.h"
12
13 class TArrayF;
14 class TF1;
15 class TH1F;
16 class TObjArray;
17
18 class AliESD;
19
20 class AliTOFCal;
21 class AliTOFGeometry;
22 class AliTOFRecoParam;
23
24 class AliTOFcalib:public TTask{
25 public:
26   AliTOFcalib();          // ctor
27   AliTOFcalib(AliTOFGeometry *geom);
28   AliTOFcalib(const AliTOFcalib & calib); // copy constructor
29   AliTOFcalib& operator=(const AliTOFcalib & calib); // assignment operator
30   virtual ~AliTOFcalib() ; // dtor
31   Int_t NSector()const {return fNSector;}
32   Int_t NPlate()const {return fNPlate;}
33   Int_t NStripA()const {return fNStripA;}
34   Int_t NStripB()const {return fNStripB;}
35   Int_t NStripC()const {return fNStripC;}
36   Int_t NpadZ()const {return fNpadZ;}
37   Int_t NpadX()const {return fNpadX;}
38   AliTOFCal * GetTOFCalArray() const {return fTOFCal;}
39   AliTOFCal * GetTOFCalSimArray() const {return fTOFSimCal;}
40   TH1F * GetTOFSimToT() const {return fTOFSimToT;}
41   void SelectESD(AliESD *event);   
42   void CombESDId();
43   void CalibrateESD();
44   TH1F* Profile(Int_t i); 
45   Int_t NChannels()const{return fNChannels;}
46   TF1* SetFitFunctions(TH1F* histo);
47   void CorrectESDTime();// useless method, kept to make Chiara happy
48   void CorrectESDTime(AliESD *event);
49   // Methods to retrieve/write parameters from/on CDB
50   void WriteSimParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun);
51   void WriteSimParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun, AliTOFCal *cal, TH1F *histo);
52   void ReadSimParFromCDB(Char_t *sel, Int_t nrun);
53   void WriteParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun, AliTOFCal *cal);
54   void WriteParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun);
55   Bool_t ReadParFromCDB(Char_t *sel, Int_t nrun);
56   Int_t GetIndex(Int_t *detId); // Get channel index for Calibration 
57   void WriteRecParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun, AliTOFRecoParam *param);
58   AliTOFRecoParam * ReadRecParFromCDB(Char_t *sel, Int_t nrun);
59
60  public: 
61   class AliTOFArray : public TObject {
62   public:
63     AliTOFArray(): TObject(),fSize(0),fArray(0x0){}
64     AliTOFArray(Int_t size):
65       TObject(),
66       fSize(size),
67       fArray(new TArrayF*[size]) {
68     } 
69     AliTOFArray(const AliTOFArray & source):
70       TObject(),fSize(0),fArray(0x0){ // copy constructor
71       this->fSize= source.fSize;
72       this->fArray= source.fArray;
73     };
74
75     AliTOFArray& operator=(const AliTOFArray & source) { // assignment operator
76       this->fSize= source.fSize;
77       this->fArray= source.fArray;
78       return *this;
79     }
80
81     Int_t GetSize() const {return fSize;}
82     void AddArray(Int_t pos, TArrayF * parr) {
83       if (pos>-1 && pos < fSize)fArray[pos] = parr;}
84     TArrayF *  GetArray(Int_t pos) const {
85       TArrayF * parr = 0x0; 
86       if  (pos>-1 && pos < fSize)parr = fArray[pos];
87       return parr;
88     }
89     virtual ~AliTOFArray() {
90       delete [] fArray;
91     }
92     
93   private:
94     
95     Int_t fSize;       // Size of the array of TArrayFs
96     TArrayF ** fArray; //[fSize]};
97     
98   };
99
100
101 private:
102   static const Int_t fgkchannel;  // max number of entries per channel 
103   Int_t fNChannels; // number of TOF channels
104   Int_t fNSector;  // number of TOF sectors
105   Int_t fNPlate;   // number of TOF plates
106   Int_t fNStripA;  // number of TOF strips A
107   Int_t fNStripB;  // number of TOF strips B
108   Int_t fNStripC;  // number of TOF strips C
109   Int_t fNpadZ;    // number of TOF pads Z
110   Int_t fNpadX;    // number of TOF pads X
111   Int_t fNevents;           // number of events
112   TObjArray * fESDsel;   // selected ESD tracks for calibration
113   AliTOFArray *fArrayToT;   // array for ToT values
114   AliTOFArray *fArrayTime;  // array for Time values
115   AliTOFCal *fTOFCal;       // array of AliTOFChannels storing calib parameters
116   AliTOFCal *fTOFSimCal;       // array of AliTOFChannels storing calib parameters
117   TH1F *fTOFSimToT;        // histo with realistic ToT signal from TB Data
118   ClassDef(AliTOFcalib,1);
119 };
120
121 #endif // AliTOFcalib_H
122