CbmRoot
CbmMcbm2019TimeWinEventBuilderAlgo Class Reference

#include <CbmMcbm2019TimeWinEventBuilderAlgo.h>

Collaboration diagram for CbmMcbm2019TimeWinEventBuilderAlgo:
[legend]

Public Member Functions

 CbmMcbm2019TimeWinEventBuilderAlgo ()
 CBM headers. More...
 
 CbmMcbm2019TimeWinEventBuilderAlgo (const CbmMcbm2019TimeWinEventBuilderAlgo &)=delete
 
CbmMcbm2019TimeWinEventBuilderAlgo operator= (const CbmMcbm2019TimeWinEventBuilderAlgo &)=delete
 
 ~CbmMcbm2019TimeWinEventBuilderAlgo ()
 
Bool_t InitAlgo ()
 
void ProcessTs ()
 
void Finish ()
 
void SetFillHistos (Bool_t var)
 
void ResetHistograms (Bool_t bResetTime=kTRUE)
 
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 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 SetReferenceDetector (ECbmModuleId refDet) __attribute__((deprecated))
 
void AddDetector (ECbmModuleId selDet) __attribute__((deprecated))
 
void RemoveDetector (ECbmModuleId selDet) __attribute__((deprecated))
 
void SetReferenceDetector (EventBuilderDetector refDetIn)
 
void AddDetector (EventBuilderDetector selDet)
 
void RemoveDetector (EventBuilderDetector selDet)
 
void SetTriggerMinNumber (ECbmModuleId selDet, UInt_t uVal)
 
void SetTriggerMaxNumber (ECbmModuleId selDet, Int_t iVal)
 
void SetTriggerWindow (ECbmModuleId selDet, Double_t dWinBeg, Double_t dWinEnd)
 
void SetEventOverlapMode (EOverlapMode mode)
 Control flags. More...
 
void SetIgnoreTsOverlap (Bool_t bFlagIn=kTRUE)
 
void AddHistoToVector (TNamed *pointer, std::string sFolder="")
 For monitor algos. More...
 
std::vector< std::pair< TNamed *, std::string > > GetHistoVector ()
 
void AddCanvasToVector (TCanvas *pointer, std::string sFolder="")
 
std::vector< std::pair< TCanvas *, std::string > > GetCanvasVector ()
 
std::vector< CbmEvent * > & GetEventVector ()
 Data output access. More...
 
void ClearEventVector ()
 

Private Member Functions

Bool_t CheckDataAvailable (EventBuilderDetector &det)
 Internal methods. More...
 
void InitTs ()
 
void BuildEvents ()
 
void CreateHistograms ()
 
void FillHistos ()
 
template<class DigiSeed >
void LoopOnSeeds ()
 
void CheckSeed (Double_t dSeedTime, UInt_t uSeedDigiIdx)
 
template<class DigiCheck >
void SearchMatches (Double_t dSeedTime, EventBuilderDetector &detMatch)
 
void AddDigiToEvent (EventBuilderDetector &det, Int_t uIdx)
 
Bool_t HasTrigger (CbmEvent *)
 
Bool_t CheckTriggerConditions (CbmEvent *event, EventBuilderDetector &det)
 
void UpdateTimeWinBoundariesExtrema ()
 
void UpdateWidestTimeWinRange ()
 
 ClassDefNV (CbmMcbm2019TimeWinEventBuilderAlgo, 1)
 Save previous event last digi time information. More...
 

Private Attributes

Bool_t fbIgnoreTsOverlap = kFALSE
 
Bool_t fbFillHistos {kTRUE}
 Ignore data in Overlap part of the TS. More...
 
EOverlapMode fOverMode {EOverlapMode::AllowOverlap}
 Event building mode and detectors selection. More...
 
EventBuilderDetector fRefDet
 
std::vector< EventBuilderDetectorfvDets
 
Double_t fdEarliestTimeWinBeg = kdDefaultTimeWinBeg
 
Double_t fdLatestTimeWinEnd = kdDefaultTimeWinEnd
 
Double_t fdWidestTimeWinRange = kdDefaultTimeWinEnd - kdDefaultTimeWinBeg
 
CbmDigiManagerfDigiMan = nullptr
 
