X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TOF%2FAliTOFcalib.h;h=f180eba13332cf14f9483d434f2c3d2db9021bd9;hb=60dd5042bf4e0785a7e9e79abd6d3c60b5282a71;hp=7432eedefa6a2dbba4e81ca07f02eea26ff13537;hpb=340693af02629437849c7bf822eb08112d7ba650;p=u%2Fmrichter%2FAliRoot.git diff --git a/TOF/AliTOFcalib.h b/TOF/AliTOFcalib.h index 7432eedefa6..f180eba1333 100644 --- a/TOF/AliTOFcalib.h +++ b/TOF/AliTOFcalib.h @@ -8,95 +8,93 @@ // class for TOF calibration:: simulation of uncalibrated data // ////////////////////////////////////////////////////////////////// +#define CHENTRIESSMALL 300 // number of entries per TOF channel per run + // (to be divided by 3 to get the + // real number of entries), smallarray +#define MAXCHENTRIESSMALL 10000 // max number of entries per TOF channel + // (to be divided by 3 to get the + // real number of entries), smallarray + +#define NIDXSMALL 3 // number of values stored + // after Comb PID per ESD track +#define DELTAIDXTOT 0 // index for ToT in bigarray +#define DELTAIDXTIME 1 // index for TOF time in big/smallarray +#define DELTAIDXPID 2 // index for Exp Time after Comb PID + // in smallarray +#define MEANENTRIES 15 // Mean number of entries per channel + // to perform calibration + #include "TTask.h" -#include "TH1F.h" -#include "AliTOFChannel.h" -#include "TClonesArray.h" -#include "TList.h" -#include "AliTOFCal.h" -#include "AliTOFGeometry.h" -#include "AliESD.h" + +class TArrayF; +class TF1; +class TH1F; +class TObjArray; +class TTree; +class TChain; + +class AliESD; + +class AliTOFCal; +class AliTOFRecoParam; class AliTOFcalib:public TTask{ public: AliTOFcalib(); // ctor - AliTOFcalib(AliTOFGeometry *geom); - AliTOFcalib(const AliTOFcalib & calib); + AliTOFcalib(const AliTOFcalib & calib); // copy constructor + AliTOFcalib& operator=(const AliTOFcalib & calib); // assignment operator virtual ~AliTOFcalib() ; // dtor - Int_t NSector()const {return fNSector;} - Int_t NPlate()const {return fNPlate;} - Int_t NStripA()const {return fNStripA;} - Int_t NStripB()const {return fNStripB;} - Int_t NStripC()const {return fNStripC;} - Int_t NpadZ()const {return fNpadZ;} - Int_t NpadX()const {return fNpadX;} - AliTOFCal * GetTOFCalArray() const {return fTOFCal;} - AliTOFCal * GetTOFCalSimArray() const {return fTOFSimCal;} + void CreateCalArrays(); + TObjArray * GetTOFCalArrayOnline() const {return fTOFCalOnline;} + TObjArray * GetTOFCalArrayOffline() const {return fTOFCalOffline;} TH1F * GetTOFSimToT() const {return fTOFSimToT;} - void SelectESD(AliESD *event); - void CombESDId(); - void CalibrateESD(); - TH1F* Profile(Int_t i); + TTree * GetTOFCalibTree() const {return fTree;} + TChain * GetTOFCalibChain() const {return fChain;} + const char * GetOfflineValidity() const {return fkValidity;} + void SetOfflineValidity(const char* validity) {fkValidity = validity;} Int_t NChannels()const{return fNChannels;} - TF1* SetFitFunctions(TH1F* histo); - void CorrectESDTime();// useless method, kept to make Chiara happy - void CorrectESDTime(AliESD *event); // Methods to retrieve/write parameters from/on CDB - void WriteSimParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun); - void WriteSimParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun, AliTOFCal *cal, TH1F *histo); - void ReadSimParFromCDB(Char_t *sel, Int_t nrun); - void WriteParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun, AliTOFCal *cal); - void WriteParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun); - void ReadParFromCDB(Char_t *sel, Int_t nrun); - Int_t GetIndex(Int_t *detId); // Get channel index for Calibration - - public: - class AliTOFArray : public TObject { - public: - AliTOFArray(): TObject(),fSize(0),fArray(0x0){} - AliTOFArray(Int_t size) : - TObject(), - fSize(size), - fArray(new TArrayF*[size]) { - } - Int_t GetSize() const {return fSize;} - void AddArray(Int_t pos, TArrayF * parr) { - if (pos>-1 && pos < fSize)fArray[pos] = parr;} - TArrayF * GetArray(Int_t pos) const { - TArrayF * parr = 0x0; - if (pos>-1 && pos < fSize)parr = fArray[pos]; - return parr; - } - virtual ~AliTOFArray() { - delete [] fArray; - } - - private: - - Int_t fSize; // Size of the array of TArrayFs - TArrayF ** fArray; //[fSize]}; - - }; - + void WriteSimHistoOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun, TH1F *histo); + void WriteParOnlineOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun); + void WriteParOfflineOnCDB(Char_t *sel, const Char_t *validity, Int_t minrun, Int_t maxrun); + void WriteParOnlineOnCDB(Char_t *sel); + void WriteParOfflineOnCDB(Char_t *sel, const Char_t *validity); + Bool_t ReadSimHistoFromCDB(Char_t *sel, Int_t nrun); + Bool_t ReadParOnlineFromCDB(Char_t *sel, Int_t nrun); + Bool_t ReadParOfflineFromCDB(Char_t *sel, Int_t nrun); + void WriteRecParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun, AliTOFRecoParam *param); + AliTOFRecoParam * ReadRecParFromCDB(Char_t *sel, Int_t nrun); + void CreateTreeFromCDB(Int_t minrun, Int_t maxrun); + void CreateTreeFromFile(Int_t minrun, Int_t maxrun); + void CreateTreeFromGrid(Int_t minrun, Int_t maxrun); + void CreateChainFromGrid(Int_t minrun, Int_t maxrun); + Int_t Calibrate(Option_t *optionSave="", Option_t *optionFit="RQ"); + Int_t Calibrate(Int_t nch,Int_t *ich, Option_t *optionSave="", Option_t *optionFit="RQ"); + Int_t Calibrate(Int_t ichmin, Int_t ichmax, Option_t *optionSave="", Option_t *optionFit="RQ"); + Int_t Calibrate(Int_t ich, Option_t *optionSave="", Option_t *optionFit="RQ"); + Int_t CalibrateFromProfile(Int_t ich, Option_t *optionSave="", Option_t *optionFit="RQ"); + TH1F* Profile(Int_t i); + Int_t FindBins (TH1F* h, Double_t *bins) const; + void SetNruns(Int_t nruns) {fNruns=nruns;} + Int_t GetNruns() const {return fNruns;} + void SetFirstRun(Int_t firstRun) {fFirstRun=firstRun;} + Int_t GetFirstRun() const {return fFirstRun;} + void SetLastRun(Int_t lastRun) {fLastRun=lastRun;} + Int_t GetLastRun() const {return fLastRun;} private: - static const Int_t fgkchannel; // max number of entries per channel Int_t fNChannels; // number of TOF channels - Int_t fNSector; // number of TOF sectors - Int_t fNPlate; // number of TOF plates - Int_t fNStripA; // number of TOF strips A - Int_t fNStripB; // number of TOF strips B - Int_t fNStripC; // number of TOF strips C - Int_t fNpadZ; // number of TOF pads Z - Int_t fNpadX; // number of TOF pads X - Int_t fNevents; // number of events - TObjArray * fESDsel; // selected ESD tracks for calibration - AliTOFArray *fArrayToT; // array for ToT values - AliTOFArray *fArrayTime; // array for Time values - AliTOFCal *fTOFCal; // array of AliTOFChannels storing calib parameters - AliTOFCal *fTOFSimCal; // array of AliTOFChannels storing calib parameters + TObjArray *fTOFCalOnline; // array of AliTOFChannels storing calib parameters + TObjArray *fTOFCalOffline; // array of AliTOFChannels storing calib parameters TH1F *fTOFSimToT; // histo with realistic ToT signal from TB Data - ClassDef(AliTOFcalib,1); + const char *fkValidity; // validity for offline calibration object + TTree *fTree; // tree for TOF calibration + TChain *fChain; // chain for TOF calibration + Int_t fNruns; // number of runs to be processed + Int_t fFirstRun; // first run for calibration obj validity + Int_t fLastRun; // last run for calib obj validity + + ClassDef(AliTOFcalib,5); }; #endif // AliTOFcalib_H