5#ifndef CBMMCBMCHECKTIMINGALGO_H
6#define CBMMCBMCHECKTIMINGALGO_H
15#include <unordered_set>
48 std::vector<std::string>
vName = {
""};
89 Double_t dTimeRangeEndIn = 1000.0, UInt_t uRangeNbBinsIn = 320, UInt_t uChargeCutMinIn = 0,
90 UInt_t uChargeCutMaxIn = 0);
92 Double_t dTimeRangeEndIn = 1000.0, UInt_t uRangeNbBinsIn = 320, UInt_t uChargeCutMinIn = 0,
93 UInt_t uChargeCutMaxIn = 0);
108 template<
class DigiRef>
120 UInt_t
GetDigiInfo(UInt_t iDigi, std::vector<std::tuple<double, double, UInt_t>>* vec,
145 std::vector<CheckTimingDetector>
fvDets {
@ kTrd
Transition Radiation Detector.
@ kTof
Time-of-flight Detector.
@ kPsd
Projectile spectator detector.
@ kSts
Silicon Tracking System.
@ kMuch
Muon detection system.
@ kRich
Ring-Imaging Cherenkov Detector.
Data class for a signal in the t-zero detector.
std::map< ECbmModuleId, std::vector< TH2 * > > fvhDetToRefDiffEvo
void AddCheckDetector(ECbmModuleId detIn, std::string sNameIn, Double_t dTimeRangeBegIn=-1000.0, Double_t dTimeRangeEndIn=1000.0, UInt_t uRangeNbBinsIn=320, UInt_t uChargeCutMinIn=0, UInt_t uChargeCutMaxIn=0)
void SetDetectorDifferential(ECbmModuleId detIn, std::vector< std::string > vName)
Double_t fMuchPeakWidthNs
Double_t DetPeakPosSingle
std::map< ECbmModuleId, std::vector< TH2 * > > fvhDetToRefDiffDetCharge
void SetTrdPeakWidthNs(Double_t val=120.)
void SetTofPeakWidthNs(Double_t val=20.)
CheckTimingDetector fRefDet
CbmMcbmCheckTimingAlgo operator=(const CbmMcbmCheckTimingAlgo &)=delete
void SetOutFilename(TString sNameIn)
void SetRichPeakWidthNs(Double_t val=40.)
UInt_t GetDigiInfo(UInt_t iDigi, std::vector< std::tuple< double, double, UInt_t > > *vec, ECbmModuleId detId=ECbmModuleId::kNotExist)
Retrieve digi (time,charge,addres) info. SHOULD BE IMPLEMENTED BY DETECTORS IF MORE DIFFERENTIAL STUD...
std::map< ECbmModuleId, std::unordered_set< std::string > > fUnimplementedView
const CbmTsEventHeader * fCbmTsEventHeader
Pointer to the Timeslice start time used to write it to the output tree.
const std::vector< CbmBmonDigi > * fpBmonDigiVec
Double_t fRichPeakWidthNs
std::map< ECbmModuleId, std::vector< TH1 * > > fvhDetSelfDiff
vectors storing histograms for each detector under investigation
void SetStsPeakWidthNs(Double_t val=30.)
ClassDefNV(CbmMcbmCheckTimingAlgo, 1)
void CheckInterSystemOffset()
Double_t DetAverageSingle
std::map< ECbmModuleId, std::vector< TH1 * > > fvhDetToRefDiff
void SetReferenceDetector(ECbmModuleId refDetIn, std::string sNameIn, Double_t dTimeRangeBegIn=-1000.0, Double_t dTimeRangeEndIn=1000.0, UInt_t uRangeNbBinsIn=320, UInt_t uChargeCutMinIn=0, UInt_t uChargeCutMaxIn=0)
~CbmMcbmCheckTimingAlgo()
void CheckDataPresence(CheckTimingDetector detToCheck)
void SetPsdPeakWidthNs(Double_t val=20.)
std::map< ECbmModuleId, std::vector< TH2 * > > fvhDetToRefDiffRefCharge
CbmDigiManager * fDigiMan
void SetMuchPeakWidthNs(Double_t val=100.)
void FillTimeOffsetHistos(const Double_t dRefTime, const Double_t dRefCharge, UInt_t uDetIdx)
int GetViewId(CheckTimingDetector det, std::tuple< double, double, UInt_t > info)
Retrieve the detector view corresponding to the digi data (.
void RemoveCheckDetector(ECbmModuleId detIn)
CbmMcbmCheckTimingAlgo(const CbmMcbmCheckTimingAlgo &)=delete
std::map< ECbmModuleId, std::vector< TH2 * > > fvhDetToRefDiffEvoLong
std::vector< CheckTimingDetector > fvDets
Data class for PSD digital information.
Data class for a single-channel message in the STS.
Data class for expanded digital TOF information.
CheckTimingDetector(ECbmModuleId detIdIn, std::string sNameIn)
std::vector< std::string > vName
No of views for each detector.
UInt_t uChargeCutMax
Charge cut used for example to reject/select pulser, no effect if equal, select if min < max,...
Double_t dPrevTime
Book-keeping variables.
UInt_t uNviews
Charge cut used for example to reject/select pulser, no effect if equal, select if min < max,...
ECbmModuleId detId
Settings.