const std::vector< CbmTofDigi > * fT0DigiVec = nullptr
 
TClonesArray * fTimeSliceMetaDataArray = nullptr
 
const TimesliceMetaDatapTsMetaData = nullptr
 
CbmEventfCurrentEvent
 Data ouptut. More...
 
std::vector< CbmEvent * > fEventVector = {}
 pointer to the event which is currently build More...
 
std::vector< std::pair< TNamed *, std::string > > fvpAllHistoPointers
 vector with all created events More...
 
std::vector< std::pair< TCanvas *, std::string > > fvpAllCanvasPointers
 Vector of pointers to histograms + optional folder name. More...
 
TH1 * fhEventTime = nullptr
 Vector of pointers to canvases + optional folder name. More...
 
TH1 * fhEventDt
 histogram with the seed time of the events More...
 
TH1 * fhEventSize
 histogram with the interval in seed time of consecutive events More...
 
TH2 * fhNbDigiPerEvtTime
 histogram with the nb of all digis in the event More...
 
std::vector< TH2 * > fvhNbDigiPerEvtTimeDet
 histogram with the nb of all digis per event vs seed time of the events More...
 
UInt_t fuCurEv = 0
 histograms with the nb of digis in each detector per event vs seed time of the events More...
 
UInt_t fuErrors = 0
 Event Counter. More...
 
UInt_t fuNrTs = 0
 Error Counter. More...
 
Double_t fdPrevEvtTime = 0.
 Timeslice Counter. More...
 
Double_t fdPrevEvtEndTime
 Save previous time information. More...
 

Static Private Attributes

static constexpr Double_t kdDefaultTimeWinBeg = -100.0
 Constants. More...
 
static constexpr Double_t kdDefaultTimeWinEnd = 100.0
 

Detailed Description

Definition at line 106 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

Constructor & Destructor Documentation

◆ CbmMcbm2019TimeWinEventBuilderAlgo() [1/2]

CbmMcbm2019TimeWinEventBuilderAlgo::CbmMcbm2019TimeWinEventBuilderAlgo ( )

CBM headers.

Default constructor

FAIRROOT headers FAIRSOFT headers (geant, boost, ...) C/C++ headers

Definition at line 37 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

◆ CbmMcbm2019TimeWinEventBuilderAlgo() [2/2]

CbmMcbm2019TimeWinEventBuilderAlgo::CbmMcbm2019TimeWinEventBuilderAlgo ( const CbmMcbm2019TimeWinEventBuilderAlgo )
delete

◆ ~CbmMcbm2019TimeWinEventBuilderAlgo()

CbmMcbm2019TimeWinEventBuilderAlgo::~CbmMcbm2019TimeWinEventBuilderAlgo ( )

Destructor

Definition at line 40 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

Member Function Documentation

◆ AddCanvasToVector()

void CbmMcbm2019TimeWinEventBuilderAlgo::AddCanvasToVector ( TCanvas *  pointer,
std::string  sFolder = "" 
)
inline

Definition at line 174 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

References fvpAllCanvasPointers.

◆ AddDetector() [1/3]

◆ AddDetector() [2/3]

void CbmMcbm2019TimeWinEventBuilderAlgo::AddDetector ( ECbmModuleId  selDet,
ECbmDataType  dataTypeIn,
std::string  sNameIn,
UInt_t  uTriggerMinDigisIn = 0,
Int_t  iTriggerMaxDigisIn = -1,
Double_t  fdTimeWinBegIn = -100,
Double_t  fdTimeWinEndIn = 100 
)

FIXME: Deprecated method to be removed later. For now create temp object.

Definition at line 727 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

Referenced by CbmMcbm2019TimeWinEventBuilderTask::AddDetector(), and AddDetector().

◆ AddDetector() [3/3]

void CbmMcbm2019TimeWinEventBuilderAlgo::AddDetector ( EventBuilderDetector  selDet)

Loop on selection detectors

Update the variables storing the earliest and latest time window boundaries

Update the variable storing the size if widest time window for overlap detection

Definition at line 904 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

References fRefDet, fvDets, EventBuilderDetector::sName, UpdateTimeWinBoundariesExtrema(), and UpdateWidestTimeWinRange().

