LCOV - code coverage report
Current view: top level - TOF/TOFbase - AliTOFcalib.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 2 32 6.2 %
Date: 2016-06-14 17:26:59 Functions: 2 36 5.6 %

          Line data    Source code
       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 TH1C;
      33             : class TObjArray;
      34             : class TTree;
      35             : class TChain;
      36             : class TMap;
      37             : 
      38             : //class AliESD;
      39             : 
      40             : class AliTOFCal;
      41             : class AliTOFRecoParam;
      42             : class AliTOFChannelOnlineStatusArray;
      43             : class AliTOFChannelOnlineArray;
      44             : class AliTOFDeltaBCOffset;
      45             : class AliTOFCTPLatency;
      46             : class AliTOFT0Fill;
      47             : class AliTOFRunParams;
      48             : class AliTOFResponseParams;
      49             : class AliESDEvent;
      50             : class AliLHCClockPhase;
      51             : 
      52             : class AliTOFcalib:public TTask{
      53             : public:
      54             :   AliTOFcalib();          // ctor
      55             :   AliTOFcalib(const AliTOFcalib & calib); // copy constructor
      56             :   AliTOFcalib& operator=(const AliTOFcalib & calib); // assignment operator
      57             :   virtual ~AliTOFcalib() ; // dtor
      58             :   void CreateCalArrays();
      59             :   void CreateCalObjects();
      60           0 :   TObjArray * GetTOFCalArrayOnline() const {return fTOFCalOnline;}
      61           0 :   AliTOFChannelOnlineArray * GetTOFOnlineDelay() const {return fCal;}
      62           0 :   AliTOFChannelOnlineStatusArray * GetTOFOnlineStatus() const {return fStatus;}
      63           0 :   TObjArray * GetTOFCalArrayOnlinePulser() const {return fTOFCalOnlinePulser;}
      64           0 :   TObjArray * GetTOFCalArrayOnlineNoise() const {return fTOFCalOnlineNoise;}
      65           0 :   TObjArray * GetTOFCalArrayOnlineHW() const {return fTOFCalOnlineHW;}
      66           0 :   TObjArray * GetTOFCalArrayOffline() const {return fTOFCalOffline;}
      67           0 :   TMap * GetConfigMap() const {return fConfigMap;}
      68           0 :   TH1F * GetTOFSimToT() const {return fTOFSimToT;}
      69           0 :   TTree * GetTOFCalibTree() const {return fTree;}
      70           0 :   TChain * GetTOFCalibChain() const {return fChain;}
      71           8 :   const char * GetOfflineValidity() const {return fkValidity;}
      72           0 :   void SetOfflineValidity(const char* validity) {fkValidity = validity;}
      73           0 :   Int_t NChannels()const{return fNChannels;}
      74             : 
      75             :   void CreateDeltaBCOffset();
      76             :   void CreateCTPLatency();
      77             :   void CreateT0Fill();
      78             :   void CreateRunParams();
      79           0 :   AliTOFDeltaBCOffset *GetDeltaBCOffset() const {return fDeltaBCOffset;};
      80           0 :   AliTOFCTPLatency *GetCTPLatency() const {return fCTPLatency;};
      81           0 :   AliTOFT0Fill *GetT0Fill() const {return fT0Fill;};
      82           0 :   AliTOFRunParams *GetRunParams() const {return fRunParams;};
      83           0 :   AliTOFResponseParams *GetResponseParams() const {return fResponseParams;};
      84             : 
      85             :   // Methods to retrieve/write parameters from/on CDB
      86             :   // writing
      87             : 
      88             :   void WriteSimHistoOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun, TH1F *histo);
      89             :   void WriteConfigMapOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
      90             :   void WriteConfigMapOnCDB(const Char_t *sel);
      91             :   // new calib objs
      92             :   void WriteParOnlineDelayOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
      93             :   void WriteParOnlineStatusOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
      94             :   void WriteParOnlineDelayOnCDB(const Char_t *sel);
      95             :   void WriteParOnlineStatusOnCDB(const Char_t *sel);
      96             :   // old calib objs
      97             :   void WriteParOnlineOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
      98             :   void WriteParOnlinePulserOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
      99             :   void WriteParOnlineNoiseOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
     100             :   void WriteParOnlineHWOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
     101             :   void WriteParOfflineOnCDB(const Char_t *sel, const Char_t *validity, Int_t minrun, Int_t maxrun);
     102             :   void WriteParOnlineOnCDB(const Char_t *sel);
     103             :   void WriteParOnlinePulserOnCDB(const Char_t *sel);  // old, before unification of status info
     104             :   void WriteParOnlineNoiseOnCDB(const Char_t *sel);   // old, before unification of status info
     105             :   void WriteParOnlineHWOnCDB(const Char_t *sel);      // old, before unification of status info
     106             :   void WriteParOfflineOnCDB(const Char_t *sel, const Char_t *validity);
     107             : 
     108             :   void WriteDeltaBCOffsetOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
     109             :   void WriteCTPLatencyOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
     110             :   void WriteT0FillOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
     111             :   void WriteRunParamsOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
     112             :   void WriteReadoutEfficiencyOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
     113             :   void WriteProblematicOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
     114             : 
     115             :   // reading
     116             :   Bool_t ReadSimHistoFromCDB(const Char_t *sel, Int_t nrun);
     117             :   Bool_t ReadConfigMapFromCDB(const Char_t *sel, Int_t nrun);
     118             :   // new objs
     119             :   Bool_t ReadParOnlineDelayFromCDB(const Char_t *sel, Int_t nrun);
     120             :   Bool_t ReadParOnlineStatusFromCDB(const Char_t *sel, Int_t nrun);
     121             :   // old objs
     122             :   Bool_t ReadParOnlineFromCDB(const Char_t *sel, Int_t nrun);
     123             :   Bool_t ReadParOnlinePulserFromCDB(const Char_t *sel, Int_t nrun);  // old, before unification of status info
     124             :   Bool_t ReadParOnlineNoiseFromCDB(const Char_t *sel, Int_t nrun);   // old, before unification of status info
     125             :   Bool_t ReadParOnlineHWFromCDB(const Char_t *sel, Int_t nrun);      // old, before unification of status info
     126             :   Bool_t ReadParOfflineFromCDB(const Char_t *sel, Int_t nrun);
     127             :   void WriteRecParOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun, AliTOFRecoParam *param);
     128             :   void WriteRecParOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun, TObjArray *arr);
     129             :   AliTOFRecoParam * ReadRecParFromCDB(const Char_t *sel, Int_t nrun, Int_t eventType=0);
     130             :   void CreateTreeFromCDB(Int_t minrun, Int_t maxrun);
     131             :   void CreateTreeFromFile(Int_t minrun, Int_t maxrun);
     132             :   void CreateTreeFromGrid(Int_t minrun, Int_t maxrun);
     133             :   void CreateChainFromGrid(Int_t minrun, Int_t maxrun);
     134             :   Int_t Calibrate(Option_t *optionSave="", Option_t *optionFit="RQ");
     135             :   Int_t Calibrate(Int_t nch,Int_t *ich, Option_t *optionSave="", Option_t *optionFit="RQ");
     136             :   Int_t Calibrate(Int_t ichmin, Int_t ichmax, Option_t *optionSave="", Option_t *optionFit="RQ");
     137             :   Int_t Calibrate(Int_t ich, Option_t *optionSave="", Option_t *optionFit="RQ");
     138             :   Int_t CalibrateFromProfile(Int_t ich, Option_t *optionSave="", Option_t *optionFit="RQ");
     139             :   TH1F* Profile(Int_t i);
     140             :   Int_t FindBins (TH1F* h, Double_t *bins) const;
     141           0 :   void SetNruns(Int_t nruns) {fNruns=nruns;}
     142           0 :   Int_t GetNruns() const {return fNruns;}
     143           0 :   void SetFirstRun(Int_t firstRun) {fFirstRun=firstRun;}
     144           0 :   Int_t GetFirstRun() const {return fFirstRun;}
     145           0 :   void SetLastRun(Int_t lastRun) {fLastRun=lastRun;}
     146           0 :   Int_t GetLastRun() const {return fLastRun;}
     147             : 
     148             :   Bool_t ReadDeltaBCOffsetFromCDB(const Char_t *sel, Int_t nrun);
     149             :   Bool_t ReadCTPLatencyFromCDB(const Char_t *sel, Int_t nrun);
     150             :   Bool_t ReadT0FillFromCDB(const Char_t *sel, Int_t nrun);
     151             :   Bool_t ReadRunParamsFromCDB(const Char_t *sel, Int_t nrun);
     152             :   Bool_t ReadLHCClockPhaseFromCDB(const Char_t *sel, Int_t nrun);
     153             :   Bool_t ReadReadoutEfficiencyFromCDB(const Char_t *sel, Int_t nrun);
     154             :   Bool_t ReadProblematicFromCDB(const Char_t *sel, Int_t nrun);
     155             : 
     156             :   Bool_t Init(Int_t run = -1); // init
     157             :   Double_t GetTimeCorrection(Int_t index, Double_t tot, Int_t deltaBC, Int_t l0l1, UInt_t timestamp); // get time correction
     158             :   void CalibrateESD(AliESDEvent *event); // calibrate ESD
     159             :   void CalibrateTExp(AliESDEvent *event) const; // calibrate TExp
     160           0 :   void SetRemoveMeanT0(Bool_t value) {fRemoveMeanT0 = value;}; // setter
     161           0 :   void SetUseLHCClockPhase(Bool_t value) {fUseLHCClockPhase = value;}; // setter
     162           0 :   Bool_t GetUseLHCClockPhase() const {return fUseLHCClockPhase;}; // getter
     163           0 :   void SetCalibrateTOFsignal(Bool_t value) {fCalibrateTOFsignal = value;}; // setter
     164           0 :   void SetCorrectTExp(Bool_t value) {fCorrectTExp = value;}; // setter
     165             :   Bool_t IsChannelEnabled(Int_t index, Bool_t checkEfficiency = kTRUE, Bool_t checkProblematic = kTRUE); // is channel enabled
     166             :   Bool_t IsChannelEfficient(Int_t index); // is channel efficient
     167             :   Bool_t IsChannelProblematic(Int_t index); // is channel problematic
     168             :   Double_t TuneForMC(AliESDEvent *event, Double_t resolution); // tune for MC
     169             : 
     170           0 :   void SetRunParamsSpecificVersion(Int_t value) {fRunParamsSpecificVersion = value;}; // setter
     171             : 
     172             : private:
     173             :   Int_t fNChannels; // number of TOF channels
     174             : 
     175             :   // old calibration objects
     176             :   TObjArray *fTOFCalOnline;       // array of AliTOFChannels storing calib parameters
     177             :   TObjArray *fTOFCalOnlinePulser; // array of AliTOFChannels storing calib status from pulser   // old, before unification of status info
     178             :   TObjArray *fTOFCalOnlineNoise;  // array of AliTOFChannels storing calib status from noise    // old, before unification of status info
     179             :   TObjArray *fTOFCalOnlineHW;  // array of AliTOFChannels storing calib status from hardware    // old, before unification of status info
     180             :   TObjArray *fTOFCalOffline;       // array of AliTOFChannels storing calib parameters
     181             : 
     182             :   // new calibration objects
     183             :   AliTOFChannelOnlineArray *fCal; // object with delay array for TOF channels
     184             :   AliTOFChannelOnlineStatusArray *fStatus; // object with status array for TOF channels
     185             : 
     186             :   TH1F *fTOFSimToT;        // histo with realistic ToT signal from TB Data
     187             :   const char *fkValidity;  // validity for offline calibration object
     188             :   TTree *fTree;            // tree for TOF calibration
     189             :   TChain *fChain;          // chain for TOF calibration
     190             :   Int_t fNruns;            // number of runs to be processed
     191             :   Int_t fFirstRun;            // first run for calibration obj validity
     192             :   Int_t fLastRun;            // last run for calib obj validity
     193             :   TMap* fConfigMap;          // map holding configuration obj
     194             : 
     195             :   AliTOFDeltaBCOffset *fDeltaBCOffset; // deltaBC offset
     196             :   AliTOFCTPLatency *fCTPLatency; // CTP latency
     197             :   AliTOFT0Fill *fT0Fill; // T0 fill
     198             :   AliTOFRunParams *fRunParams; // run params
     199             :   AliLHCClockPhase *fLHCClockPhase; // LHC clock-phase
     200             :   AliTOFResponseParams *fResponseParams; // run params
     201             :   TH1F *fReadoutEfficiency; // readout efficiency
     202             :   TH1C *fProblematic; // problematic
     203             :   
     204             :   Bool_t fInitFlag; // init flag
     205             :   Bool_t fRemoveMeanT0; // remove mean T0
     206             :   Bool_t fUseLHCClockPhase; // use LHC clock-phase
     207             :   Bool_t fCalibrateTOFsignal; // calibrate TOF signal
     208             :   Bool_t fCorrectTExp; // correct expected time
     209             : 
     210             :   Int_t fRunParamsSpecificVersion; // RunParams specific version
     211          26 :   ClassDef(AliTOFcalib,11);
     212             : };
     213             : 
     214             : #endif // AliTOFcalib_H
     215             : 

Generated by: LCOV version 1.11