1#ifndef BMNPILEUPREDUCTIONTASK_H
2#define BMNPILEUPREDUCTIONTASK_H
35const std::map<int, std::string>
names{
36 {
kNull,
"Null"}, {
k0,
"0"}, {
k1,
"1"}, {
kV0,
"V0"}, {
kV1,
"V1"},
37 {
k00,
"00"}, {
k01,
"01"}, {
k0V0,
"0V0"}, {
k0V1,
"0V1"}, {
k10,
"10"},
38 {
k11,
"11"}, {
k1V0,
"1V0"}, {
k1V1,
"1V1"}, {
kMult,
"Mult"}, {
kUndef,
"Undef"},
67 std::vector<float> dt{-1.e10, 1.e10};
132 virtual InitStatus
Init();
137 virtual InitStatus
ReInit();
171 auto hClone = (T)h->Clone(
Form(
"%s%s", h->GetName(), postfix));
172 hClone->SetTitle(
Form(
"%s%s", h->GetTitle(), postfix));
177 bool FitRunDistr(std::string histName, std::vector<double>& fitPar,
float fitMin = 0,
float fitMax = 0);
181 std::vector<double> hitTimes,
184 float relHitTimeMin = -1,
185 float relHitTimeMax = 1);
188 std::vector<int>
GetNdigits(
TClonesArray* array, std::vector<double> hitTimes,
float relTimeMin,
float relTimeMax);
191 std::vector<double> hitTimes,
#define ClassDef(name, id)
char * Form(const char *fmt,...)
std::vector< int > fNdigitsTOF700
std::vector< double > GetTimesBC1S()
std::vector< int > fBC2ASpeaks
std::vector< int > GetNdigitsBD()
friend class BmnEventSelector
std::vector< int > fBC1hitClasses
std::vector< int > GetBC2ASpeaks()
std::vector< int > fFDpeaks
BmnEventClass::id fEventClass
std::vector< double > fRelTimesBC1S
std::vector< double > fTimesBC1S
std::vector< int > fNdigitsTOF400
std::vector< int > GetBC1hitClasses()
std::vector< double > GetRelTimesBC1S()
std::vector< int > GetFDpeaks()
std::vector< float > fSumAmpBD
std::vector< int > fNdigitsBD
std::vector< int > GetVCSpeaks()
std::vector< int > GetNdigitsTOF400()
int GetCentralHitIndexBC1S()
std::vector< float > GetSumAmpBD()
std::vector< int > GetNdigitsTOF700()
BmnEventClass::id GetEventClass()
std::vector< int > fBC1Speaks
std::vector< int > GetBC1Speaks()
std::vector< int > fVCSpeaks
std::vector< float > GetClosestBC1hitsDt(BmnEventClass::id classId)
TClonesArray * fArrBDdigits
TH2F * h2runId_time_BC1S_k0
void FillPerformanceHists(bool fill=true)
TClonesArray * fArrTOF400digits
TH2F * h2runId_shapeShiftedBC1S_SingleVCS
float fSingleBC1hitTimeMean
BmnEventHeader * fEventHeader
TClonesArray * fArrTOF700digits
TClonesArray * fArrTQDC_BC1S
TH2F * h2runId_peak_SingleBC1S
std::vector< int > fBC2ASpeaks
TH2F * h2runId_time_BC1S_kV1
THnSparse * h5runId_trigger_eventClass_dt_nTOF700digits
TH2F * h2runId_shapeShiftedBC1S_SingleFD
float fTOF400digitTimeMax
void WriteBC1hitInfo(bool write=true)
TH2F * h2runId_SumAmpBD_SingleBC1S
float fTOF700digitTimeMin
void SetInputFileName(const char *name)
float fSingleFD_BC1S_hitTimeMax
virtual InitStatus ReInit()
ReInitiliazation of task when the runID changes.
BmnTrigWaveDigit * fTQDC_FD
TClonesArray * fArrGEMdigits
std::vector< double > fTimesBC1S
std::vector< double > fTimesBC2AS
std::string fInputFileName
BmnEventClass::id fEventClassOut
BmnEventClass::id fEventClass
float fCentralHitTimeBC1S
std::vector< int > fBC1hitClasses
int GetClosestHitIndex(std::vector< double > hitTimes, float refTime)
TH2F * h2runId_time_SingleFD_BC1S
float fTOF400digitTimeMin
std::vector< int > GetPeaks(BmnTrigWaveDigit *digit, std::vector< double > hitTimes, float relTimeMin, float relTimeMax, float relHitTimeMin=-1, float relHitTimeMax=1)
TH2F * h2runId_shapeShiftedBC1S_SingleBC2AS
THnSparse * h5runId_trigger_eventClass_dt_nTOF400digits
void SetOutputFileName(const char *name)
std::string fOutputFileName
TH2F * h2runId_time_BC1S_k1
float fSingleFD_BC1S_hitTimeMin
float fTOF700digitTimeMax
T AddHistClone(T h, const char *postfix="")
float fSingleVCS_BC1S_hitTimeMin
T ReadBranch(const char *name)
TH2F * h2runId_peak_FD_nc
std::vector< int > fNdigitsBD
std::vector< int > fFDpeaks
float fSingleBC2AS_BC1S_hitTimeMax
std::vector< int > fNdigitsTOF400
~BmnEventSelector()
Constructor with parameters (Optional).
TH2F * h2runId_time_SingleVCS_BC1S
std::vector< int > GetNdigits(TClonesArray *array, std::vector< double > hitTimes, float relTimeMin, float relTimeMax)
bool fFillPerformanceHists
TH2F * h2runId_NdigitsTOF700_nc
std::vector< double > fRelTimesBC1S
virtual void Finish()
Finish task called at the end of the run.
BmnBC1hitInfo fBC1hitInfo
std::vector< int > fBC1Speaks
std::vector< double > fTimesVCS
TH2F * h2runId_peak_BC2AS
TH2F * h2runId_NdigitsTOF400
THnSparse * h5runId_trigger_eventClass_dt_nGEMdigits
BmnTrigWaveDigit * fTQDC_VCS
TH2F * h2runId_NdigitsTOF400_SingleBC1S
virtual void Exec(Option_t *opt)
Executed for each event.
bool FitRunDistr(std::string histName, std::vector< double > &fitPar, float fitMin=0, float fitMax=0)
void FillCalibrationHists(bool fill=true)
TH2F * h2runId_shapeShiftedBC1S_TOF700digit
std::vector< float > GetSumAmp(TClonesArray *digits, std::vector< double > hitTimes, float relTimeMin, float relTimeMax)
TH2F * h2runId_time_SingleBC1S
TH2F * h2runId_shapeShiftedBC1S_TOF400digit
unsigned int fNdigitsSILICON
BmnTrigWaveDigit * fTQDC_BC1S
TH2F * h2runId_peak_SingleVCS
THnSparse * h5runId_trigger_eventClass_dt_nSILICONdigits
TH2F * h2runId_eventClass
float fSingleBC2ASpeakMin
TH2F * h2runId_NdigitsBD_nc
TH2F * h2runId_NdigitsTOF700_SingleBC1S
std::vector< float > fSumAmpBD
int GetPeak(BmnTrigWaveDigit *digit, float timeMin=0, float timeMax=1e9)
virtual void SetParContainers()
Load the parameter container from the runtime database.
TClonesArray * fArrTQDC_FD
BmnEventSelector()
Default constructor.
BmnEventSelector operator=(const BmnEventSelector &)
float fSingleVCS_BC1S_hitTimeMax
TH2F * h2runId_shapeShiftedBC1S_BD
TClonesArray * fArrSILICONdigits
TH2F * h2runId_NdigitsBD_SingleBC1S
virtual InitStatus Init()
Initiliazation of task at the beginning of a run.
TClonesArray * fArrTQDC_VCS
BmnEventClass::id Classify()
bool fFillCalibrationHists
TH2F * h2runId_shapeShifted_SingleBC1S
BmnTrigWaveDigit * fTQDC_BC2AS
TH2F * h2runId_NdigitsTOF400_nc
std::vector< int > fNdigitsTOF700
TH2F * h2runId_NdigitsTOF700
std::vector< double > fTimesFD
TH2F * h2runId_time_BC1S_kV0
TClonesArray * fArrTQDC_BC2AS
TH2F * h2runId_time_SingleBC2AS_BC1S
std::vector< int > fVCSpeaks
float fSingleBC2AS_BC1S_hitTimeMin
TH2F * h2runId_peak_SingleFD
TH2F * h2runId_SumAmpBD_nc
BmnEventSelector(const BmnEventSelector &)
TH2F * h2runId_peak_SingleBC2AS
class for TQDC data including waveform can be initialized both from an std::vector and raw pointer to...
const std::map< int, std::string > names