4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 //////////////////////////////////////////////////////////////////
8 // class for TOF calibration:: simulation of uncalibrated data //
9 //////////////////////////////////////////////////////////////////
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
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
24 #define MEANENTRIES 15 // Mean number of entries per channel
25 // to perform calibration
40 class AliTOFRecoParam;
41 class AliTOFChannelOnlineStatusArray;
42 class AliTOFChannelOnlineArray;
43 class AliTOFDeltaBCOffset;
44 class AliTOFCTPLatency;
46 class AliTOFRunParams;
48 class AliTOFcalib:public TTask{
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;}
71 void CreateDeltaBCOffset();
72 void CreateCTPLatency();
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;};
80 // Methods to retrieve/write parameters from/on CDB
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);
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);
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);
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);
109 Bool_t ReadSimHistoFromCDB(const Char_t *sel, Int_t nrun);
110 Bool_t ReadConfigMapFromCDB(const Char_t *sel, Int_t nrun);
112 Bool_t ReadParOnlineDelayFromCDB(const Char_t *sel, Int_t nrun);
113 Bool_t ReadParOnlineStatusFromCDB(const Char_t *sel, Int_t nrun);
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;}
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);
146 Int_t fNChannels; // number of TOF channels
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
155 // new calibration objects
156 AliTOFChannelOnlineArray *fCal; // object with delay array for TOF channels
157 AliTOFChannelOnlineStatusArray *fStatus; // object with status array for TOF channels
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
168 AliTOFDeltaBCOffset *fDeltaBCOffset; // deltaBC offset
169 AliTOFCTPLatency *fCTPLatency; // CTP latency
170 AliTOFT0Fill *fT0Fill; // T0 fill
171 AliTOFRunParams *fRunParams; // run params
173 ClassDef(AliTOFcalib,9);
176 #endif // AliTOFcalib_H