Newer
Older
/** @file CbmTofCalibrator.h
** @author nh <N.Herrmann@gsi.de>
** @date 28.02.2020
**/
#ifndef CBMTOFCALIBRATOR_H
#define CBMTOFCALIBRATOR_H 1
// TOF Classes and includes
class CbmTofDigi;
class CbmTofHit;
class CbmMatch;
class CbmEvent;
class CbmVertex;
class CbmTofGeoHandler;
class CbmTofDetectorId;
class CbmTofDigiPar;
class CbmTofDigiBdfPar;
class CbmTofCell;
class CbmTofFindTracks;
class CbmDigiManager;
#include "CbmDigiManager.h"
#include "CbmTofEventClusterizer.h"
#include "CbmTofFindTracks.h"
#include "CbmTofHit.h"
#include "CbmTofTracklet.h"
#include "CbmTofTrackletTools.h"
#include "TH1.h"
#include "TH2.h"
#include <vector>
class TClonesArray;
/** @class CbmTofCalibrator
** @brief contains filling and updating of calibration histos
** @author nh
**/
class CbmTofCalibrator : public FairTask {
public:
/** Constructor **/
CbmTofCalibrator();
/** Destructor **/
virtual ~CbmTofCalibrator();
InitStatus Init();
Bool_t InitParameters();
Bool_t CreateCalHist();
void FillCalHist(CbmTofTracklet* pTrk, Int_t iOpt, CbmEvent* pEvent = NULL);
Bool_t UpdateCalHist(Int_t iOpt);
void ReadHist(TFile* fhFile);
void WriteHist(TFile* fhFile);
inline void SetR0Lim(Double_t dVal) { fdR0Lim = dVal; }
private:
CbmDigiManager* fDigiMan;
CbmTofEventClusterizer* fTofClusterizer;
CbmTofFindTracks* fTofFindTracks;
CbmTofTrackletTools* fTrackletTools;
const std::vector<CbmTofDigi>* fTofCalDigiVec = nullptr;
CbmTofDigiPar* fDigiPar;
CbmTofDigiBdfPar* fDigiBdfPar;
TClonesArray* fTofDigiMatchColl; // TOF Digi Links
std::vector<TH2*> fhCalPosition; // [nbDet]
std::vector<TH2*> fhCalPos; // [nbDet]
std::vector<TH2*> fhCalTOff; // [nbDet]
std::vector<TH2*> fhCalTot; // [nbDet]
std::vector<std::vector<std::vector<TH2*>>>
fhCalWalk; // [nbDet][nbCh][nSide]
std::vector<TH1*> fhCorPos; // [nbDet]
std::vector<TH1*> fhCorTOff; // [nbDet]
std::vector<TH1*> fhCorTot; // [nbDet]
std::vector<TH1*> fhCorTotOff; // [nbDet]
std::vector<TH1*> fhCorSvel; // [nbDet]
std::vector<std::vector<std::vector<TH1*>>>
fhCorWalk; // [nbDet][nbCh][nSide]
std::map<UInt_t, UInt_t> fDetIdIndexMap;
Double_t fdR0Lim = 0.;
CbmTofCalibrator(const CbmTofCalibrator&) = delete;
CbmTofCalibrator operator=(const CbmTofCalibrator&) = delete;
ClassDef(CbmTofCalibrator, 1);
};
#endif /* CBMTOFCALIBRATOR_H */