X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TOF%2FAliTOFcalib.h;h=3263622be6a47fe6c9964876e5305e6af884a2c7;hb=a4e31092385db98ea154225a9e188da82abd0e09;hp=09a02c590eacc61521004e00d7d41b9761a02a51;hpb=0e46b9aedf22cba61c60921b7b19fb76d89a7a2e;p=u%2Fmrichter%2FAliRoot.git diff --git a/TOF/AliTOFcalib.h b/TOF/AliTOFcalib.h index 09a02c590ea..3263622be6a 100644 --- a/TOF/AliTOFcalib.h +++ b/TOF/AliTOFcalib.h @@ -8,111 +8,141 @@ // 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" class TArrayF; class TF1; class TH1F; class TObjArray; +class TTree; +class TChain; +class TMap; -class AliESD; +//class AliESD; class AliTOFCal; -class AliTOFGeometry; +class AliTOFRecoParam; +class AliTOFChannelOnlineStatusArray; +class AliTOFChannelOnlineArray; class AliTOFcalib:public TTask{ public: AliTOFcalib(); // ctor - AliTOFcalib(AliTOFGeometry *geom); 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(); + void CreateCalObjects(); + TObjArray * GetTOFCalArrayOnline() const {return fTOFCalOnline;} + AliTOFChannelOnlineArray * GetTOFOnlineDelay() const {return fCal;} + AliTOFChannelOnlineStatusArray * GetTOFOnlineStatus() const {return fStatus;} + TObjArray * GetTOFCalArrayOnlinePulser() const {return fTOFCalOnlinePulser;} + TObjArray * GetTOFCalArrayOnlineNoise() const {return fTOFCalOnlineNoise;} + TObjArray * GetTOFCalArrayOnlineHW() const {return fTOFCalOnlineHW;} + TObjArray * GetTOFCalArrayOffline() const {return fTOFCalOffline;} + TMap * GetConfigMap() const {return fConfigMap;} 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]) { - } - AliTOFArray(const AliTOFArray & source): - TObject(){ // copy constructor - this->fSize= source.fSize; - this->fArray= source.fArray; - }; - - AliTOFArray& operator=(const AliTOFArray & source) { // assignment operator - this->fSize= source.fSize; - this->fArray= source.fArray; - return *this; - } - - 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]}; - - }; + // writing + void WriteSimHistoOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun, TH1F *histo); + void WriteConfigMapOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun); + void WriteConfigMapOnCDB(const Char_t *sel); + // new calib objs + void WriteParOnlineDelayOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun); + void WriteParOnlineStatusOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun); + void WriteParOnlineDelayOnCDB(const Char_t *sel); + void WriteParOnlineStatusOnCDB(const Char_t *sel); + // old calib objs + void WriteParOnlineOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun); + void WriteParOnlinePulserOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun); + void WriteParOnlineNoiseOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun); + void WriteParOnlineHWOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun); + void WriteParOfflineOnCDB(const Char_t *sel, const Char_t *validity, Int_t minrun, Int_t maxrun); + void WriteParOnlineOnCDB(const Char_t *sel); + void WriteParOnlinePulserOnCDB(const Char_t *sel); // old, before unification of status info + void WriteParOnlineNoiseOnCDB(const Char_t *sel); // old, before unification of status info + void WriteParOnlineHWOnCDB(const Char_t *sel); // old, before unification of status info + void WriteParOfflineOnCDB(const Char_t *sel, const Char_t *validity); + + // reading + Bool_t ReadSimHistoFromCDB(const Char_t *sel, Int_t nrun); + Bool_t ReadConfigMapFromCDB(const Char_t *sel, Int_t nrun); + // new objs + Bool_t ReadParOnlineDelayFromCDB(const Char_t *sel, Int_t nrun); + Bool_t ReadParOnlineStatusFromCDB(const Char_t *sel, Int_t nrun); + // old objs + Bool_t ReadParOnlineFromCDB(const Char_t *sel, Int_t nrun); + Bool_t ReadParOnlinePulserFromCDB(const Char_t *sel, Int_t nrun); // old, before unification of status info + Bool_t ReadParOnlineNoiseFromCDB(const Char_t *sel, Int_t nrun); // old, before unification of status info + Bool_t ReadParOnlineHWFromCDB(const Char_t *sel, Int_t nrun); // old, before unification of status info + Bool_t ReadParOfflineFromCDB(const Char_t *sel, Int_t nrun); + void WriteRecParOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun, AliTOFRecoParam *param); + AliTOFRecoParam * ReadRecParFromCDB(const 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 + + // old calibration objects + TObjArray *fTOFCalOnline; // array of AliTOFChannels storing calib parameters + TObjArray *fTOFCalOnlinePulser; // array of AliTOFChannels storing calib status from pulser // old, before unification of status info + TObjArray *fTOFCalOnlineNoise; // array of AliTOFChannels storing calib status from noise // old, before unification of status info + TObjArray *fTOFCalOnlineHW; // array of AliTOFChannels storing calib status from hardware // old, before unification of status info + TObjArray *fTOFCalOffline; // array of AliTOFChannels storing calib parameters + + // new calibration objects + AliTOFChannelOnlineArray *fCal; // object with delay array for TOF channels + AliTOFChannelOnlineStatusArray *fStatus; // object with status array for TOF channels + 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 + TMap* fConfigMap; // map holding configuration obj + + ClassDef(AliTOFcalib,7); }; #endif // AliTOFcalib_H