◆ AddDigiToEvent()

void CbmMcbm2019TimeWinEventBuilderAlgo::AddDigiToEvent ( EventBuilderDetector det,
Int_t  uIdx 
)
private

◆ AddHistoToVector()

void CbmMcbm2019TimeWinEventBuilderAlgo::AddHistoToVector ( TNamed *  pointer,
std::string  sFolder = "" 
)
inline

For monitor algos.

Definition at line 167 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

References fvpAllHistoPointers.

Referenced by CreateHistograms().

◆ BuildEvents()

void CbmMcbm2019TimeWinEventBuilderAlgo::BuildEvents ( )
private

Call LoopOnSeed with proper template argument

Definition at line 170 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

References EventBuilderDetector::detId, fRefDet, kMuch, kPsd, kRich, kSts, kT0, kTof, kTrd, and EventBuilderDetector::sName.

Referenced by ProcessTs().

◆ CheckDataAvailable()

Bool_t CbmMcbm2019TimeWinEventBuilderAlgo::CheckDataAvailable ( EventBuilderDetector det)
private

◆ CheckSeed()

void CbmMcbm2019TimeWinEventBuilderAlgo::CheckSeed ( Double_t  dSeedTime,
UInt_t  uSeedDigiIdx 
)
private

If previous event valid and event overlap not allowed, check if we are in overlap and react accordingly

Within overlap range

No overlap allowed => reject

Merge overlap mode => do nothing and go on filling current event

In allow overlap mode => reject only if reference det is in overlap to avoid cloning events due to single seed cluster

Out of overlap range or in overlap allowed mode => store previous event if not empty and create new one

TODO: store start time of current event ?

If window open for reference detector, search for other reference Digis matching it Otherwise only add the current seed

Also add the seed if the window starts after the seed

Search for matches for each detector in selection list

Check if event is filling trigger conditions and clear it if not

In case of NoOverlap or MergeOverlap, we can and should start checking the next window from end of current window in order to save CPU and avoid duplicating

Update reference detector

Loop on selection detectors

delete does NOT set a pointer to nullptr...

Definition at line 290 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

References AddDigiToEvent(), AllowOverlap, EventBuilderDetector::detId, fCurrentEvent, fdPrevEvtEndTime, fdPrevEvtTime, EventBuilderDetector::fdTimeWinBeg, EventBuilderDetector::fdTimeWinEnd, fdWidestTimeWinRange, fEventVector, fOverMode, fRefDet, fuCurEv, EventBuilderDetector::fuEndIndex, EventBuilderDetector::fuStartIndex, fvDets, EventBuilderDetector::GetTimeWinRange(), HasTrigger(), kMuch, kPsd, kRich, kSts, kT0, kTof, kTrd, MergeOverlap, NoOverlap, CbmEvent::SetEndTime(), and EventBuilderDetector::sName.

Referenced by LoopOnSeeds().

◆ CheckTriggerConditions()

Bool_t CbmMcbm2019TimeWinEventBuilderAlgo::CheckTriggerConditions ( CbmEvent event,
EventBuilderDetector det 
)
private

Check if both Trigger conditions disabled for this detector

Check if detector present

FIXME: special case to be removed once T0 supported by DigiManager

Check Minimal trigger acceptance by minimal number

Check trigger rejection by maximal number

Definition at line 561 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

References EventBuilderDetector::dataType, EventBuilderDetector::detId, fDigiMan, EventBuilderDetector::fiTriggerMaxDigis, fT0DigiVec, EventBuilderDetector::fuTriggerMinDigis, CbmDigiManager::IsPresent(), kT0, and EventBuilderDetector::sName.

Referenced by HasTrigger().

◆ ClassDefNV()

CbmMcbm2019TimeWinEventBuilderAlgo::ClassDefNV ( CbmMcbm2019TimeWinEventBuilderAlgo  ,
 
)
private

Save previous event last digi time information.

◆ ClearEventVector()

void CbmMcbm2019TimeWinEventBuilderAlgo::ClearEventVector ( )

Need to delete the object the pointer points to first

Definition at line 115 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

References counter, and fEventVector.

Referenced by CbmMcbm2019TimeWinEventBuilderTask::FillOutput().

◆ CreateHistograms()

void CbmMcbm2019TimeWinEventBuilderAlgo::CreateHistograms ( )
private

FIXME: Disable clang formatting for histograms declaration for now

Loop on selection detectors

In case name not provided, do not create the histo to avoid name conflicts!

FIXME: Re-enable clang formatting after histograms declaration

Definition at line 611 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

References AddHistoToVector(), fhEventDt, fhEventSize, fhEventTime, fhNbDigiPerEvtTime, fvDets, and fvhNbDigiPerEvtTimeDet.

Referenced by InitAlgo().

◆ FillHistos()

void CbmMcbm2019TimeWinEventBuilderAlgo::FillHistos ( )
private

Loop on selection detectors

Definition at line 665 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

References fEventVector, fhEventDt, fhEventSize, fhEventTime, fhNbDigiPerEvtTime, fvDets, and fvhNbDigiPerEvtTimeDet.

Referenced by ProcessTs().

◆ Finish()

void CbmMcbm2019TimeWinEventBuilderAlgo::Finish ( )

Finish called at the end of the run

Definition at line 128 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

References fuErrors.

Referenced by CbmMcbm2019TimeWinEventBuilderTask::Finish().

◆ GetCanvasVector()

std::vector<std::pair<TCanvas*, std::string> > CbmMcbm2019TimeWinEventBuilderAlgo::GetCanvasVector ( )
inline

Definition at line 178 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

References fvpAllCanvasPointers.

◆ GetEventVector()

std::vector<CbmEvent*>& CbmMcbm2019TimeWinEventBuilderAlgo::GetEventVector ( )
inline

Data output access.

Definition at line 183 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

References fEventVector.

Referenced by CbmMcbm2019TimeWinEventBuilderTask::FillOutput().

◆ GetHistoVector()

std::vector<std::pair<TNamed*, std::string> > CbmMcbm2019TimeWinEventBuilderAlgo::GetHistoVector ( )
inline

◆ HasTrigger()

Bool_t CbmMcbm2019TimeWinEventBuilderAlgo::HasTrigger ( CbmEvent event)
private

Check first reference detector

Loop on selection detectors

All Ok, trigger is there

Definition at line 544 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

References CheckTriggerConditions(), fRefDet, and fvDets.

Referenced by CheckSeed().

◆ InitAlgo()

Bool_t CbmMcbm2019TimeWinEventBuilderAlgo::InitAlgo ( )

Initiliazation at the beginning of a run

Check if reference detector data are available

Check if data for detectors in selection list are available

Access the TS metadata to know TS start tim

Definition at line 43 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

References CheckDataAvailable(), CreateHistograms(), fbFillHistos, fDigiMan, fRefDet, fTimeSliceMetaDataArray, fvDets, CbmDigiManager::Init(), CbmDigiManager::Instance(), and CbmDigiManager::UseMuchBeamTimeDigi().

Referenced by CbmMcbm2019TimeWinEventBuilderTask::Init().

◆ InitTs()

void CbmMcbm2019TimeWinEventBuilderAlgo::InitTs ( )
private

Reset TS based variables (analysis per TS = no building over the border) Reference detector

Loop on detectors in selection list

Definition at line 156 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

References fRefDet, EventBuilderDetector::fuEndIndex, EventBuilderDetector::fuStartIndex, and fvDets.

Referenced by ProcessTs().

◆ LoopOnSeeds()

template<class DigiSeed >
void CbmMcbm2019TimeWinEventBuilderAlgo::LoopOnSeeds
private

Print warning in first TS if time window borders out of potential overlap

Define an acceptance window for the seeds in order to use the overlap part of the TS to avoid incomplete events

Loop on size of vector

Loop on size of vector

Check Seed and build event if needed

Loop on size of vector

Check that _entry is not out of range

Check if seed in acceptance window

Check Seed and build event if needed

Definition at line 211 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

