]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TOF/AliTOFcalib.h
Added a static function to know the TOF sector [0,17] of membership for each TOF...
[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 #define CHENTRIESSMALL       300   // number of entries per TOF channel per run
12                                    // (to be divided by 3 to get the 
13                                    // real number of entries), smallarray 
14 #define MAXCHENTRIESSMALL  10000   // max number of entries per TOF channel 
15                                    // (to be divided by 3 to get the 
16                                    // real number of entries), smallarray 
17                                    
18 #define NIDXSMALL              3   // number of values stored 
19                                    // after Comb PID per ESD track
20 #define DELTAIDXTOT            0   // index for ToT in bigarray
21 #define DELTAIDXTIME           1   // index for TOF time in big/smallarray
22 #define DELTAIDXPID            2   // index for Exp Time after Comb PID 
23                                    // in smallarray
24 #define MEANENTRIES           15   // Mean number of entries per channel 
25                                    // to perform calibration
26
27 #include "TTask.h"
28
29 class TArrayF;
30 class TF1;
31 class TH1F;
32 class TObjArray;
33 class TTree;
34 class TChain;
35 class TMap;
36
37 //class AliESD;
38
39 class AliTOFCal;
40 class AliTOFRecoParam;
41 class AliTOFChannelOnlineStatusArray;
42 class AliTOFChannelOnlineArray;
43 class AliTOFDeltaBCOffset;
44 class AliTOFCTPLatency;
45 class AliTOFT0Fill;
46 class AliTOFRunParams;
47
48 class AliTOFcalib:public TTask{
49 public:
50   AliTOFcalib();          // ctor
51   AliTOFcalib(const AliTOFcalib & calib); // copy constructor
52   AliTOFcalib& operator=(const AliTOFcalib & calib); // assignment operator
53   virtual ~AliTOFcalib() ; // dtor
54   void CreateCalArrays();
55   void CreateCalObjects();
56   TObjArray * GetTOFCalArrayOnline() const {return fTOFCalOnline;}
57   AliTOFChannelOnlineArray * GetTOFOnlineDelay() const {return fCal;}
58   AliTOFChannelOnlineStatusArray * GetTOFOnlineStatus() const {return fStatus;}
59   TObjArray * GetTOFCalArrayOnlinePulser() const {return fTOFCalOnlinePulser;}
60   TObjArray * GetTOFCalArrayOnlineNoise() const {return fTOFCalOnlineNoise;}
61   TObjArray * GetTOFCalArrayOnlineHW() const {return fTOFCalOnlineHW;}
62   TObjArray * GetTOFCalArrayOffline() const {return fTOFCalOffline;}
63   TMap * GetConfigMap() const {return fConfigMap;}
64   TH1F * GetTOFSimToT() const {return fTOFSimToT;}
65   TTree * GetTOFCalibTree() const {return fTree;}
66   TChain * GetTOFCalibChain() const {return fChain;}
67   const char * GetOfflineValidity() const {return fkValidity;}
68   void SetOfflineValidity(const char* validity) {fkValidity = validity;}
69   Int_t NChannels()const{return fNChannels;}
70
71   void CreateDeltaBCOffset();
72   void CreateCTPLatency();
73   void CreateT0Fill();
74   void CreateRunParams();
75   AliTOFDeltaBCOffset *GetDeltaBCOffset() const {return fDeltaBCOffset;};
76   AliTOFCTPLatency *GetCTPLatency() const {return fCTPLatency;};
77   AliTOFT0Fill *GetT0Fill() const {return fT0Fill;};
78   AliTOFRunParams *GetRunParams() const {return fRunParams;};
79
80   // Methods to retrieve/write parameters from/on CDB
81   // writing
82
83   void WriteSimHistoOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun, TH1F *histo);
84   void WriteConfigMapOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
85   void WriteConfigMapOnCDB(const Char_t *sel);
86   // new calib objs
87   void WriteParOnlineDelayOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
88   void WriteParOnlineStatusOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
89   void WriteParOnlineDelayOnCDB(const Char_t *sel);
90   void WriteParOnlineStatusOnCDB(const Char_t *sel);
91   // old calib objs
92   void WriteParOnlineOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
93   void WriteParOnlinePulserOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
94   void WriteParOnlineNoiseOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
95   void WriteParOnlineHWOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
96   void WriteParOfflineOnCDB(const Char_t *sel, const Char_t *validity, Int_t minrun, Int_t maxrun);
97   void WriteParOnlineOnCDB(const Char_t *sel);
98   void WriteParOnlinePulserOnCDB(const Char_t *sel);  // old, before unification of status info
99   void WriteParOnlineNoiseOnCDB(const Char_t *sel);   // old, before unification of status info
100   void WriteParOnlineHWOnCDB(const Char_t *sel);      // old, before unification of status info
101   void WriteParOfflineOnCDB(const Char_t *sel, const Char_t *validity);
102
103   void WriteDeltaBCOffsetOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
104   void WriteCTPLatencyOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
105   void WriteT0FillOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
106   void WriteRunParamsOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
107
108   // reading
109   Bool_t ReadSimHistoFromCDB(const Char_t *sel, Int_t nrun);
110   Bool_t ReadConfigMapFromCDB(const Char_t *sel, Int_t nrun);
111   // new objs
112   Bool_t ReadParOnlineDelayFromCDB(const Char_t *sel, Int_t nrun);
113   Bool_t ReadParOnlineStatusFromCDB(const Char_t *sel, Int_t nrun);
114   // old objs
115   Bool_t ReadParOnlineFromCDB(const Char_t *sel, Int_t nrun);
116   Bool_t ReadParOnlinePulserFromCDB(const Char_t *sel, Int_t nrun);  // old, before unification of status info
117   Bool_t ReadParOnlineNoiseFromCDB(const Char_t *sel, Int_t nrun);   // old, before unification of status info
118   Bool_t ReadParOnlineHWFromCDB(const Char_t *sel, Int_t nrun);      // old, before unification of status info
119   Bool_t ReadParOfflineFromCDB(const Char_t *sel, Int_t nrun);
120   void WriteRecParOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun, AliTOFRecoParam *param);
121   AliTOFRecoParam * ReadRecParFromCDB(const Char_t *sel, Int_t nrun);
122   void CreateTreeFromCDB(Int_t minrun, Int_t maxrun);
123   void CreateTreeFromFile(Int_t minrun, Int_t maxrun);
124   void CreateTreeFromGrid(Int_t minrun, Int_t maxrun);
125   void CreateChainFromGrid(Int_t minrun, Int_t maxrun);
126   Int_t Calibrate(Option_t *optionSave="", Option_t *optionFit="RQ");
127   Int_t Calibrate(Int_t nch,Int_t *ich, Option_t *optionSave="", Option_t *optionFit="RQ");
128   Int_t Calibrate(Int_t ichmin, Int_t ichmax, Option_t *optionSave="", Option_t *optionFit="RQ");
129   Int_t Calibrate(Int_t ich, Option_t *optionSave="", Option_t *optionFit="RQ");
130   Int_t CalibrateFromProfile(Int_t ich, Option_t *optionSave="", Option_t *optionFit="RQ");
131   TH1F* Profile(Int_t i);
132   Int_t FindBins (TH1F* h, Double_t *bins) const;
133   void SetNruns(Int_t nruns) {fNruns=nruns;}
134   Int_t GetNruns() const {return fNruns;}
135   void SetFirstRun(Int_t firstRun) {fFirstRun=firstRun;}
136   Int_t GetFirstRun() const {return fFirstRun;}
137   void SetLastRun(Int_t lastRun) {fLastRun=lastRun;}
138   Int_t GetLastRun() const {return fLastRun;}
139
140   Bool_t ReadDeltaBCOffsetFromCDB(const Char_t *sel, Int_t nrun);
141   Bool_t ReadCTPLatencyFromCDB(const Char_t *sel, Int_t nrun);
142   Bool_t ReadT0FillFromCDB(const Char_t *sel, Int_t nrun);
143   Bool_t ReadRunParamsFromCDB(const Char_t *sel, Int_t nrun);
144
145 private:
146   Int_t fNChannels; // number of TOF channels
147
148   // old calibration objects
149   TObjArray *fTOFCalOnline;       // array of AliTOFChannels storing calib parameters
150   TObjArray *fTOFCalOnlinePulser; // array of AliTOFChannels storing calib status from pulser   // old, before unification of status info
151   TObjArray *fTOFCalOnlineNoise;  // array of AliTOFChannels storing calib status from noise    // old, before unification of status info
152   TObjArray *fTOFCalOnlineHW;  // array of AliTOFChannels storing calib status from hardware    // old, before unification of status info
153   TObjArray *fTOFCalOffline;       // array of AliTOFChannels storing calib parameters
154
155   // new calibration objects
156   AliTOFChannelOnlineArray *fCal; // object with delay array for TOF channels
157   AliTOFChannelOnlineStatusArray *fStatus; // object with status array for TOF channels
158
159   TH1F *fTOFSimToT;        // histo with realistic ToT signal from TB Data
160   const char *fkValidity;  // validity for offline calibration object
161   TTree *fTree;            // tree for TOF calibration
162   TChain *fChain;          // chain for TOF calibration
163   Int_t fNruns;            // number of runs to be processed
164   Int_t fFirstRun;            // first run for calibration obj validity
165   Int_t fLastRun;            // last run for calib obj validity
166   TMap* fConfigMap;          // map holding configuration obj
167
168   AliTOFDeltaBCOffset *fDeltaBCOffset; // deltaBC offset
169   AliTOFCTPLatency *fCTPLatency; // CTP latency
170   AliTOFT0Fill *fT0Fill; // T0 fill
171   AliTOFRunParams *fRunParams; // run params
172
173   ClassDef(AliTOFcalib,9);
174 };
175
176 #endif // AliTOFcalib_H
177