Go to the documentation of this file.
8 #ifndef CBMMCBM2019TIMEWINEVENTBUILDERALGO_H
9 #define CBMMCBM2019TIMEWINEVENTBUILDERALGO_H
42 std::string sNameIn) {
50 UInt_t uTriggerMinDigisIn,
51 Int_t iTriggerMaxDigisIn,
52 Double_t fdTimeWinBegIn,
53 Double_t fdTimeWinEndIn)
63 return (other.
detId == this->detId);
66 return (other.
detId != this->detId);
134 UInt_t uTriggerMinDigisIn = 0,
135 Int_t iTriggerMaxDigisIn = -1,
136 Double_t fdTimeWinBegIn = -100,
137 Double_t fdTimeWinEndIn = 100);
141 UInt_t uTriggerMinDigisIn = 0,
142 Int_t iTriggerMaxDigisIn = -1,
143 Double_t fdTimeWinBegIn = -100,
144 Double_t fdTimeWinEndIn = 100);
169 std::pair<TNamed*, std::string>(pointer, sFolder));
176 std::pair<TCanvas*, std::string>(pointer, sFolder));
195 template<
class DigiSeed>
197 void CheckSeed(Double_t dSeedTime, UInt_t uSeedDigiIdx);
198 template<
class DigiCheck>
220 std::vector<EventBuilderDetector>
fvDets = {
256 std::vector<std::pair<TNamed*, std::string>>
258 std::vector<std::pair<TCanvas*, std::string>>
282 #endif // CBMMCBM2019TIMEWINEVENTBUILDERALGO_H
std::vector< EventBuilderDetector > fvDets
UInt_t fuErrors
Event Counter.
EventBuilderDetector(ECbmModuleId detIdIn, ECbmDataType dataTypeIn, std::string sNameIn, UInt_t uTriggerMinDigisIn, Int_t iTriggerMaxDigisIn, Double_t fdTimeWinBegIn, Double_t fdTimeWinEndIn)
Double_t GetTimeWinRange()
CbmMcbm2019TimeWinEventBuilderAlgo()
CBM headers.
std::vector< std::pair< TCanvas *, std::string > > fvpAllCanvasPointers
Vector of pointers to histograms + optional folder name.
TH1 * fhEventTime
Vector of pointers to canvases + optional folder name.
void SearchMatches(Double_t dSeedTime, EventBuilderDetector &detMatch)
void UpdateWidestTimeWinRange()
bool operator!=(const EventBuilderDetector &other) const
static const EventBuilderDetector kEventBuilderDetRich
Double_t fdWidestTimeWinRange
static const EventBuilderDetector kEventBuilderDetT0
CbmEvent * fCurrentEvent
Data ouptut.
static const EventBuilderDetector kEventBuilderDetMuch
CbmMcbm2019TimeWinEventBuilderAlgo(const CbmMcbm2019TimeWinEventBuilderAlgo &)=delete
UInt_t fuNrTs
Error Counter.
static const EventBuilderDetector kEventBuilderDetTof
void ResetHistograms(Bool_t bResetTime=kTRUE)
CbmMcbm2019TimeWinEventBuilderAlgo operator=(const CbmMcbm2019TimeWinEventBuilderAlgo &)=delete
void AddCanvasToVector(TCanvas *pointer, std::string sFolder="")
void SetFillHistos(Bool_t var)
void AddDigiToEvent(EventBuilderDetector &det, Int_t uIdx)
@ kTof
Time-of-flight Detector.
static const EventBuilderDetector kEventBuilderDetTrd
TH1 * fhEventDt
histogram with the seed time of the events
EventBuilderDetector fRefDet
void SetEventOverlapMode(EOverlapMode mode)
Control flags.
const std::vector< CbmTofDigi > * fT0DigiVec
void SetTriggerWindow(ECbmModuleId selDet, Double_t dWinBeg, Double_t dWinEnd)
void RemoveDetector(ECbmModuleId selDet) __attribute__((deprecated))
Double_t fdEarliestTimeWinBeg
bool operator==(const EventBuilderDetector &other) const
UInt_t fuCurEv
histograms with the nb of digis in each detector per event vs seed time of the events
ClassDefNV(CbmMcbm2019TimeWinEventBuilderAlgo, 1)
Save previous event last digi time information.
static constexpr Double_t kdDefaultTimeWinEnd
~CbmMcbm2019TimeWinEventBuilderAlgo()
UInt_t fuTriggerMinDigis
Minimum number of T0 digis needed to generate a trigger, 0 means don't use for trigger generation.
TH1 * fhEventSize
histogram with the interval in seed time of consecutive events
void SetIgnoreTsOverlap(Bool_t bFlagIn=kTRUE)
void UpdateTimeWinBoundariesExtrema()
@ kRich
Ring-Imaging Cherenkov Detector.
static const EventBuilderDetector kEventBuilderDetUndef
void AddDetector(ECbmModuleId selDet, ECbmDataType dataTypeIn, std::string sNameIn, UInt_t uTriggerMinDigisIn=0, Int_t iTriggerMaxDigisIn=-1, Double_t fdTimeWinBegIn=-100, Double_t fdTimeWinEndIn=100)
void CheckSeed(Double_t dSeedTime, UInt_t uSeedDigiIdx)
static constexpr Double_t kdDefaultTimeWinBeg
Constants.
Double_t fdTimeWinBeg
Selection Window.
Bool_t HasTrigger(CbmEvent *)
TClonesArray * fTimeSliceMetaDataArray
std::vector< CbmEvent * > & GetEventVector()
Data output access.
Double_t fdPrevEvtEndTime
Save previous time information.
static const EventBuilderDetector kEventBuilderDetPsd
static const EventBuilderDetector kEventBuilderDetSts
Pre-defined detector types.
@ kTrd
Transition Radiation Detector.
EOverlapMode fOverMode
Event building mode and detectors selection.
Bool_t fbFillHistos
Ignore data in Overlap part of the TS.
Double_t fdLatestTimeWinEnd
TH2 * fhNbDigiPerEvtTime
histogram with the nb of all digis in the event
std::vector< std::pair< TNamed *, std::string > > fvpAllHistoPointers
vector with all created events
void SetReferenceDetector(ECbmModuleId refDet, ECbmDataType dataTypeIn, std::string sNameIn, UInt_t uTriggerMinDigisIn=0, Int_t iTriggerMaxDigisIn=-1, Double_t fdTimeWinBegIn=-100, Double_t fdTimeWinEndIn=100)
void SetTriggerMinNumber(ECbmModuleId selDet, UInt_t uVal)
Bool_t CheckTriggerConditions(CbmEvent *event, EventBuilderDetector &det)
EventBuilderDetector(ECbmModuleId detIdIn, ECbmDataType dataTypeIn, std::string sNameIn)
void SetTriggerMaxNumber(ECbmModuleId selDet, Int_t iVal)
CbmDigiManager * fDigiMan
std::vector< std::pair< TNamed *, std::string > > GetHistoVector()
Class characterising one event by a collection of links (indices) to data objects,...
const TimesliceMetaData * pTsMetaData
std::vector< CbmEvent * > fEventVector
pointer to the event which is currently build
@ kMuch
Muon detection system.
@ kPsd
Projectile spectator detector.
Bool_t CheckDataAvailable(EventBuilderDetector &det)
Internal methods.
@ kSts
Silicon Tracking System.
UInt_t fuStartIndex
Book-keeping variables.
Double_t fdPrevEvtTime
Timeslice Counter.
std::vector< TH2 * > fvhNbDigiPerEvtTimeDet
histogram with the nb of all digis per event vs seed time of the events
ECbmModuleId detId
Settings.
void AddHistoToVector(TNamed *pointer, std::string sFolder="")
For monitor algos.
Int_t fiTriggerMaxDigis
Maximum number of digis per detector to generate an event, -1 means no cut, 0 means anti-coinc trigge...
std::vector< std::pair< TCanvas *, std::string > > GetCanvasVector()