References CheckSeed(), EventBuilderDetector::detId, fbIgnoreTsOverlap, fdEarliestTimeWinBeg, fDigiMan, fdLatestTimeWinEnd, fdWidestTimeWinRange, fRefDet, fT0DigiVec, fTimeSliceMetaDataArray, fuNrTs, CbmDigiManager::Get(), CbmDigiManager::GetNofDigis(), TimesliceMetaData::GetOverlapDuration(), TimesliceMetaData::GetOverlapStartTime(), TimesliceMetaData::GetStartTime(), kT0, and pTsMetaData.

◆ operator=()

CbmMcbm2019TimeWinEventBuilderAlgo CbmMcbm2019TimeWinEventBuilderAlgo::operator= ( const CbmMcbm2019TimeWinEventBuilderAlgo )
delete

◆ ProcessTs()

void CbmMcbm2019TimeWinEventBuilderAlgo::ProcessTs ( )

Executed for each TS.

Store last event with trigger if not done by other seed

TODO: store start time of current event ?

Prevent building over TS edge

Definition at line 90 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

References BuildEvents(), fbFillHistos, fCurrentEvent, fdPrevEvtEndTime, fEventVector, FillHistos(), fuCurEv, fuNrTs, InitTs(), and CbmEvent::SetEndTime().

Referenced by CbmMcbm2019TimeWinEventBuilderTask::Exec().

◆ RemoveDetector() [1/2]

void CbmMcbm2019TimeWinEventBuilderAlgo::RemoveDetector ( ECbmModuleId  selDet)

Loop on selection detectors

Definition at line 842 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

References fvDets.

Referenced by CbmMcbm2019TimeWinEventBuilderTask::RemoveDetector(), and SetReferenceDetector().

◆ RemoveDetector() [2/2]

void CbmMcbm2019TimeWinEventBuilderAlgo::RemoveDetector ( EventBuilderDetector  selDet)

Loop on selection detectors

Definition at line 932 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

References fvDets, and EventBuilderDetector::sName.

◆ ResetHistograms()

void CbmMcbm2019TimeWinEventBuilderAlgo::ResetHistograms ( Bool_t  bResetTime = kTRUE)

Loop on histograms

Definition at line 686 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

References fhEventDt, fhEventSize, fhEventTime, fhNbDigiPerEvtTime, and fvhNbDigiPerEvtTimeDet.

◆ SearchMatches()

template<class DigiCheck >
void CbmMcbm2019TimeWinEventBuilderAlgo::SearchMatches ( Double_t  dSeedTime,
EventBuilderDetector detMatch 
)
private

This algo relies on time sorted vectors for the selected detectors

Check the Digis until out of window

Loop on size of vector

Loop on size of vector

Check if within time window, update start/stop indices if needed

Store as end the first digi out of window to avoid double counting in case of merged overlap event mode

catch the case where we reach the end of the vector before being out of the time window

Loop on size of vector

Check that _entry is not out of range

Check if within time window, update start/stop indices if needed

Store as end the first digi out of window to avoid double counting in case of merged overlap event mode

catch the case where we reach the end of the vector before being out of the time window

Update the StartIndex and EndIndex for the next event seed

Definition at line 451 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

References AddDigiToEvent(), EventBuilderDetector::detId, fDigiMan, fdPrevEvtEndTime, EventBuilderDetector::fdTimeWinBeg, EventBuilderDetector::fdTimeWinEnd, fT0DigiVec, EventBuilderDetector::fuEndIndex, EventBuilderDetector::fuStartIndex, CbmDigiManager::Get(), CbmDigiManager::GetNofDigis(), kT0, and EventBuilderDetector::sName.

◆ SetEventOverlapMode()

void CbmMcbm2019TimeWinEventBuilderAlgo::SetEventOverlapMode ( EOverlapMode  mode)
inline

Control flags.

Definition at line 161 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

References fOverMode.

Referenced by CbmMcbm2019TimeWinEventBuilderTask::SetEventOverlapMode().

◆ SetFillHistos()

void CbmMcbm2019TimeWinEventBuilderAlgo::SetFillHistos ( Bool_t  var)
inline

◆ SetIgnoreTsOverlap()

void CbmMcbm2019TimeWinEventBuilderAlgo::SetIgnoreTsOverlap ( Bool_t  bFlagIn = kTRUE)
inline

◆ SetReferenceDetector() [1/3]

◆ SetReferenceDetector() [2/3]

