CbmRoot
Loading...
Searching...
No Matches
CbmTofCalibrator.h
Go to the documentation of this file.
1/* Copyright (C) 2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Norbert Herrmann, Florian Uhlig [committer] */
4
10#ifndef CBMTOFCALIBRATOR_H
11#define CBMTOFCALIBRATOR_H 1
12
13// TOF Classes and includes
14class CbmTofDigi;
15class CbmTofHit;
16class CbmMatch;
17class CbmEvent;
18class CbmVertex;
19// Geometry
22class CbmTofDigiPar;
24class CbmTofCell;
26class CbmDigiManager;
27
28#include "CbmDigiManager.h"
29#include "CbmTofDigi.h"
31#include "CbmTofFindTracks.h"
32#include "CbmTofHit.h"
33#include "CbmTofTracklet.h"
34#include "CbmTofTrackletParam.h"
35#include "CbmTofTrackletTools.h"
36#include "FairEventHeader.h"
37#include "FairTrackParam.h"
38#include "TH1.h"
39#include "TH2.h"
40#include "TMath.h"
41
42#include <vector>
43
44class TClonesArray;
45class TFile;
46
51class CbmTofCalibrator : public FairTask {
52
53 public:
56
58 virtual ~CbmTofCalibrator();
59
60 InitStatus Init();
61 Bool_t InitParameters();
62 Bool_t CreateCalHist();
63 void FillCalHist(CbmTofHit* pHit, Int_t iOpt, CbmEvent* pEvent = NULL);
64 void FillHitCalHist(CbmTofHit* pHit, Int_t iOpt, CbmEvent* pEvent = NULL, TClonesArray* tHitColl = NULL);
65 void FillCalHist(CbmTofTracklet* pTrk, Int_t iOpt, CbmEvent* pEvent = NULL);
66 Bool_t UpdateCalHist(Int_t iOpt);
67 void ReadHist(TFile* fhFile);
68 void WriteHist(TFile* fhFile);
69 void HstDoublets(CbmTofTracklet* pTrk);
70 double* find_tofedge(const char* hname, Double_t dThr, Double_t dLen);
71 double* find_tofedge(const char* hname);
72 double CalcChi2(TH1* h1, TH1* h2, int iShift);
73 double* fit_tofedge(const char* hname, Double_t dTmax, Double_t dThr);
74 double* fit_tofedge(const char* hname);
75 static double f1_tedge(double* x, double* par);
76 double TruncatedMeanY(TH2* pHst, double RmsLim = 1.);
77
78 inline void SetR0Lim(Double_t dVal) { fdR0Lim = dVal; }
79 inline void SetBeam(Bool_t bVal) { fbBeam = bVal; }
80
81 private:
86
87 const std::vector<CbmTofDigi>* fTofCalDigiVec = nullptr;
88
93 TClonesArray* fTofDigiMatchColl; // TOF Digi Links
94
95 FairEventHeader* fEvtHeader;
96
97 TH1* fhCalR0;
100
105
106 std::vector<TH2*> fhCalTot; // [nbDet]
107 std::vector<TH2*> fhCalPosition; // [nbDet]
108 std::vector<TH2*> fhCalPos; // [nbDet]
109 std::vector<TH2*> fhCalTOff; // [nbDet]
110 std::vector<TH2*> fhCalTofOff; // [nbDet]
111 std::vector<TH2*> fhCalDelPos; // [nbDet]
112 std::vector<TH2*> fhCalDelTOff; // [nbDet]
113 std::vector<TH2*> fhCalCluTrms; // [nbDet]
114 std::vector<TH2*> fhCalCluSize; // [nbDet]
115 std::vector<TH2*> fhCalWalkAv; // [nbDet]
116 std::vector<std::vector<std::vector<TH2*>>> fhCalWalk; // [nbDet][nbCh][nSide]
117 std::vector<std::vector<std::vector<TH2*>>> fhCalDtWalk; // [nbDet][nbCh][nSide]
118 std::vector<TH3*> fhCalXYTOff; // [nbDet]
119 std::vector<TH3*> fhCalXYTot; // [nbDet]
120 std::vector<std::vector<std::vector<TH3*>>> fhCalTotYWalk; // [nbDet][nbCh][nSide]
121 std::vector<std::vector<std::vector<TH3*>>> fhCalTotYTOff; // [nbDet][nbCh][nSide]
122
123 std::vector<TH1*> fhCorPos; // [nbDet]
124 std::vector<TH1*> fhCorTOff; // [nbDet]
125 std::vector<TH1*> fhCorTot; // [nbDet]
126 std::vector<TH1*> fhCorTotOff; // [nbDet]
127 std::vector<TH1*> fhCorSvel; // [nbDet]
128 std::vector<std::vector<std::vector<TH1*>>> fhCorWalk; // [nbDet][nbCh][nSide]
129
130 std::map<UInt_t, UInt_t> fDetIdIndexMap;
131 std::map<int, TH1*> fhDoubletDt;
132 std::map<int, TH1*> fhDoubletDd;
133 std::map<int, TH1*> fhDoubletV;
134
135 Double_t fdR0Lim = 0.;
136 Bool_t fbBeam = kFALSE;
137
140
142};
143
144#endif /* CBMTOFCALIBRATOR_H */
static Double_t dTmax
Data class for track parameters.
CbmDigiManager.
Class characterising one event by a collection of links (indices) to data objects,...
Definition CbmEvent.h:34
contains filling and updating of calibration histos
std::vector< TH3 * > fhCalXYTOff
std::vector< TH2 * > fhCalCluSize
void FillCalHist(CbmTofHit *pHit, Int_t iOpt, CbmEvent *pEvent=NULL)
std::vector< TH3 * > fhCalXYTot
const std::vector< CbmTofDigi > * fTofCalDigiVec
CbmTofFindTracks * fTofFindTracks
std::vector< TH1 * > fhCorTot
std::map< int, TH1 * > fhDoubletDt
CbmTofTrackletTools * fTrackletTools
std::vector< TH2 * > fhCalPosition
std::vector< TH2 * > fhCalWalkAv
std::vector< TH2 * > fhCalDelTOff
void SetR0Lim(Double_t dVal)
std::vector< TH2 * > fhCalTOff
static double f1_tedge(double *x, double *par)
std::vector< std::vector< std::vector< TH3 * > > > fhCalTotYWalk
std::vector< TH2 * > fhCalPos
FairEventHeader * fEvtHeader
std::vector< TH1 * > fhCorSvel
std::vector< std::vector< std::vector< TH2 * > > > fhCalDtWalk
void ReadHist(TFile *fhFile)
CbmTofDetectorId * fTofId
std::vector< TH2 * > fhCalTofOff
std::map< int, TH1 * > fhDoubletV
ClassDef(CbmTofCalibrator, 1)
CbmTofGeoHandler * fGeoHandler
CbmTofDigiBdfPar * fDigiBdfPar
std::vector< TH2 * > fhCalTot
double * find_tofedge(const char *hname, Double_t dThr, Double_t dLen)
TClonesArray * fTofDigiMatchColl
std::vector< TH1 * > fhCorPos
double * fit_tofedge(const char *hname, Double_t dTmax, Double_t dThr)
CbmTofCalibrator(const CbmTofCalibrator &)=delete
void SetBeam(Bool_t bVal)
void WriteHist(TFile *fhFile)
std::map< UInt_t, UInt_t > fDetIdIndexMap
void FillHitCalHist(CbmTofHit *pHit, Int_t iOpt, CbmEvent *pEvent=NULL, TClonesArray *tHitColl=NULL)
void HstDoublets(CbmTofTracklet *pTrk)
Bool_t UpdateCalHist(Int_t iOpt)
double CalcChi2(TH1 *h1, TH1 *h2, int iShift)
std::vector< TH1 * > fhCorTOff
std::vector< TH2 * > fhCalCluTrms
double TruncatedMeanY(TH2 *pHst, double RmsLim=1.)
std::vector< std::vector< std::vector< TH1 * > > > fhCorWalk
std::vector< TH1 * > fhCorTotOff
std::vector< std::vector< std::vector< TH3 * > > > fhCalTotYTOff
std::vector< TH2 * > fhCalDelPos
CbmTofEventClusterizer * fTofClusterizer
std::vector< std::vector< std::vector< TH2 * > > > fhCalWalk
CbmTofDigiPar * fDigiPar
std::map< int, TH1 * > fhDoubletDd
CbmDigiManager * fDigiMan
CbmTofCalibrator operator=(const CbmTofCalibrator &)=delete
Parameters class for the CBM ToF digitizer using beam data distributions.
Data class for expanded digital TOF information.
Definition CbmTofDigi.h:47
contains fits and resolution functions
Provides information on attaching a TofHit to a TofTrack.