CbmRoot
Loading...
Searching...
No Matches
CbmAlgoBuildRawEvents Class Reference

#include <CbmAlgoBuildRawEvents.h>

Collaboration diagram for CbmAlgoBuildRawEvents:
[legend]

Public Member Functions

 CbmAlgoBuildRawEvents ()=default
 
 CbmAlgoBuildRawEvents (const CbmAlgoBuildRawEvents &)=delete
 
CbmAlgoBuildRawEvents operator= (const CbmAlgoBuildRawEvents &)=delete
 
 ~CbmAlgoBuildRawEvents ()
 
Bool_t InitAlgo ()
 
void ProcessTs ()
 
void Finish ()
 
void SetFillHistos (Bool_t var)
 
void ResetHistograms (Bool_t bResetTime=kTRUE)
 
void SetTimings (Bool_t var)
 
void PrintTimings ()
 
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 (RawEventBuilderDetector refDetIn, std::vector< bool > select={})
 
void AddDetector (RawEventBuilderDetector selDet)
 
void RemoveDetector (RawEventBuilderDetector selDet)
 
void SetTriggerMinNumber (ECbmModuleId selDet, UInt_t uVal)
 
void SetTriggerMaxNumber (ECbmModuleId selDet, Int_t iVal)
 
void SetTriggerMinLayersNumber (ECbmModuleId selDet, UInt_t uVal)
 
void SetTriggerWindow (ECbmModuleId selDet, Double_t dWinBeg, Double_t dWinEnd)
 
void SetHistogramMaxDigiNb (ECbmModuleId selDet, Double_t dDigiNbMax)
 
void SetTsParameters (Double_t dTsStartTime, Double_t dTsLength, Double_t dTsOverLength)
 
void SetSeedTimeWindow (Double_t timeWinBeg, Double_t timeWinEnd)
 
void SetEventOverlapMode (EOverlapModeRaw mode)
 Control flags.
 
void SetIgnoreTsOverlap (Bool_t bFlagIn=kTRUE)
 
void ChangeMuchBeamtimeDigiFlag (Bool_t bFlagIn=kFALSE)
 
void AddHistoToVector (TNamed *pointer, std::string sFolder="")
 For monitor algos.
 
std::vector< std::pair< TNamed *, std::string > > GetHistoVector ()
 
void AddCanvasToVector (TCanvas *pointer, std::string sFolder="")
 
std::vector< std::pair< TCanvas *, std::string > > GetCanvasVector ()
 
void SetDigis (std::vector< CbmBmonDigi > *BmonDigis)
 Set digi containers.
 
void SetDigis (std::vector< CbmStsDigi > *StsDigis)
 
void SetDigis (std::vector< CbmMuchDigi > *MuchDigis)
 
void SetDigis (std::vector< CbmTrdDigi > *TrdDigis)
 
void SetDigis (std::vector< CbmTofDigi > *TofDigis)
 
void SetDigis (std::vector< CbmRichDigi > *RichDigis)
 
void SetDigis (std::vector< CbmPsdDigi > *PsdDigis)
 
void SetDigis (std::vector< CbmFsdDigi > *FsdDigis)
 
void SetDigis (std::vector< CbmMuchBeamTimeDigi > *MuchBeamTimeDigis)
 
void SetSeedTimes (std::vector< Double_t > *SeedTimes)
 
void SetTimeSliceMetaDataArray (TClonesArray *TimeSliceMetaDataArray)
 
TDirectoryFile * GetOutFolder ()
 
std::vector< CbmEvent * > & GetEventVector ()
 Data output access.
 
void ClearEventVector ()
 
template<>
const CbmStsDigiGetDigi (UInt_t uDigi)
 Specialization of the GetDigi variants has to happen before first usage.
 
template<>
const CbmMuchBeamTimeDigiGetDigi (UInt_t uDigi)
 
template<>
const CbmMuchDigiGetDigi (UInt_t uDigi)
 
template<>
const CbmTrdDigiGetDigi (UInt_t uDigi)
 
template<>
const CbmTofDigiGetDigi (UInt_t uDigi)
 
template<>
const CbmRichDigiGetDigi (UInt_t uDigi)
 
template<>
const CbmPsdDigiGetDigi (UInt_t uDigi)
 
template<>
const CbmFsdDigiGetDigi (UInt_t uDigi)
 
template<>
const CbmBmonDigiGetDigi (UInt_t uDigi)
 

Private Member Functions

Bool_t CheckDataAvailable (const RawEventBuilderDetector &det)
 Internal methods.
 
void InitTs ()
 
void InitSeedWindow ()
 
void BuildEvents ()
 
void CreateHistograms ()
 
void FillHistos ()
 
template<class DigiSeed >
void LoopOnSeeds ()
 
void CheckSeed (Double_t dSeedTime, UInt_t uSeedDigiIdx)
 
void CheckTriggerCondition (Double_t dSeedTime)
 
template<class DigiCheck >
void SearchMatches (Double_t dSeedTime, RawEventBuilderDetector &detMatch)
 
void SearchMatches (Double_t dSeedTime, RawEventBuilderDetector &detMatch)
 
void AddDigiToEvent (const RawEventBuilderDetector &det, Int_t uIdx)
 
Bool_t HasTrigger (CbmEvent *)
 
Bool_t CheckTriggerConditions (CbmEvent *event, const RawEventBuilderDetector &det)
 
void UpdateTimeWinBoundariesExtrema ()
 
void UpdateWidestTimeWinRange ()
 
void SwitchBmonStation (int id, bool on=true)
 
bool SetBmonEventTime (CbmEvent *event)
 
void CheckBmonInUse ()
 
bool filterBmon (int32_t add)
 Filter Bmon stations. Hack added for the mCBM2024 data (AB)
 
int32_t getNofFilteredBmonDigis (CbmEvent *ev)
 
bool CheckDataAvailable (ECbmModuleId detId)
 
UInt_t GetNofDigis (ECbmModuleId detId)
 
template<class Digi >
const Digi * GetDigi (UInt_t uDigi)
 
uint64_t GetSizeFromDigisNb (ECbmModuleId detId, uint64_t ulNbDigis)
 
Double_t GetSeedTimeWinRange ()
 
 ClassDefNV (CbmAlgoBuildRawEvents, 2)
 Save previous event last digi time information.
 
template<>
void LoopOnSeeds ()
 
template<>
void LoopOnSeeds ()
 

Private Attributes

TDirectoryFile * outFolder
 
Bool_t fbIgnoreTsOverlap = kFALSE
 
Bool_t fbFillHistos {kTRUE}
 Ignore data in Overlap part of the TS.
 
Bool_t fbUseMuchBeamtimeDigi = kTRUE
 Switch ON/OFF filling of histograms.
 
Bool_t fbGetTimings = kFALSE
 Switch between MUCH digi classes.
 
Bool_t fbUseTsMetaData = kTRUE
 Measure CPU time using stopwatch.
 
std::vector< bool > fUseBmonMap = {}
 Read Ts Parameters from input tree.
 