void CbmMcbm2019TimeWinEventBuilderAlgo::SetReferenceDetector ( ECbmModuleId  refDet,
ECbmDataType  dataTypeIn,
std::string  sNameIn,
UInt_t  uTriggerMinDigisIn = 0,
Int_t  iTriggerMaxDigisIn = -1,
Double_t  fdTimeWinBegIn = -100,
Double_t  fdTimeWinEndIn = 100 
)

FIXME: Deprecated method to be removed later. For now create temp object.

Definition at line 709 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

Referenced by CbmMcbm2019TimeWinEventBuilderTask::SetReferenceDetector(), and SetReferenceDetector().

◆ SetReferenceDetector() [3/3]

void CbmMcbm2019TimeWinEventBuilderAlgo::SetReferenceDetector ( EventBuilderDetector  refDetIn)

Loop on selection detectors

Update the variables storing the earliest and latest time window boundaries

Update the variable storing the size if widest time window for overlap detection

Definition at line 857 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

References fRefDet, fvDets, RemoveDetector(), EventBuilderDetector::sName, UpdateTimeWinBoundariesExtrema(), and UpdateWidestTimeWinRange().

◆ SetTriggerMaxNumber()

void CbmMcbm2019TimeWinEventBuilderAlgo::SetTriggerMaxNumber ( ECbmModuleId  selDet,
Int_t  iVal 
)

◆ SetTriggerMinNumber()

void CbmMcbm2019TimeWinEventBuilderAlgo::SetTriggerMinNumber ( ECbmModuleId  selDet,
UInt_t  uVal 
)

◆ SetTriggerWindow()

void CbmMcbm2019TimeWinEventBuilderAlgo::SetTriggerWindow ( ECbmModuleId  selDet,
Double_t  dWinBeg,
Double_t  dWinEnd 
)

Check if valid time window: end strictly after beginning

Check first if reference detector

Loop on selection detectors

Update the variables storing the earliest and latest time window boundaries

Update the variable storing the size if widest time window for overlap detection

Definition at line 1012 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

References EventBuilderDetector::detId, EventBuilderDetector::fdTimeWinBeg, EventBuilderDetector::fdTimeWinEnd, fRefDet, fvDets, UpdateTimeWinBoundariesExtrema(), and UpdateWidestTimeWinRange().

Referenced by CbmMcbm2019TimeWinEventBuilderTask::SetTriggerWindow().

◆ UpdateTimeWinBoundariesExtrema()

void CbmMcbm2019TimeWinEventBuilderAlgo::UpdateTimeWinBoundariesExtrema ( )
private

◆ UpdateWidestTimeWinRange()

void CbmMcbm2019TimeWinEventBuilderAlgo::UpdateWidestTimeWinRange ( )
private

Initialize with reference detector

Loop on selection detectors

Definition at line 1067 of file CbmMcbm2019TimeWinEventBuilderAlgo.cxx.

References EventBuilderDetector::fdTimeWinBeg, EventBuilderDetector::fdTimeWinEnd, fdWidestTimeWinRange, fRefDet, fvDets, and max().

Referenced by AddDetector(), SetReferenceDetector(), and SetTriggerWindow().

Member Data Documentation

◆ fbFillHistos

Bool_t CbmMcbm2019TimeWinEventBuilderAlgo::fbFillHistos {kTRUE}
private

Ignore data in Overlap part of the TS.

Definition at line 214 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

Referenced by InitAlgo(), ProcessTs(), and SetFillHistos().

◆ fbIgnoreTsOverlap

Bool_t CbmMcbm2019TimeWinEventBuilderAlgo::fbIgnoreTsOverlap = kFALSE
private

User parameters Control flags

Definition at line 213 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

Referenced by LoopOnSeeds(), and SetIgnoreTsOverlap().

◆ fCurrentEvent

CbmEvent* CbmMcbm2019TimeWinEventBuilderAlgo::fCurrentEvent
private
Initial value:
=
nullptr

Data ouptut.

Definition at line 241 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

Referenced by AddDigiToEvent(), CheckSeed(), and ProcessTs().

◆ fdEarliestTimeWinBeg

Double_t CbmMcbm2019TimeWinEventBuilderAlgo::fdEarliestTimeWinBeg = kdDefaultTimeWinBeg
private

◆ fDigiMan

CbmDigiManager* CbmMcbm2019TimeWinEventBuilderAlgo::fDigiMan = nullptr
private

Data input FIXME: usage of CbmDigiManager in FairMq context?!? => Maybe by registering vector (or vector reference) to ioman in Device?

Definition at line 235 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

Referenced by CheckDataAvailable(), CheckTriggerConditions(), InitAlgo(), LoopOnSeeds(), and SearchMatches().

◆ fdLatestTimeWinEnd

Double_t CbmMcbm2019TimeWinEventBuilderAlgo::fdLatestTimeWinEnd = kdDefaultTimeWinEnd
private

◆ fdPrevEvtEndTime

Double_t CbmMcbm2019TimeWinEventBuilderAlgo::fdPrevEvtEndTime
private
Initial value:
=
0.

Save previous time information.

Definition at line 276 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

Referenced by CheckSeed(), ProcessTs(), and SearchMatches().

◆ fdPrevEvtTime

Double_t CbmMcbm2019TimeWinEventBuilderAlgo::fdPrevEvtTime = 0.
private

Timeslice Counter.

Definition at line 275 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

Referenced by CheckSeed().

◆ fdWidestTimeWinRange

Double_t CbmMcbm2019TimeWinEventBuilderAlgo::fdWidestTimeWinRange = kdDefaultTimeWinEnd - kdDefaultTimeWinBeg
private

◆ fEventVector

std::vector<CbmEvent*> CbmMcbm2019TimeWinEventBuilderAlgo::fEventVector = {}
private

pointer to the event which is currently build

Definition at line 243 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

Referenced by CheckSeed(), ClearEventVector(), FillHistos(), GetEventVector(), and ProcessTs().

◆ fhEventDt

TH1* CbmMcbm2019TimeWinEventBuilderAlgo::fhEventDt
private
Initial value:
=
nullptr

histogram with the seed time of the events

Definition at line 262 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

Referenced by CreateHistograms(), FillHistos(), and ResetHistograms().

◆ fhEventSize

TH1* CbmMcbm2019TimeWinEventBuilderAlgo::fhEventSize
private
Initial value:
=
nullptr

histogram with the interval in seed time of consecutive events

Definition at line 264 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

Referenced by CreateHistograms(), FillHistos(), and ResetHistograms().

◆ fhEventTime

TH1* CbmMcbm2019TimeWinEventBuilderAlgo::fhEventTime = nullptr
private

Vector of pointers to canvases + optional folder name.

Definition at line 261 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

Referenced by CreateHistograms(), FillHistos(), and ResetHistograms().

◆ fhNbDigiPerEvtTime

TH2* CbmMcbm2019TimeWinEventBuilderAlgo::fhNbDigiPerEvtTime
private
Initial value:
=
nullptr

histogram with the nb of all digis in the event

Definition at line 266 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

Referenced by CreateHistograms(), FillHistos(), and ResetHistograms().

◆ fOverMode

EOverlapMode CbmMcbm2019TimeWinEventBuilderAlgo::fOverMode {EOverlapMode::AllowOverlap}
private

Event building mode and detectors selection.

Switch ON/OFF filling of histograms

Definition at line 216 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

Referenced by CheckSeed(), and SetEventOverlapMode().

◆ fRefDet

◆ fT0DigiVec

const std::vector<CbmTofDigi>* CbmMcbm2019TimeWinEventBuilderAlgo::fT0DigiVec = nullptr
private

◆ fTimeSliceMetaDataArray

TClonesArray* CbmMcbm2019TimeWinEventBuilderAlgo::fTimeSliceMetaDataArray = nullptr
private

Definition at line 237 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

Referenced by InitAlgo(), and LoopOnSeeds().

◆ fuCurEv

UInt_t CbmMcbm2019TimeWinEventBuilderAlgo::fuCurEv = 0
private

histograms with the nb of digis in each detector per event vs seed time of the events

Internal state variables

Definition at line 272 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

Referenced by CheckSeed(), and ProcessTs().

◆ fuErrors

UInt_t CbmMcbm2019TimeWinEventBuilderAlgo::fuErrors = 0
private

Event Counter.

Definition at line 273 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

Referenced by Finish().

◆ fuNrTs

UInt_t CbmMcbm2019TimeWinEventBuilderAlgo::fuNrTs = 0
private

Error Counter.

Definition at line 274 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

Referenced by LoopOnSeeds(), and ProcessTs().

◆ fvDets

◆ fvhNbDigiPerEvtTimeDet

std::vector<TH2*> CbmMcbm2019TimeWinEventBuilderAlgo::fvhNbDigiPerEvtTimeDet
private
Initial value:
=
{}

histogram with the nb of all digis per event vs seed time of the events

Definition at line 268 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

Referenced by CreateHistograms(), FillHistos(), and ResetHistograms().

◆ fvpAllCanvasPointers

std::vector<std::pair<TCanvas*, std::string> > CbmMcbm2019TimeWinEventBuilderAlgo::fvpAllCanvasPointers
private

Vector of pointers to histograms + optional folder name.

Definition at line 259 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

Referenced by AddCanvasToVector(), and GetCanvasVector().

◆ fvpAllHistoPointers

std::vector<std::pair<TNamed*, std::string> > CbmMcbm2019TimeWinEventBuilderAlgo::fvpAllHistoPointers
private

vector with all created events

Monitoring histograms => Pointers should be filled with TH1*, TH2*, TProfile*, ... ==> To check if object N is of type T, use "T ObjectPointer = dynamic_cast<T>( fvpAllHistoPointers[N].first );" and check for nullptr ==> To get back the original class name use "fvpAllHistoPointers[N].first->ClassName()" which returns a const char * (e.g. "TH1I") ===> Usage example with feeding a THttpServer: ===> #include "TH2.h" ===> std::string sClassName = vHistos[ uHisto ].first.ClassName(); ===> if( !strncmp( sClassName, "TH1", 3 ) ) ===> server->Register( vHistos[ uHisto ].second.data(), dynamic_cast< TH1 * >(vHistos[ uHisto ].first) ); ===> else if( !strncmp( sClassName, "TH2", 3 ) ) ===> server->Register( vHistos[ uHisto ].second.data(), dynamic_cast< TH2 * >(vHistos[ uHisto ].first) );

Definition at line 257 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

Referenced by AddHistoToVector(), and GetHistoVector().

◆ kdDefaultTimeWinBeg

constexpr Double_t CbmMcbm2019TimeWinEventBuilderAlgo::kdDefaultTimeWinBeg = -100.0
staticconstexprprivate

Constants.

Definition at line 208 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

◆ kdDefaultTimeWinEnd

constexpr Double_t CbmMcbm2019TimeWinEventBuilderAlgo::kdDefaultTimeWinEnd = 100.0
staticconstexprprivate

Definition at line 209 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

◆ pTsMetaData

const TimesliceMetaData* CbmMcbm2019TimeWinEventBuilderAlgo::pTsMetaData = nullptr
private

Definition at line 238 of file CbmMcbm2019TimeWinEventBuilderAlgo.h.

Referenced by LoopOnSeeds().


The documentation for this class was generated from the following files:
ECbmDataType::kRichDigi
@ kRichDigi
ECbmDataType::kStsDigi
@ kStsDigi
ECbmModuleId::kT0
@ kT0
ToF start Detector.
ECbmDataType::kTofDigi
@ kTofDigi
ECbmModuleId::kTof
@ kTof
Time-of-flight Detector.
ECbmDataType::kT0Digi
@ kT0Digi
ECbmDataType::kPsdDigi
@ kPsdDigi
ECbmModuleId::kRich
@ kRich
Ring-Imaging Cherenkov Detector.
EventBuilderDetector
Definition: CbmMcbm2019TimeWinEventBuilderAlgo.h:37
ECbmDataType::kTrdDigi
@ kTrdDigi
ECbmModuleId::kTrd
@ kTrd
Transition Radiation Detector.
ECbmModuleId::kMuch
@ kMuch
Muon detection system.
ECbmModuleId::kPsd
@ kPsd
Projectile spectator detector.
ECbmModuleId::kSts
@ kSts
Silicon Tracking System.
ECbmDataType::kMuchDigi
@ kMuchDigi