EOverlapModeRaw fOverMode {EOverlapModeRaw::AllowOverlap}
 bit map for Bmon trigger. Defined by user
 
TStopwatch * fTimer = nullptr
 
RawEventBuilderDetector fRefDet = kRawEventBuilderDetBmon
 is create when fbGetTimings is set before init
 
std::vector< RawEventBuilderDetectorfvDets
 
bool fbBmonInUse = false
 
Double_t fdEarliestTimeWinBeg = kdDefaultTimeWinBeg
 
Double_t fdLatestTimeWinEnd = kdDefaultTimeWinEnd
 
Double_t fdWidestTimeWinRange = kdDefaultTimeWinEnd - kdDefaultTimeWinBeg
 
Double_t fdSeedWindowBeg = 0
 Seed window.
 
Double_t fdSeedWindowEnd = 0
 
Double_t fdTsStartTime = -1
 
Double_t fdTsLength = -1
 
Double_t fdTsOverLength = -1
 
TClonesArray * fTimeSliceMetaDataArray = nullptr
 Data input.
 
const std::vector< CbmBmonDigi > * fBmonDigis = nullptr
 
const std::vector< CbmMuchDigi > * fMuchDigis = nullptr
 
const std::vector< CbmMuchBeamTimeDigi > * fMuchBeamTimeDigis = nullptr
 
const std::vector< CbmStsDigi > * fStsDigis = nullptr
 
const std::vector< CbmTrdDigi > * fTrdDigis = nullptr
 
const std::vector< CbmTofDigi > * fTofDigis = nullptr
 
const std::vector< CbmRichDigi > * fRichDigis = nullptr
 
const std::vector< CbmPsdDigi > * fPsdDigis = nullptr
 
const std::vector< CbmFsdDigi > * fFsdDigis = nullptr
 
const std::vector< Double_t > * fSeedTimes = nullptr
 
Double_t fdSeedTimeWinBeg = -100.0
 
Double_t fdSeedTimeWinEnd = 100.0
 
CbmEventfCurrentEvent = nullptr
 Data ouptut.
 
std::vector< CbmEvent * > fEventVector = {}
 pointer to the event which is currently build
 
std::vector< std::pair< TNamed *, std::string > > fvpAllHistoPointers
 vector with all created events
 
std::vector< std::pair< TCanvas *, std::string > > fvpAllCanvasPointers
 Vector of pointers to histograms + optional folder name.
 
TH1 * fhEventTime = nullptr
 Vector of pointers to canvases + optional folder name.
 
TH1 * fhEventDt = nullptr
 histogram with the seed time of the events
 
TH1 * fhEventSize = nullptr
 histogram with the interval in seed time of consecutive events
 
TH2 * fhNbDigiPerEvtTime = nullptr
 histogram with the nb of all digis in the event
 
TH1 * fhCpuTimePerTs = nullptr
 histogram with the nb of all digis per event vs seed time of the events
 
TH1 * fhRealTimePerTs = nullptr
 Processing time per TS.
 
TH1 * fhCpuTimePerTsHist = nullptr
 Processing time per TS.
 
TH1 * fhRealTimePerTsHist = nullptr
 Plotting time per TS.
 
std::vector< TH2 * > fvhNbDigiPerEvtTimeDet
 Plotting time per TS.
 
std::vector< TH1 * > fvhNbDigiPerEvtDet = {}
 histograms with the nb of digis in each detector per event vs seed time of the events
 
std::vector< TH1 * > fvhTDiff = {}
 histograms with the nb of digis in each detector per event
 
std::vector< TH1 * > fvhSelRatioPerTsNb = {}
 
std::vector< TH1 * > fvhInpRatioPerTsSz = {}
 ratio of selected/input digi vs TS in run
 
std::vector< TH1 * > fvhOutRatioPerTsSz = {}
 ratio of input digi size in total input size vs TS in run
 
TH1 * fhSizeReductionPerTs = nullptr
 ratio of selected digi size in total event size vs TS in run
 
TH1 * fhOverEventShare = nullptr
 ratio of total selected size to input size selected vs TS in run
 
TProfile * fhOverEventShareTs = nullptr
 histogram with proportion of overlap evt, AllowOverlap only
 
TH2 * fhOverEventSizeTs = nullptr
 histogram with proportion of overlap evt vs TS index, AllowOverlap only
 
UInt_t fuCurEv = 0
 histogram with size of overlap between evt vs TS index, AllowOverlap only
 
UInt_t fuNrTs = 0
 Event Counter.
 
Double_t fdPrevEvtTime = 0.
 Timeslice Counter.
 
Double_t fdPrevEvtEndTime = 0.
 Save previous time information.
 

Static Private Attributes

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

Detailed Description

Definition at line 123 of file CbmAlgoBuildRawEvents.h.

Constructor & Destructor Documentation

◆ CbmAlgoBuildRawEvents() [1/2]

CbmAlgoBuildRawEvents::CbmAlgoBuildRawEvents ( )
default

Default constructor

◆ CbmAlgoBuildRawEvents() [2/2]

CbmAlgoBuildRawEvents::CbmAlgoBuildRawEvents ( const CbmAlgoBuildRawEvents & )
delete

◆ ~CbmAlgoBuildRawEvents()

CbmAlgoBuildRawEvents::~CbmAlgoBuildRawEvents ( )
inline

Destructor

Definition at line 132 of file CbmAlgoBuildRawEvents.h.

Member Function Documentation

◆ AddCanvasToVector()

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

Definition at line 193 of file CbmAlgoBuildRawEvents.h.

References fvpAllCanvasPointers.

Referenced by CreateHistograms().

◆ AddDetector() [1/2]

void CbmAlgoBuildRawEvents::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 1672 of file CbmAlgoBuildRawEvents.cxx.

References AddDetector().

Referenced by AddDetector(), CbmTaskBuildRawEvents::AddDetector(), CbmDeviceBuildDigiEvents::InitTask(), and CbmDeviceBuildRawEvents::InitTask().

◆ AddDetector() [2/2]

void CbmAlgoBuildRawEvents::AddDetector ( RawEventBuilderDetector 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

Detect usage of BMon to set Event StartTime

Definition at line 1738 of file CbmAlgoBuildRawEvents.cxx.

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

◆ AddDigiToEvent()

void CbmAlgoBuildRawEvents::AddDigiToEvent ( const RawEventBuilderDetector & det,
Int_t uIdx )
private

◆ AddHistoToVector()

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

For monitor algos.

Definition at line 188 of file CbmAlgoBuildRawEvents.h.

References fvpAllHistoPointers.

Referenced by CreateHistograms().

◆ BuildEvents()

void CbmAlgoBuildRawEvents::BuildEvents ( )
private

Call LoopOnSeed with proper template argument

Definition at line 239 of file CbmAlgoBuildRawEvents.cxx.

References RawEventBuilderDetector::detId, fbUseMuchBeamtimeDigi, fRefDet, kBmon, kFsd, kMuch, kNotExist, kPsd, kRich, kSts, kTof, kTrd, kTrd2d, LoopOnSeeds(), and RawEventBuilderDetector::sName.

Referenced by ProcessTs().

◆ ChangeMuchBeamtimeDigiFlag()

void CbmAlgoBuildRawEvents::ChangeMuchBeamtimeDigiFlag ( Bool_t bFlagIn = kFALSE)
inline

◆ CheckBmonInUse()

void CbmAlgoBuildRawEvents::CheckBmonInUse ( )
private

◆ CheckDataAvailable() [1/2]

Bool_t CbmAlgoBuildRawEvents::CheckDataAvailable ( const RawEventBuilderDetector & det)
private

◆ CheckDataAvailable() [2/2]

bool CbmAlgoBuildRawEvents::CheckDataAvailable ( ECbmModuleId detId)
private

◆ CheckSeed()

void CbmAlgoBuildRawEvents::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 ?

Bmon used either as Seed or selected detector

Bmon used either as Seed or selected detector

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

Check if this reference detector passes the trigger conditions to "exit early" then check for each detectors if it also passes => Replaces the call to CheckTriggerCondition after a complete loop

Search for matches for each detector in selection list

Check if this det pass the trigger conditions to "exit early"

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...

delete does NOT set a pointer to nullptr...

Definition at line 357 of file CbmAlgoBuildRawEvents.cxx.

References AddDigiToEvent(), AllowOverlap, CheckTriggerConditions(), RawEventBuilderDetector::detId, fbBmonInUse, fCurrentEvent, fdPrevEvtEndTime, fdPrevEvtTime, RawEventBuilderDetector::fdTimeWinBeg, RawEventBuilderDetector::fdTimeWinEnd, fdWidestTimeWinRange, fEventVector, fOverMode, fRefDet, fuCurEv, RawEventBuilderDetector::fuEndIndex, RawEventBuilderDetector::fuStartIndex, fvDets, GetSeedTimeWinRange(), kNotExist, MergeOverlap, NoOverlap, SearchMatches(), SetBmonEventTime(), and CbmEvent::SetEndTime().

Referenced by LoopOnSeeds().

◆ CheckTriggerCondition()

void CbmAlgoBuildRawEvents::CheckTriggerCondition ( Double_t dSeedTime)
private

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 671 of file CbmAlgoBuildRawEvents.cxx.

References RawEventBuilderDetector::detId, fCurrentEvent, fdPrevEvtTime, fOverMode, fRefDet, RawEventBuilderDetector::fuEndIndex, RawEventBuilderDetector::fuStartIndex, fvDets, HasTrigger(), kNotExist, MergeOverlap, and NoOverlap.

◆ CheckTriggerConditions()

Bool_t CbmAlgoBuildRawEvents::CheckTriggerConditions ( CbmEvent * event,
const RawEventBuilderDetector & det )
private

Check if both Trigger conditions disabled for this detector

Check if detector present

Check trigger rejection by minimal/maximal number or absence, if enabled/requested

a.Check trigger rejection by minimal number (if enabled)

b.Check trigger rejection by maximal number (if enabled)

Check trigger rejection by minimal number of fired layers (if enabled)

check for requested number of different stations loop over sts digis and check for

Module full address

Station index: station = unit in the mCBM addresses ?!?

Found other side => non-zero cluster chance, insert into stations set

check for requested number of different counters loop over tof digis and count different RPCs

Found other end => full strip, insert into counter set

All checks passed, event is good

Definition at line 743 of file CbmAlgoBuildRawEvents.cxx.

References CheckDataAvailable(), RawEventBuilderDetector::dataType, RawEventBuilderDetector::detId, RawEventBuilderDetector::fiTriggerMaxDigis, RawEventBuilderDetector::fuTriggerMinDigis, RawEventBuilderDetector::fuTriggerMinLayers, CbmStsDigi::GetAddress(), CbmTofDigi::GetAddress(), CbmStsDigi::GetChannel(), GetDigi(), CbmStsAddress::GetElementId(), CbmStsAddress::GetMotherAddress(), getNofFilteredBmonDigis(), CbmTofAddress::GetRpcFullId(), CbmTofDigi::GetSide(), CbmTofAddress::GetStripFullId(), kBmon, kFsd, kMuch, kPsd, kRich, kSts, kStsModule, kStsUnit, kTof, kTrd, kTrd2d, and RawEventBuilderDetector::sName.

Referenced by CheckSeed(), and HasTrigger().

◆ ClassDefNV()

CbmAlgoBuildRawEvents::ClassDefNV ( CbmAlgoBuildRawEvents ,
2  )
private

Save previous event last digi time information.

◆ ClearEventVector()

void CbmAlgoBuildRawEvents::ClearEventVector ( )

Need to delete the object the pointer points to first

Definition at line 119 of file CbmAlgoBuildRawEvents.cxx.

References counter, and fEventVector.

Referenced by CbmTaskBuildRawEvents::FillOutput(), CbmDeviceBuildDigiEvents::HandleData(), and CbmDeviceBuildRawEvents::HandleData().

◆ CreateHistograms()

◆ FillHistos()

void CbmAlgoBuildRawEvents::FillHistos ( )
private

I/O monitoring

Output monitoring

First event cannot be in overlap

Loop on selection detectors

Reference detector

Re-Loop on selection detectors due to detectors with same data type

Selection ratio

Selection ratio

Same for the reference detector

Selection ratio

Selection ratio

Loop on selection detectors to count input data

Skip as cannot be distinguished from TR1D wihout looping on digis itselves. => Same is done for output share (combination in single number for 1D & 2D) in order to keep things consistent

Re-Loop on selection detectors to fill global TS ratios

Same for the reference detector

Global value for all detectors

Definition at line 1321 of file CbmAlgoBuildRawEvents.cxx.

References AllowOverlap, RawEventBuilderDetector::dataType, RawEventBuilderDetector::detId, fbUseMuchBeamtimeDigi, fdWidestTimeWinRange, fEventVector, fhEventDt, fhEventSize, fhEventTime, fhNbDigiPerEvtTime, fhOverEventShare, fhOverEventShareTs, fhOverEventSizeTs, fhSizeReductionPerTs, fOverMode, fRefDet, fuNrTs, fvDets, fvhInpRatioPerTsSz, fvhNbDigiPerEvtDet, fvhNbDigiPerEvtTimeDet, fvhOutRatioPerTsSz, fvhSelRatioPerTsNb, fvhTDiff, GetDigi(), GetNofDigis(), GetSizeFromDigisNb(), kBmonDigi, CbmTrdDigi::kFASP, kFsdDigi, kMuchDigi, kNotExist, kPsdDigi, kRichDigi, CbmTrdDigi::kSPADIC, kStsDigi, kTofDigi, kTrdDigi, and RawEventBuilderDetector::sName.

Referenced by ProcessTs().

◆ filterBmon()

bool CbmAlgoBuildRawEvents::filterBmon ( int32_t add)
private

Filter Bmon stations. Hack added for the mCBM2024 data (AB)

Parameters
[in]addaddress of the Bmon digi
Returns
true if selected
See also
fuUseBmonMap, SelectBmonStations(), getNofFilteredDigis()

Definition at line 1961 of file CbmAlgoBuildRawEvents.cxx.

References fUseBmonMap, CbmTofAddress::GetChannelSide(), and CbmTofAddress::GetSmType().

Referenced by getNofFilteredBmonDigis(), LoopOnSeeds(), and SetBmonEventTime().

◆ Finish()

void CbmAlgoBuildRawEvents::Finish ( )

Finish called at the end of the run

Definition at line 100 of file CbmAlgoBuildRawEvents.cxx.

References fbGetTimings, and PrintTimings().

Referenced by CbmTaskBuildRawEvents::Finish().

◆ GetCanvasVector()

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

◆ GetDigi() [1/10]

template<>
const CbmStsDigi * CbmAlgoBuildRawEvents::GetDigi ( UInt_t uDigi)

Specialization of the GetDigi variants has to happen before first usage.

Definition at line 488 of file CbmAlgoBuildRawEvents.cxx.

◆ GetDigi() [2/10]

template<>
const CbmMuchBeamTimeDigi * CbmAlgoBuildRawEvents::GetDigi ( UInt_t uDigi)

Definition at line 493 of file CbmAlgoBuildRawEvents.cxx.

◆ GetDigi() [3/10]

template<>
const CbmMuchDigi * CbmAlgoBuildRawEvents::GetDigi ( UInt_t uDigi)

Definition at line 498 of file CbmAlgoBuildRawEvents.cxx.

◆ GetDigi() [4/10]

template<>
const CbmTrdDigi * CbmAlgoBuildRawEvents::GetDigi ( UInt_t uDigi)

Definition at line 503 of file CbmAlgoBuildRawEvents.cxx.

◆ GetDigi() [5/10]

template<>
const CbmTofDigi * CbmAlgoBuildRawEvents::GetDigi ( UInt_t uDigi)

Definition at line 508 of file CbmAlgoBuildRawEvents.cxx.

◆ GetDigi() [6/10]

template<>
const CbmRichDigi * CbmAlgoBuildRawEvents::GetDigi ( UInt_t uDigi)

Definition at line 513 of file CbmAlgoBuildRawEvents.cxx.

◆ GetDigi() [7/10]

template<>
const CbmPsdDigi * CbmAlgoBuildRawEvents::GetDigi ( UInt_t uDigi)

Definition at line 518 of file CbmAlgoBuildRawEvents.cxx.

◆ GetDigi() [8/10]

template<>
const CbmFsdDigi * CbmAlgoBuildRawEvents::GetDigi ( UInt_t uDigi)

Definition at line 523 of file CbmAlgoBuildRawEvents.cxx.

◆ GetDigi() [9/10]

template<>
const CbmBmonDigi * CbmAlgoBuildRawEvents::GetDigi ( UInt_t uDigi)

Definition at line 528 of file CbmAlgoBuildRawEvents.cxx.

◆ GetDigi() [10/10]

template<class Digi >
const Digi * CbmAlgoBuildRawEvents::GetDigi ( UInt_t uDigi)
private

◆ GetEventVector()

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

◆ GetHistoVector()

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

◆ GetNofDigis()

UInt_t CbmAlgoBuildRawEvents::GetNofDigis ( ECbmModuleId detId)
private

◆ getNofFilteredBmonDigis()

int32_t CbmAlgoBuildRawEvents::getNofFilteredBmonDigis ( CbmEvent * ev)
private

◆ GetOutFolder()

TDirectoryFile * CbmAlgoBuildRawEvents::GetOutFolder ( )
inline

Definition at line 227 of file CbmAlgoBuildRawEvents.h.

References outFolder.

Referenced by CbmTaskBuildRawEvents::SaveHistos().

◆ GetSeedTimeWinRange()

Double_t CbmAlgoBuildRawEvents::GetSeedTimeWinRange ( )
private

◆ GetSizeFromDigisNb()

uint64_t CbmAlgoBuildRawEvents::GetSizeFromDigisNb ( ECbmModuleId detId,
uint64_t ulNbDigis )
private

Definition at line 1009 of file CbmAlgoBuildRawEvents.cxx.

References fbUseMuchBeamtimeDigi, kBmon, kFsd, kMuch, kPsd, kRich, kSts, kTof, kTrd, and kTrd2d.

Referenced by FillHistos().

◆ HasTrigger()

Bool_t CbmAlgoBuildRawEvents::HasTrigger ( CbmEvent * event)
private

Check first reference detector

Loop on selection detectors

All Ok, trigger is there

Definition at line 698 of file CbmAlgoBuildRawEvents.cxx.

References CheckTriggerConditions(), RawEventBuilderDetector::detId, fRefDet, fvDets, and kNotExist.

Referenced by CheckTriggerCondition().

◆ InitAlgo()

Bool_t CbmAlgoBuildRawEvents::InitAlgo ( )

Initiliazation at the beginning of a run

Check if reference detector is set and seed data are available, otherwise look for explicit seed times

Check if data for detectors in selection list are available

Access the TS metadata to know TS start time if needed

Definition at line 44 of file CbmAlgoBuildRawEvents.cxx.

References CheckDataAvailable(), CreateHistograms(), RawEventBuilderDetector::detId, fbFillHistos, fbGetTimings, fbUseTsMetaData, fRefDet, fSeedTimes, fTimer, fTimeSliceMetaDataArray, fvDets, and kNotExist.

Referenced by CbmTaskBuildRawEvents::Init(), CbmDeviceBuildDigiEvents::InitTask(), and CbmDeviceBuildRawEvents::InitTask().

◆ InitSeedWindow()

void CbmAlgoBuildRawEvents::InitSeedWindow ( )
private

Access the TS metadata if needed to know TS start time and overlap size

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

Definition at line 201 of file CbmAlgoBuildRawEvents.cxx.

References dTsStartTime, fbIgnoreTsOverlap, fbUseTsMetaData, fdEarliestTimeWinBeg, fdLatestTimeWinEnd, fdSeedWindowBeg, fdSeedWindowEnd, fdTsLength, fdTsOverLength, fdTsStartTime, fdWidestTimeWinRange, fTimeSliceMetaDataArray, fuNrTs, TimesliceMetaData::GetOverlapDuration(), TimesliceMetaData::GetOverlapStartTime(), and TimesliceMetaData::GetStartTime().

Referenced by ProcessTs().

◆ InitTs()

void CbmAlgoBuildRawEvents::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 184 of file CbmAlgoBuildRawEvents.cxx.

References RawEventBuilderDetector::detId, fRefDet, fuCurEv, RawEventBuilderDetector::fuEndIndex, RawEventBuilderDetector::fuStartIndex, fvDets, and kNotExist.

Referenced by ProcessTs().

◆ LoopOnSeeds() [1/3]

template<>
void CbmAlgoBuildRawEvents::LoopOnSeeds ( )
private

◆ LoopOnSeeds() [2/3]

template<>
void CbmAlgoBuildRawEvents::LoopOnSeeds ( )
private

Loop on size of vector

Check if seed in acceptance window (is this needed here?)

Check Seed and build event if needed

Definition at line 294 of file CbmAlgoBuildRawEvents.cxx.

References CheckSeed(), RawEventBuilderDetector::detId, fdSeedWindowBeg, fdSeedWindowEnd, fRefDet, fSeedTimes, and kNotExist.

◆ LoopOnSeeds() [3/3]

template<class DigiSeed >
void CbmAlgoBuildRawEvents::LoopOnSeeds ( )
private

Loop on size of vector

Check if seed in acceptance window

Check Seed and build event if needed

Definition at line 321 of file CbmAlgoBuildRawEvents.cxx.

References CheckSeed(), RawEventBuilderDetector::detId, fdSeedWindowBeg, fdSeedWindowEnd, filterBmon(), fRefDet, GetDigi(), GetNofDigis(), and kBmon.

Referenced by BuildEvents().

◆ operator=()

CbmAlgoBuildRawEvents CbmAlgoBuildRawEvents::operator= ( const CbmAlgoBuildRawEvents & )
delete

◆ PrintTimings()

void CbmAlgoBuildRawEvents::PrintTimings ( )

Definition at line 107 of file CbmAlgoBuildRawEvents.cxx.

References fTimer.

Referenced by Finish().

◆ ProcessTs()

void CbmAlgoBuildRawEvents::ProcessTs ( )

Executed for each TS.

Store last event with trigger if not done by other seed

TODO: store start time of current event ?

Bmon used either as Seed or selected detector

Prevent building over TS edge

Definition at line 131 of file CbmAlgoBuildRawEvents.cxx.

References BuildEvents(), fbBmonInUse, fbFillHistos, fCurrentEvent, fdPrevEvtEndTime, fEventVector, fhCpuTimePerTs, fhCpuTimePerTsHist, fhRealTimePerTs, fhRealTimePerTsHist, FillHistos(), fTimer, fuCurEv, fuNrTs, InitSeedWindow(), InitTs(), SetBmonEventTime(), and CbmEvent::SetEndTime().

Referenced by CbmTaskBuildRawEvents::BuildEvents(), CbmDeviceBuildDigiEvents::HandleData(), and CbmDeviceBuildRawEvents::HandleData().

◆ RemoveDetector()

void CbmAlgoBuildRawEvents::RemoveDetector ( RawEventBuilderDetector selDet)

Loop on selection detectors

Detect usage of BMon to set Event StartTime

Definition at line 1767 of file CbmAlgoBuildRawEvents.cxx.

References CheckBmonInUse(), fvDets, and RawEventBuilderDetector::sName.

Referenced by CbmDeviceBuildDigiEvents::InitTask(), CbmDeviceBuildRawEvents::InitTask(), CbmTaskBuildRawEvents::RemoveDetector(), and SetReferenceDetector().

◆ ResetHistograms()

void CbmAlgoBuildRawEvents::ResetHistograms ( Bool_t bResetTime = kTRUE)

◆ SearchMatches() [1/2]

template<class DigiCheck >
void CbmAlgoBuildRawEvents::SearchMatches ( Double_t dSeedTime,
RawEventBuilderDetector & 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

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 587 of file CbmAlgoBuildRawEvents.cxx.

References AddDigiToEvent(), RawEventBuilderDetector::detId, fdPrevEvtEndTime, RawEventBuilderDetector::fdTimeWinBeg, RawEventBuilderDetector::fdTimeWinEnd, RawEventBuilderDetector::fuEndIndex, RawEventBuilderDetector::fuStartIndex, GetDigi(), GetNofDigis(), CbmTrdDigi::GetType(), CbmTrdDigi::kFASP, CbmTrdDigi::kSPADIC, kTrd, kTrd2d, and RawEventBuilderDetector::sName.

Referenced by CheckSeed(), and SearchMatches().

◆ SearchMatches() [2/2]

void CbmAlgoBuildRawEvents::SearchMatches ( Double_t dSeedTime,
RawEventBuilderDetector & detMatch )
private

◆ SetBmonEventTime()

bool CbmAlgoBuildRawEvents::SetBmonEventTime ( CbmEvent * event)
private

◆ SetDigis() [1/9]

void CbmAlgoBuildRawEvents::SetDigis ( std::vector< CbmBmonDigi > * BmonDigis)
inline

◆ SetDigis() [2/9]

void CbmAlgoBuildRawEvents::SetDigis ( std::vector< CbmFsdDigi > * FsdDigis)
inline

Definition at line 211 of file CbmAlgoBuildRawEvents.h.

References fFsdDigis.

◆ SetDigis() [3/9]

void CbmAlgoBuildRawEvents::SetDigis ( std::vector< CbmMuchBeamTimeDigi > * MuchBeamTimeDigis)
inline

Definition at line 212 of file CbmAlgoBuildRawEvents.h.

References fbUseMuchBeamtimeDigi, and fMuchBeamTimeDigis.

◆ SetDigis() [4/9]

void CbmAlgoBuildRawEvents::SetDigis ( std::vector< CbmMuchDigi > * MuchDigis)
inline

Definition at line 202 of file CbmAlgoBuildRawEvents.h.

References fbUseMuchBeamtimeDigi, and fMuchDigis.

◆ SetDigis() [5/9]

void CbmAlgoBuildRawEvents::SetDigis ( std::vector< CbmPsdDigi > * PsdDigis)
inline

Definition at line 210 of file CbmAlgoBuildRawEvents.h.

References fPsdDigis.

◆ SetDigis() [6/9]

void CbmAlgoBuildRawEvents::SetDigis ( std::vector< CbmRichDigi > * RichDigis)
inline

Definition at line 209 of file CbmAlgoBuildRawEvents.h.

References fRichDigis.

◆ SetDigis() [7/9]

void CbmAlgoBuildRawEvents::SetDigis ( std::vector< CbmStsDigi > * StsDigis)
inline

Definition at line 201 of file CbmAlgoBuildRawEvents.h.

References fStsDigis.

◆ SetDigis() [8/9]

void CbmAlgoBuildRawEvents::SetDigis ( std::vector< CbmTofDigi > * TofDigis)
inline

Definition at line 208 of file CbmAlgoBuildRawEvents.h.

References fTofDigis.

◆ SetDigis() [9/9]

void CbmAlgoBuildRawEvents::SetDigis ( std::vector< CbmTrdDigi > * TrdDigis)
inline

Definition at line 207 of file CbmAlgoBuildRawEvents.h.

References fTrdDigis.

◆ SetEventOverlapMode()

void CbmAlgoBuildRawEvents::SetEventOverlapMode ( EOverlapModeRaw mode)
inline

◆ SetFillHistos()

void CbmAlgoBuildRawEvents::SetFillHistos ( Bool_t var)
inline

◆ SetHistogramMaxDigiNb()

void CbmAlgoBuildRawEvents::SetHistogramMaxDigiNb ( ECbmModuleId selDet,
Double_t dDigiNbMax )

◆ SetIgnoreTsOverlap()

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

◆ SetReferenceDetector() [1/2]

void CbmAlgoBuildRawEvents::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 1664 of file CbmAlgoBuildRawEvents.cxx.

References SetReferenceDetector().

Referenced by CbmDeviceBuildDigiEvents::InitTask(), CbmDeviceBuildRawEvents::InitTask(), and SetReferenceDetector().

◆ SetReferenceDetector() [2/2]

void CbmAlgoBuildRawEvents::SetReferenceDetector ( RawEventBuilderDetector refDetIn,
std::vector< bool > select = {} )

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

Detect usage of BMon to set Event StartTime

Definition at line 1681 of file CbmAlgoBuildRawEvents.cxx.

References CheckBmonInUse(), fbBmonInUse, fRefDet, fUseBmonMap, fvDets, RemoveDetector(), RawEventBuilderDetector::sName, SwitchBmonStation(), UpdateTimeWinBoundariesExtrema(), and UpdateWidestTimeWinRange().

◆ SetSeedTimes()

void CbmAlgoBuildRawEvents::SetSeedTimes ( std::vector< Double_t > * SeedTimes)
inline

◆ SetSeedTimeWindow()

void CbmAlgoBuildRawEvents::SetSeedTimeWindow ( Double_t timeWinBeg,
Double_t timeWinEnd )
inline

◆ SetTimeSliceMetaDataArray()

void CbmAlgoBuildRawEvents::SetTimeSliceMetaDataArray ( TClonesArray * TimeSliceMetaDataArray)
inline

◆ SetTimings()

void CbmAlgoBuildRawEvents::SetTimings ( Bool_t var)
inline

stopwatch timing

Definition at line 147 of file CbmAlgoBuildRawEvents.h.

References fbGetTimings.

Referenced by CbmTaskBuildRawEvents::SetTimings().

◆ SetTriggerMaxNumber()

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

◆ SetTriggerMinLayersNumber()

void CbmAlgoBuildRawEvents::SetTriggerMinLayersNumber ( ECbmModuleId selDet,
UInt_t uVal )

◆ SetTriggerMinNumber()

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

◆ SetTriggerWindow()

void CbmAlgoBuildRawEvents::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 1860 of file CbmAlgoBuildRawEvents.cxx.

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

Referenced by CbmDeviceBuildDigiEvents::InitTask(), CbmDeviceBuildRawEvents::InitTask(), and CbmTaskBuildRawEvents::SetTriggerWindow().

◆ SetTsParameters()

void CbmAlgoBuildRawEvents::SetTsParameters ( Double_t dTsStartTime,
Double_t dTsLength,
Double_t dTsOverLength )
inline

◆ SwitchBmonStation()

void CbmAlgoBuildRawEvents::SwitchBmonStation ( int id,
bool on = true )
private

Definition at line 1950 of file CbmAlgoBuildRawEvents.cxx.

References fUseBmonMap.

Referenced by SetReferenceDetector().

◆ UpdateTimeWinBoundariesExtrema()

void CbmAlgoBuildRawEvents::UpdateTimeWinBoundariesExtrema ( )
private

◆ UpdateWidestTimeWinRange()

void CbmAlgoBuildRawEvents::UpdateWidestTimeWinRange ( )
private

Initialize with reference detector

Loop on selection detectors

Definition at line 1939 of file CbmAlgoBuildRawEvents.cxx.

References fdWidestTimeWinRange, fvDets, and GetSeedTimeWinRange().

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

Member Data Documentation

◆ fbBmonInUse

bool CbmAlgoBuildRawEvents::fbBmonInUse = false
private

◆ fbFillHistos

Bool_t CbmAlgoBuildRawEvents::fbFillHistos {kTRUE}
private

Ignore data in Overlap part of the TS.

Definition at line 280 of file CbmAlgoBuildRawEvents.h.

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

◆ fbGetTimings

Bool_t CbmAlgoBuildRawEvents::fbGetTimings = kFALSE
private

Switch between MUCH digi classes.

Definition at line 282 of file CbmAlgoBuildRawEvents.h.

Referenced by Finish(), InitAlgo(), and SetTimings().

◆ fbIgnoreTsOverlap

Bool_t CbmAlgoBuildRawEvents::fbIgnoreTsOverlap = kFALSE
private

User parameters Control flags

Definition at line 279 of file CbmAlgoBuildRawEvents.h.

Referenced by InitSeedWindow(), and SetIgnoreTsOverlap().

◆ fBmonDigis

const std::vector<CbmBmonDigi>* CbmAlgoBuildRawEvents::fBmonDigis = nullptr
private

Definition at line 311 of file CbmAlgoBuildRawEvents.h.

Referenced by CheckDataAvailable(), GetNofDigis(), and SetDigis().

◆ fbUseMuchBeamtimeDigi

Bool_t CbmAlgoBuildRawEvents::fbUseMuchBeamtimeDigi = kTRUE
private

◆ fbUseTsMetaData

Bool_t CbmAlgoBuildRawEvents::fbUseTsMetaData = kTRUE
private

Measure CPU time using stopwatch.

Definition at line 283 of file CbmAlgoBuildRawEvents.h.

Referenced by InitAlgo(), InitSeedWindow(), and SetTsParameters().

◆ fCurrentEvent

CbmEvent* CbmAlgoBuildRawEvents::fCurrentEvent = nullptr
private

Data ouptut.

Definition at line 335 of file CbmAlgoBuildRawEvents.h.

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

◆ fdEarliestTimeWinBeg

Double_t CbmAlgoBuildRawEvents::fdEarliestTimeWinBeg = kdDefaultTimeWinBeg
private

Definition at line 297 of file CbmAlgoBuildRawEvents.h.

Referenced by InitSeedWindow(), and UpdateTimeWinBoundariesExtrema().

◆ fdLatestTimeWinEnd

Double_t CbmAlgoBuildRawEvents::fdLatestTimeWinEnd = kdDefaultTimeWinEnd
private

Definition at line 298 of file CbmAlgoBuildRawEvents.h.

Referenced by InitSeedWindow(), and UpdateTimeWinBoundariesExtrema().

◆ fdPrevEvtEndTime

Double_t CbmAlgoBuildRawEvents::fdPrevEvtEndTime = 0.
private

Save previous time information.

Definition at line 382 of file CbmAlgoBuildRawEvents.h.

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

◆ fdPrevEvtTime

Double_t CbmAlgoBuildRawEvents::fdPrevEvtTime = 0.
private

Timeslice Counter.

Definition at line 381 of file CbmAlgoBuildRawEvents.h.

Referenced by CheckSeed(), and CheckTriggerCondition().

◆ fdSeedTimeWinBeg

Double_t CbmAlgoBuildRawEvents::fdSeedTimeWinBeg = -100.0
private

◆ fdSeedTimeWinEnd

Double_t CbmAlgoBuildRawEvents::fdSeedTimeWinEnd = 100.0
private

◆ fdSeedWindowBeg

Double_t CbmAlgoBuildRawEvents::fdSeedWindowBeg = 0
private

Seed window.

Definition at line 301 of file CbmAlgoBuildRawEvents.h.

Referenced by InitSeedWindow(), and LoopOnSeeds().

◆ fdSeedWindowEnd

Double_t CbmAlgoBuildRawEvents::fdSeedWindowEnd = 0
private

Definition at line 302 of file CbmAlgoBuildRawEvents.h.

Referenced by InitSeedWindow(), and LoopOnSeeds().

◆ fdTsLength

Double_t CbmAlgoBuildRawEvents::fdTsLength = -1
private

Definition at line 305 of file CbmAlgoBuildRawEvents.h.

Referenced by InitSeedWindow(), and SetTsParameters().

◆ fdTsOverLength

Double_t CbmAlgoBuildRawEvents::fdTsOverLength = -1
private

Definition at line 306 of file CbmAlgoBuildRawEvents.h.

Referenced by InitSeedWindow(), and SetTsParameters().

◆ fdTsStartTime

Double_t CbmAlgoBuildRawEvents::fdTsStartTime = -1
private

Definition at line 304 of file CbmAlgoBuildRawEvents.h.

Referenced by InitSeedWindow(), and SetTsParameters().

◆ fdWidestTimeWinRange

Double_t CbmAlgoBuildRawEvents::fdWidestTimeWinRange = kdDefaultTimeWinEnd - kdDefaultTimeWinBeg
private

◆ fEventVector

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

pointer to the event which is currently build

Definition at line 336 of file CbmAlgoBuildRawEvents.h.

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

◆ fFsdDigis

const std::vector<CbmFsdDigi>* CbmAlgoBuildRawEvents::fFsdDigis = nullptr
private

Definition at line 319 of file CbmAlgoBuildRawEvents.h.

Referenced by CheckDataAvailable(), GetNofDigis(), and SetDigis().

◆ fhCpuTimePerTs

TH1* CbmAlgoBuildRawEvents::fhCpuTimePerTs = nullptr
private

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

Definition at line 358 of file CbmAlgoBuildRawEvents.h.

Referenced by CreateHistograms(), and ProcessTs().

◆ fhCpuTimePerTsHist

TH1* CbmAlgoBuildRawEvents::fhCpuTimePerTsHist = nullptr
private

Processing time per TS.

Definition at line 361 of file CbmAlgoBuildRawEvents.h.

Referenced by CreateHistograms(), and ProcessTs().

◆ fhEventDt

TH1* CbmAlgoBuildRawEvents::fhEventDt = nullptr
private

histogram with the seed time of the events

Definition at line 355 of file CbmAlgoBuildRawEvents.h.

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

◆ fhEventSize

TH1* CbmAlgoBuildRawEvents::fhEventSize = nullptr
private

histogram with the interval in seed time of consecutive events

Definition at line 356 of file CbmAlgoBuildRawEvents.h.

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

◆ fhEventTime

TH1* CbmAlgoBuildRawEvents::fhEventTime = nullptr
private

Vector of pointers to canvases + optional folder name.

Definition at line 354 of file CbmAlgoBuildRawEvents.h.

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

◆ fhNbDigiPerEvtTime

TH2* CbmAlgoBuildRawEvents::fhNbDigiPerEvtTime = nullptr
private

histogram with the nb of all digis in the event

Definition at line 357 of file CbmAlgoBuildRawEvents.h.

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

◆ fhOverEventShare

TH1* CbmAlgoBuildRawEvents::fhOverEventShare = nullptr
private

ratio of total selected size to input size selected vs TS in run

Definition at line 374 of file CbmAlgoBuildRawEvents.h.

Referenced by CreateHistograms(), and FillHistos().

◆ fhOverEventShareTs

TProfile* CbmAlgoBuildRawEvents::fhOverEventShareTs = nullptr
private

histogram with proportion of overlap evt, AllowOverlap only

Definition at line 375 of file CbmAlgoBuildRawEvents.h.

Referenced by CreateHistograms(), and FillHistos().

◆ fhOverEventSizeTs

TH2* CbmAlgoBuildRawEvents::fhOverEventSizeTs = nullptr
private

histogram with proportion of overlap evt vs TS index, AllowOverlap only

Definition at line 376 of file CbmAlgoBuildRawEvents.h.

Referenced by CreateHistograms(), and FillHistos().

◆ fhRealTimePerTs

TH1* CbmAlgoBuildRawEvents::fhRealTimePerTs = nullptr
private

Processing time per TS.

Definition at line 359 of file CbmAlgoBuildRawEvents.h.

Referenced by CreateHistograms(), and ProcessTs().

◆ fhRealTimePerTsHist

TH1* CbmAlgoBuildRawEvents::fhRealTimePerTsHist = nullptr
private

Plotting time per TS.

Definition at line 362 of file CbmAlgoBuildRawEvents.h.

Referenced by CreateHistograms(), and ProcessTs().

◆ fhSizeReductionPerTs

TH1* CbmAlgoBuildRawEvents::fhSizeReductionPerTs = nullptr
private

ratio of selected digi size in total event size vs TS in run

Definition at line 372 of file CbmAlgoBuildRawEvents.h.

Referenced by CreateHistograms(), and FillHistos().

◆ fMuchBeamTimeDigis

const std::vector<CbmMuchBeamTimeDigi>* CbmAlgoBuildRawEvents::fMuchBeamTimeDigis = nullptr
private

Definition at line 313 of file CbmAlgoBuildRawEvents.h.

Referenced by CheckDataAvailable(), GetNofDigis(), and SetDigis().

◆ fMuchDigis

const std::vector<CbmMuchDigi>* CbmAlgoBuildRawEvents::fMuchDigis = nullptr
private

Definition at line 312 of file CbmAlgoBuildRawEvents.h.

Referenced by CheckDataAvailable(), GetNofDigis(), and SetDigis().

◆ fOverMode

EOverlapModeRaw CbmAlgoBuildRawEvents::fOverMode {EOverlapModeRaw::AllowOverlap}
private

bit map for Bmon trigger. Defined by user

Event building mode and detectors selection

Definition at line 287 of file CbmAlgoBuildRawEvents.h.

Referenced by CheckSeed(), CheckTriggerCondition(), CreateHistograms(), FillHistos(), and SetEventOverlapMode().

◆ fPsdDigis

const std::vector<CbmPsdDigi>* CbmAlgoBuildRawEvents::fPsdDigis = nullptr
private

Definition at line 318 of file CbmAlgoBuildRawEvents.h.

Referenced by CheckDataAvailable(), GetNofDigis(), and SetDigis().

◆ fRefDet

◆ fRichDigis

const std::vector<CbmRichDigi>* CbmAlgoBuildRawEvents::fRichDigis = nullptr
private

Definition at line 317 of file CbmAlgoBuildRawEvents.h.

Referenced by CheckDataAvailable(), GetNofDigis(), and SetDigis().

◆ fSeedTimes

const std::vector<Double_t>* CbmAlgoBuildRawEvents::fSeedTimes = nullptr
private

Definition at line 322 of file CbmAlgoBuildRawEvents.h.

Referenced by InitAlgo(), LoopOnSeeds(), and SetSeedTimes().

◆ fStsDigis

const std::vector<CbmStsDigi>* CbmAlgoBuildRawEvents::fStsDigis = nullptr
private

Definition at line 314 of file CbmAlgoBuildRawEvents.h.

Referenced by CheckDataAvailable(), GetNofDigis(), and SetDigis().

◆ fTimer

TStopwatch* CbmAlgoBuildRawEvents::fTimer = nullptr
private

Definition at line 289 of file CbmAlgoBuildRawEvents.h.

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

◆ fTimeSliceMetaDataArray

TClonesArray* CbmAlgoBuildRawEvents::fTimeSliceMetaDataArray = nullptr
private

Data input.

Definition at line 309 of file CbmAlgoBuildRawEvents.h.

Referenced by InitAlgo(), InitSeedWindow(), and SetTimeSliceMetaDataArray().

◆ fTofDigis

const std::vector<CbmTofDigi>* CbmAlgoBuildRawEvents::fTofDigis = nullptr
private

Definition at line 316 of file CbmAlgoBuildRawEvents.h.

Referenced by CheckDataAvailable(), GetNofDigis(), and SetDigis().

◆ fTrdDigis

const std::vector<CbmTrdDigi>* CbmAlgoBuildRawEvents::fTrdDigis = nullptr
private

Definition at line 315 of file CbmAlgoBuildRawEvents.h.

Referenced by CheckDataAvailable(), GetNofDigis(), and SetDigis().

◆ fuCurEv

UInt_t CbmAlgoBuildRawEvents::fuCurEv = 0
private

histogram with size of overlap between evt vs TS index, AllowOverlap only

Internal state variables

Definition at line 379 of file CbmAlgoBuildRawEvents.h.

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

◆ fuNrTs

UInt_t CbmAlgoBuildRawEvents::fuNrTs = 0
private

Event Counter.

Definition at line 380 of file CbmAlgoBuildRawEvents.h.

Referenced by FillHistos(), InitSeedWindow(), and ProcessTs().

◆ fUseBmonMap

std::vector<bool> CbmAlgoBuildRawEvents::fUseBmonMap = {}
private

Read Ts Parameters from input tree.

Definition at line 284 of file CbmAlgoBuildRawEvents.h.

Referenced by filterBmon(), getNofFilteredBmonDigis(), SetReferenceDetector(), and SwitchBmonStation().

◆ fvDets

std::vector<RawEventBuilderDetector> CbmAlgoBuildRawEvents::fvDets
private
Initial value:
= {
static const RawEventBuilderDetector kRawEventBuilderDetSts
Pre-defined detector types.
static const RawEventBuilderDetector kRawEventBuilderDetTrd2D
static const RawEventBuilderDetector kRawEventBuilderDetFsd
static const RawEventBuilderDetector kRawEventBuilderDetTrd
static const RawEventBuilderDetector kRawEventBuilderDetPsd
static const RawEventBuilderDetector kRawEventBuilderDetRich
static const RawEventBuilderDetector kRawEventBuilderDetTof
static const RawEventBuilderDetector kRawEventBuilderDetMuch

Definition at line 292 of file CbmAlgoBuildRawEvents.h.

Referenced by AddDetector(), CheckBmonInUse(), CheckSeed(), CheckTriggerCondition(), CreateHistograms(), FillHistos(), HasTrigger(), InitAlgo(), InitTs(), RemoveDetector(), SetHistogramMaxDigiNb(), SetReferenceDetector(), SetTriggerMaxNumber(), SetTriggerMinLayersNumber(), SetTriggerMinNumber(), SetTriggerWindow(), UpdateTimeWinBoundariesExtrema(), and UpdateWidestTimeWinRange().

◆ fvhInpRatioPerTsSz

std::vector<TH1*> CbmAlgoBuildRawEvents::fvhInpRatioPerTsSz = {}
private

ratio of selected/input digi vs TS in run

Definition at line 370 of file CbmAlgoBuildRawEvents.h.

Referenced by CreateHistograms(), and FillHistos().

◆ fvhNbDigiPerEvtDet

std::vector<TH1*> CbmAlgoBuildRawEvents::fvhNbDigiPerEvtDet = {}
private

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

Definition at line 366 of file CbmAlgoBuildRawEvents.h.

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

◆ fvhNbDigiPerEvtTimeDet

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

Plotting time per TS.

Definition at line 364 of file CbmAlgoBuildRawEvents.h.

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

◆ fvhOutRatioPerTsSz

std::vector<TH1*> CbmAlgoBuildRawEvents::fvhOutRatioPerTsSz = {}
private

ratio of input digi size in total input size vs TS in run

Definition at line 371 of file CbmAlgoBuildRawEvents.h.

Referenced by CreateHistograms(), and FillHistos().

◆ fvhSelRatioPerTsNb

std::vector<TH1*> CbmAlgoBuildRawEvents::fvhSelRatioPerTsNb = {}
private

Definition at line 369 of file CbmAlgoBuildRawEvents.h.

Referenced by CreateHistograms(), and FillHistos().

◆ fvhTDiff

std::vector<TH1*> CbmAlgoBuildRawEvents::fvhTDiff = {}
private

histograms with the nb of digis in each detector per event

Definition at line 367 of file CbmAlgoBuildRawEvents.h.

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

◆ fvpAllCanvasPointers

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

Vector of pointers to histograms + optional folder name.

Definition at line 352 of file CbmAlgoBuildRawEvents.h.

Referenced by AddCanvasToVector(), and GetCanvasVector().

◆ fvpAllHistoPointers

std::vector<std::pair<TNamed*, std::string> > CbmAlgoBuildRawEvents::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 350 of file CbmAlgoBuildRawEvents.h.

Referenced by AddHistoToVector(), and GetHistoVector().

◆ kdDefaultTimeWinBeg

Double_t CbmAlgoBuildRawEvents::kdDefaultTimeWinBeg = -100.0
staticconstexprprivate

Constants.

Definition at line 274 of file CbmAlgoBuildRawEvents.h.

◆ kdDefaultTimeWinEnd

Double_t CbmAlgoBuildRawEvents::kdDefaultTimeWinEnd = 100.0
staticconstexprprivate

Definition at line 275 of file CbmAlgoBuildRawEvents.h.

◆ outFolder

TDirectoryFile* CbmAlgoBuildRawEvents::outFolder
private

Definition at line 271 of file CbmAlgoBuildRawEvents.h.

Referenced by CreateHistograms(), and GetOutFolder().


The documentation for this class was generated from the following files: