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

#include <CbmDeviceDigiEventSink.h>

Inheritance diagram for CbmDeviceDigiEventSink:
[legend]
Collaboration diagram for CbmDeviceDigiEventSink:
[legend]

Public Member Functions

 CbmDeviceDigiEventSink ()
 
virtual ~CbmDeviceDigiEventSink ()
 

Protected Member Functions

virtual void InitTask ()
 
bool HandleMissTsData (FairMQMessagePtr &, int)
 
bool HandleData (FairMQParts &, int)
 
bool HandleCommand (FairMQMessagePtr &, int)
 
virtual void PostRun ()
 

Private Member Functions

bool IsChannelNameAllowed (std::string channelName)
 Internal methods.
 
bool InitHistograms ()
 
bool ResetHistograms (bool bResetStartTime=false)
 
void CheckTsQueues ()
 
void PrepareTreeEntry (CbmEventTimeslice unpTs)
 
void DumpTreeEntry ()
 
bool SendHistoConfAndData ()
 
bool SendHistograms ()
 
void Finish ()
 

Private Attributes

bool fbStoreFullTs = false
 Constants.
 
bool fbBypassConsecutiveTs = false
 If true, store digis vectors with full TS in addition to selected events.
 
bool fbWriteMissingTs = false
 Switch ON/OFF the bypass of the consecutive TS buffer before writing to file.
 
bool fbDisableCompression = false
 Switch ON/OFF writing of empty TS to file for the missing ones (if no bypass)
 
bool fbDigiEventInput = false
 Switch ON/OFF the ROOT file compression.
 
bool fbExclusiveTrdExtract = true
 Switch ON/OFF the input of CbmDigiEvents instead of raw data + CbmEvents.
 
bool fbFillHistos = false
 Switch ON/OFF loop based extraction of TRD digis due to 1D/2D.
 
bool fbInitDone = false
 Switch ON/OFF filling of histograms.
 
bool fbFinishDone = false
 Keep track of whether the Init was already fully completed.
 
std::string fsOutputFileName = "mcbm_digis_events.root"
 Keep track of whether the Finish was already called.
 
std::string fsChannelNameMissedTs = "missedts"
 message queues
 
std::string fsChannelNameDataInput = "events"
 
std::string fsChannelNameCommands = "commands"
 
std::string fsChannelNameHistosInput = "histogram-in"
 
int64_t fiTreeFileMaxSize = 10000000000LL
 Output file/tree management.
 
uint32_t fuPublishFreqTs = 100
 Histograms management.
 
double_t fdMinPublishTime = 0.5
 
double_t fdMaxPublishTime = 5.0
 
std::string fsHistosSuffix = ""
 
std::vector< std::string > fsAllowedChannels = {fsChannelNameDataInput}
 List of MQ channels names.
 
uint64_t fuPrevTsIndex = 0
 Parameters management.
 
uint64_t fulNumMessages = 0
 
uint64_t fulTsCounter = 0
 
uint64_t fulMissedTsCounter = 0
 
uint64_t fulProcessedEvents = 0
 
uint64_t fulLastFullTsCounter = 0
 
uint64_t fulLastMissTsCounter = 0
 
uint64_t fulLastProcessedEvents = 0
 
std::chrono::system_clock::time_point fLastPublishTime = std::chrono::system_clock::now()
 
std::chrono::system_clock::time_point fLastFillTime = std::chrono::system_clock::now()
 
std::chrono::system_clock::time_point fStartTime = std::chrono::system_clock::now()
 
bool fbReceivedEof = false
 Control Commands reception.
 
uint64_t fuLastTsIndex = 0
 
uint64_t fuTotalTsCount = 0
 
CbmTsEventHeaderfEvtHeader = nullptr
 
TClonesArray * fTimeSliceMetaDataArray = nullptr
 TS MetaData storage.
 
std::vector< CbmDigiEvent > * fEventsSel = nullptr
 CbmEvents.
 
std::vector< CbmBmonDigi > * fvDigiBmon = nullptr
 Full TS Digis storage (optional usage, controlled by fbStoreFullTs!)
 
std::vector< CbmStsDigi > * fvDigiSts = nullptr
 
std::vector< CbmMuchDigi > * fvDigiMuch = nullptr
 
std::vector< CbmTrdDigi > * fvDigiTrd = nullptr
 
std::vector< CbmTofDigi > * fvDigiTof = nullptr
 
std::vector< CbmRichDigi > * fvDigiRich = nullptr
 
std::vector< CbmPsdDigi > * fvDigiPsd = nullptr
 
std::vector< uint64_t > fvulMissedTsIndices = {}
 
std::map< uint64_t, CbmEventTimeslicefmFullTsStorage = {}
 Buffered TS.
 
FairRunOnline * fpRun = nullptr
 Data storage.
 
FairRootManager * fpFairRootMgr = nullptr
 
TObjArray fArrayHisto = {}
 Array of histograms to send to the histogram server.
 
std::vector< std::pair< std::string, std::string > > fvpsHistosFolder = {}
 Vector of string pairs with ( HistoName, FolderPath ) to send to the histogram server.
 
std::vector< std::pair< std::string, std::string > > fvpsCanvasConfig = {}
 
bool fbConfigSent = false
 Flag indicating whether the histograms and canvases configurations were already published.
 
TProfile * fhFullTsBuffSizeEvo
 
TProfile * fhMissTsBuffSizeEvo
 
TH1 * fhFullTsProcEvo
 
TH1 * fhMissTsProcEvo
 
TH1 * fhTotalTsProcEvo
 
TH1 * fhTotalEventsEvo
 
TCanvas * fcEventSinkAllHist
 

Detailed Description

Definition at line 86 of file CbmDeviceDigiEventSink.h.

Constructor & Destructor Documentation

◆ CbmDeviceDigiEventSink()

CbmDeviceDigiEventSink::CbmDeviceDigiEventSink ( )

Definition at line 60 of file CbmDeviceDigiEventSink.cxx.

◆ ~CbmDeviceDigiEventSink()

CbmDeviceDigiEventSink::~CbmDeviceDigiEventSink ( )
virtual

FIXME: Add pointers check before delete

Close things properly if not already done

Clear events vector

Definition at line 774 of file CbmDeviceDigiEventSink.cxx.

References fbFinishDone, fbInitDone, fEventsSel, Finish(), and fpRun.

Member Function Documentation

◆ CheckTsQueues()

void CbmDeviceDigiEventSink::CheckTsQueues ( )
private

Check if the first TS in the full TS queue is the next one

Fill all storage variables registers for data output

Trigger FairRoot manager to dump Tree entry

Update counters

Increment iterator

Check if the first TS in the missed TS queue is the next one

Prepare entry with only dummy TS metadata and empty storage variables

Trigger FairRoot manager to dump Tree entry

Update counters

Increment iterator

Should be reached only if both queues at the end or hole found in both

Delete the processed entries

End of data: clean save of data + close file + send last state of histos if enabled

Definition at line 540 of file CbmDeviceDigiEventSink.cxx.

References DumpTreeEntry(), fbReceivedEof, fbWriteMissingTs, Finish(), fmFullTsStorage, fTimeSliceMetaDataArray, fuLastTsIndex, fulMissedTsCounter, fulTsCounter, fuPrevTsIndex, fuTotalTsCount, fvulMissedTsIndices, and PrepareTreeEntry().

Referenced by HandleData(), and HandleMissTsData().

◆ DumpTreeEntry()

void CbmDeviceDigiEventSink::DumpTreeEntry ( )
private

FairRunOnline style

Clear metadata array

Clear event vector

Full TS Digis storage (optional usage, controlled by fbStoreFullTs!)

Definition at line 644 of file CbmDeviceDigiEventSink.cxx.

References fbStoreFullTs, fEventsSel, fEvtHeader, fpFairRootMgr, fTimeSliceMetaDataArray, fvDigiBmon, fvDigiMuch, fvDigiPsd, fvDigiRich, fvDigiSts, fvDigiTof, and fvDigiTrd.

Referenced by CheckTsQueues(), and HandleData().

◆ Finish()

void CbmDeviceDigiEventSink::Finish ( )
private

Force state transitions only if not already done by ODC/DDS!

Definition at line 790 of file CbmDeviceDigiEventSink.cxx.

References fbFinishDone, fmFullTsStorage, fpFairRootMgr, fulMissedTsCounter, fulTsCounter, and fvulMissedTsIndices.

Referenced by CheckTsQueues(), HandleCommand(), HandleData(), and ~CbmDeviceDigiEventSink().

◆ HandleCommand()

bool CbmDeviceDigiEventSink::HandleCommand ( FairMQMessagePtr & msg,
int  )
protected

Extract the last TS index and global full TS count

Last TS index

Total TS count

End of data: clean save of data + close file + send last state of histos if enabled

TODO: different treatment in case of "BAD" ending compared to EOF? Source failure: clean save of received data + close file + send last state of histos if enabled

Definition at line 477 of file CbmDeviceDigiEventSink.cxx.

References fbReceivedEof, Finish(), fuLastTsIndex, fulTsCounter, fuPrevTsIndex, and fuTotalTsCount.

Referenced by InitTask().

◆ HandleData()

bool CbmDeviceDigiEventSink::HandleData ( FairMQParts & parts,
int  )
protected

Unpack the message

FIXME: Need to check if TS arrived in order (probably not!!!) + buffer!!!

Fill all storage variables registers for data output

Trigger FairRoot manager to dump Tree entry

Update counters

If not consecutive to last TS sent,

Clear metadata => crashes, maybe not needed as due to move the pointer is invalidated?

Skip checking the TS buffer as writing straight to file => Just check if we are done and can close the file or not

In this case we cannot check if the last TS received/processed is the final one due to lack of order => use instead the fact that we received all expected TS

Check TS queue and process it if needed (in case it filled a hole!)

Histograms management

Fill histograms every 5 or more seconds TODO: make it a parameter

Rely on the fact that all histos have same X axis to avoid multiple "current bin" search

Send histograms each N timeslices. Use also runtime checker to trigger sending after M s if processing too slow or delay sending if processing too fast

Definition at line 361 of file CbmDeviceDigiEventSink.cxx.

References CheckTsQueues(), DumpTreeEntry(), fbBypassConsecutiveTs, fbConfigSent, fbDigiEventInput, fbFillHistos, fbReceivedEof, fdMaxPublishTime, fdMinPublishTime, fhFullTsBuffSizeEvo, fhFullTsProcEvo, fhMissTsBuffSizeEvo, fhMissTsProcEvo, fhTotalEventsEvo, fhTotalTsProcEvo, Finish(), fLastFillTime, fLastPublishTime, fmFullTsStorage, fStartTime, CbmEventTimeslice::fTsMetaData, fulLastFullTsCounter, fulLastMissTsCounter, fulLastProcessedEvents, fulMissedTsCounter, fulNumMessages, fulProcessedEvents, fulTsCounter, fuPrevTsIndex, fuPublishFreqTs, fuTotalTsCount, fvulMissedTsIndices, TimesliceMetaData::GetIndex(), PrepareTreeEntry(), SendHistoConfAndData(), and SendHistograms().

Referenced by InitTask().

◆ HandleMissTsData()

bool CbmDeviceDigiEventSink::HandleMissTsData ( FairMQMessagePtr & msg,
int  )
protected

Check TS queue and process it if needed (in case it filled a hole!)

But only if Consecutive TS check is not disabled explicitly by user

Definition at line 341 of file CbmDeviceDigiEventSink.cxx.

References CheckTsQueues(), fbBypassConsecutiveTs, and fvulMissedTsIndices.

Referenced by InitTask().

◆ InitHistograms()

bool CbmDeviceDigiEventSink::InitHistograms ( )
private

Histos creation and obtain pointer on them Trigger histo creation, filling vHistos and vCanvases

Obtain vector of pointers on each histo from the algo (+ optionally desired folder) or create them locally

Obtain vector of pointers on each canvas from the algo (+ optionally desired folder) or create them locally

Add pointers to each histo in the histo array Create histo config vector ===> Use an std::vector< std::pair< std::string, std::string > > with < Histo name, Folder > and send it through a separate channel using the BoostSerializer

Create canvas config vector ===> Use an std::vector< std::pair< std::string, std::string > > with < Canvas name, config > and send it through a separate channel using the BoostSerializer

Definition at line 211 of file CbmDeviceDigiEventSink.cxx.

References fArrayHisto, fcEventSinkAllHist, fhFullTsBuffSizeEvo, fhFullTsProcEvo, fhMissTsBuffSizeEvo, fhMissTsProcEvo, fhTotalEventsEvo, fhTotalTsProcEvo, first, fsHistosSuffix, fvpsCanvasConfig, fvpsHistosFolder, and GenerateCanvasConfigString().

Referenced by InitTask().

◆ InitTask()

void CbmDeviceDigiEventSink::InitTask ( )
protectedvirtual

Read options from executable

Associate the MissedTs Channel to the corresponding handler

Associate the command Channel to the corresponding handler

Associate the Event + Unp data Channel to the corresponding handler

Prepare storage TClonesArrays TS MetaData storage

Events storage

TODO: remove TObject from CbmEvent and switch to vectors!

Prepare root output

Completely disable the root file compression

Set global size limit for all TTree in this process/Root instance

Register all input data members with the FairRoot manager TS MetaData

CbmEvent

Full TS Digis storage (optional usage, controlled by fbStoreFullTs!)

Histograms management

Comment to prevent clang format single lining

Definition at line 62 of file CbmDeviceDigiEventSink.cxx.

References fbBypassConsecutiveTs, fbDigiEventInput, fbDisableCompression, fbExclusiveTrdExtract, fbFillHistos, fbInitDone, fbStoreFullTs, fbWriteMissingTs, fdMaxPublishTime, fdMinPublishTime, fEventsSel, fEvtHeader, fiTreeFileMaxSize, fpFairRootMgr, fpRun, fsAllowedChannels, fsChannelNameCommands, fsChannelNameDataInput, fsChannelNameHistosInput, fsChannelNameMissedTs, fsHistosSuffix, fsOutputFileName, fTimeSliceMetaDataArray, fuPublishFreqTs, fvDigiBmon, fvDigiMuch, fvDigiPsd, fvDigiRich, fvDigiSts, fvDigiTof, fvDigiTrd, CbmBmonDigi::GetBranchName(), CbmMuchDigi::GetBranchName(), CbmPsdDigi::GetBranchName(), CbmRichDigi::GetBranchName(), CbmStsDigi::GetBranchName(), CbmTofDigi::GetBranchName(), CbmTrdDigi::GetBranchName(), HandleCommand(), HandleData(), HandleMissTsData(), InitHistograms(), and IsChannelNameAllowed().

◆ IsChannelNameAllowed()

bool CbmDeviceDigiEventSink::IsChannelNameAllowed ( std::string channelName)
private

Internal methods.

Definition at line 193 of file CbmDeviceDigiEventSink.cxx.

References fsAllowedChannels, and pos.

Referenced by InitTask().

◆ PostRun()

void CbmDeviceDigiEventSink::PostRun ( )
protectedvirtual

Definition at line 764 of file CbmDeviceDigiEventSink.cxx.

References fbFillHistos, fLastPublishTime, and SendHistograms().

◆ PrepareTreeEntry()

void CbmDeviceDigiEventSink::PrepareTreeEntry ( CbmEventTimeslice unpTs)
private

FIXME: poor man solution with lots of data copy until we undertsnad how to properly deal with FairMq messages ownership and memory managment

FIXME: Not sure if this is the proper way to insert the data

Extract CbmEvent vector from input message

Accumulated counts, will show rise + plateau pattern in spill

Full TS Digis storage (optional usage, controlled by fbStoreFullTs!)

Definition at line 614 of file CbmDeviceDigiEventSink.cxx.

References fbExclusiveTrdExtract, fbFillHistos, fbStoreFullTs, CbmEventTimeslice::fCbmTsEventHeader, fEventsSel, fTimeSliceMetaDataArray, CbmEventTimeslice::fTsMetaData, fulProcessedEvents, fvDigiBmon, CbmEventTimeslice::fvDigiBmon, fvDigiMuch, CbmEventTimeslice::fvDigiMuch, fvDigiPsd, CbmEventTimeslice::fvDigiPsd, fvDigiRich, CbmEventTimeslice::fvDigiRich, fvDigiSts, CbmEventTimeslice::fvDigiSts, fvDigiTof, CbmEventTimeslice::fvDigiTof, fvDigiTrd, CbmEventTimeslice::fvDigiTrd, and CbmEventTimeslice::GetSelectedData().

Referenced by CheckTsQueues(), and HandleData().

◆ ResetHistograms()

bool CbmDeviceDigiEventSink::ResetHistograms ( bool bResetStartTime = false)
private

Reset the start time of the time evolution histograms

Definition at line 324 of file CbmDeviceDigiEventSink.cxx.

References fhFullTsBuffSizeEvo, fhFullTsProcEvo, fhMissTsBuffSizeEvo, fhMissTsProcEvo, fhTotalEventsEvo, fhTotalTsProcEvo, and fStartTime.

Referenced by SendHistoConfAndData(), and SendHistograms().

◆ SendHistoConfAndData()

bool CbmDeviceDigiEventSink::SendHistoConfAndData ( )
private

Prepare multiparts message and header

Serialize the vector of histo config into a single MQ message

Catch case where no histos are registered! => Add empty message

Serialize the vector of canvas config into a single MQ message

Catch case where no Canvases are registered! => Add empty message

Serialize the array of histos into a single MQ message

Send the multi-parts message to the common histogram messages queue

Reset the histograms after sending them (but do not reset the time)

Definition at line 684 of file CbmDeviceDigiEventSink.cxx.

References fArrayHisto, fsChannelNameHistosInput, fvpsCanvasConfig, fvpsHistosFolder, and ResetHistograms().

Referenced by HandleData().

◆ SendHistograms()

bool CbmDeviceDigiEventSink::SendHistograms ( )
private

Serialize the array of histos into a single MQ message

Send message to the common histogram messages queue

Reset the histograms after sending them (but do not reset the time)

Definition at line 745 of file CbmDeviceDigiEventSink.cxx.

References fArrayHisto, fsChannelNameHistosInput, and ResetHistograms().

Referenced by HandleData(), and PostRun().

Member Data Documentation

◆ fArrayHisto

TObjArray CbmDeviceDigiEventSink::fArrayHisto = {}
private

Array of histograms to send to the histogram server.

Definition at line 181 of file CbmDeviceDigiEventSink.h.

Referenced by InitHistograms(), SendHistoConfAndData(), and SendHistograms().

◆ fbBypassConsecutiveTs

bool CbmDeviceDigiEventSink::fbBypassConsecutiveTs = false
private

If true, store digis vectors with full TS in addition to selected events.

Definition at line 103 of file CbmDeviceDigiEventSink.h.

Referenced by HandleData(), HandleMissTsData(), and InitTask().

◆ fbConfigSent

bool CbmDeviceDigiEventSink::fbConfigSent = false
private

Flag indicating whether the histograms and canvases configurations were already published.

Definition at line 189 of file CbmDeviceDigiEventSink.h.

Referenced by HandleData().

◆ fbDigiEventInput

bool CbmDeviceDigiEventSink::fbDigiEventInput = false
private

Switch ON/OFF the ROOT file compression.

Definition at line 106 of file CbmDeviceDigiEventSink.h.

Referenced by HandleData(), and InitTask().

◆ fbDisableCompression

bool CbmDeviceDigiEventSink::fbDisableCompression = false
private

Switch ON/OFF writing of empty TS to file for the missing ones (if no bypass)

Definition at line 105 of file CbmDeviceDigiEventSink.h.

Referenced by InitTask().

◆ fbExclusiveTrdExtract

bool CbmDeviceDigiEventSink::fbExclusiveTrdExtract = true
private

Switch ON/OFF the input of CbmDigiEvents instead of raw data + CbmEvents.

Definition at line 107 of file CbmDeviceDigiEventSink.h.

Referenced by InitTask(), and PrepareTreeEntry().

◆ fbFillHistos

bool CbmDeviceDigiEventSink::fbFillHistos = false
private

Switch ON/OFF loop based extraction of TRD digis due to 1D/2D.

Definition at line 108 of file CbmDeviceDigiEventSink.h.

Referenced by HandleData(), InitTask(), PostRun(), and PrepareTreeEntry().

◆ fbFinishDone

bool CbmDeviceDigiEventSink::fbFinishDone = false
private

Keep track of whether the Init was already fully completed.

Definition at line 110 of file CbmDeviceDigiEventSink.h.

Referenced by Finish(), and ~CbmDeviceDigiEventSink().

◆ fbInitDone

bool CbmDeviceDigiEventSink::fbInitDone = false
private

Switch ON/OFF filling of histograms.

Definition at line 109 of file CbmDeviceDigiEventSink.h.

Referenced by InitTask(), and ~CbmDeviceDigiEventSink().

◆ fbReceivedEof

bool CbmDeviceDigiEventSink::fbReceivedEof = false
private

Control Commands reception.

Definition at line 149 of file CbmDeviceDigiEventSink.h.

Referenced by CheckTsQueues(), HandleCommand(), and HandleData().

◆ fbStoreFullTs

bool CbmDeviceDigiEventSink::fbStoreFullTs = false
private

Constants.

Control flags

Definition at line 102 of file CbmDeviceDigiEventSink.h.

Referenced by DumpTreeEntry(), InitTask(), and PrepareTreeEntry().

◆ fbWriteMissingTs

bool CbmDeviceDigiEventSink::fbWriteMissingTs = false
private

Switch ON/OFF the bypass of the consecutive TS buffer before writing to file.

Definition at line 104 of file CbmDeviceDigiEventSink.h.

Referenced by CheckTsQueues(), and InitTask().

◆ fcEventSinkAllHist

TCanvas* CbmDeviceDigiEventSink::fcEventSinkAllHist
private

Definition at line 197 of file CbmDeviceDigiEventSink.h.

Referenced by InitHistograms().

◆ fdMaxPublishTime

double_t CbmDeviceDigiEventSink::fdMaxPublishTime = 5.0
private

Definition at line 125 of file CbmDeviceDigiEventSink.h.

Referenced by HandleData(), and InitTask().

◆ fdMinPublishTime

double_t CbmDeviceDigiEventSink::fdMinPublishTime = 0.5
private

Definition at line 124 of file CbmDeviceDigiEventSink.h.

Referenced by HandleData(), and InitTask().

◆ fEventsSel

std::vector<CbmDigiEvent>* CbmDeviceDigiEventSink::fEventsSel = nullptr
private

CbmEvents.

Definition at line 160 of file CbmDeviceDigiEventSink.h.

Referenced by DumpTreeEntry(), InitTask(), PrepareTreeEntry(), and ~CbmDeviceDigiEventSink().

◆ fEvtHeader

CbmTsEventHeader* CbmDeviceDigiEventSink::fEvtHeader = nullptr
private

Data reception Event (TS) header

Definition at line 155 of file CbmDeviceDigiEventSink.h.

Referenced by DumpTreeEntry(), and InitTask().

◆ fhFullTsBuffSizeEvo

TProfile* CbmDeviceDigiEventSink::fhFullTsBuffSizeEvo
private

Definition at line 191 of file CbmDeviceDigiEventSink.h.

Referenced by HandleData(), InitHistograms(), and ResetHistograms().

◆ fhFullTsProcEvo

TH1* CbmDeviceDigiEventSink::fhFullTsProcEvo
private

Definition at line 193 of file CbmDeviceDigiEventSink.h.

Referenced by HandleData(), InitHistograms(), and ResetHistograms().

◆ fhMissTsBuffSizeEvo

TProfile* CbmDeviceDigiEventSink::fhMissTsBuffSizeEvo
private

Definition at line 192 of file CbmDeviceDigiEventSink.h.

Referenced by HandleData(), InitHistograms(), and ResetHistograms().

◆ fhMissTsProcEvo

TH1* CbmDeviceDigiEventSink::fhMissTsProcEvo
private

Definition at line 194 of file CbmDeviceDigiEventSink.h.

Referenced by HandleData(), InitHistograms(), and ResetHistograms().

◆ fhTotalEventsEvo

TH1* CbmDeviceDigiEventSink::fhTotalEventsEvo
private

Definition at line 196 of file CbmDeviceDigiEventSink.h.

Referenced by HandleData(), InitHistograms(), and ResetHistograms().

◆ fhTotalTsProcEvo

TH1* CbmDeviceDigiEventSink::fhTotalTsProcEvo
private

Definition at line 195 of file CbmDeviceDigiEventSink.h.

Referenced by HandleData(), InitHistograms(), and ResetHistograms().

◆ fiTreeFileMaxSize

int64_t CbmDeviceDigiEventSink::fiTreeFileMaxSize = 10000000000LL
private

Output file/tree management.

Definition at line 121 of file CbmDeviceDigiEventSink.h.

Referenced by InitTask().

◆ fLastFillTime

std::chrono::system_clock::time_point CbmDeviceDigiEventSink::fLastFillTime = std::chrono::system_clock::now()
private

Definition at line 145 of file CbmDeviceDigiEventSink.h.

Referenced by HandleData().

◆ fLastPublishTime

std::chrono::system_clock::time_point CbmDeviceDigiEventSink::fLastPublishTime = std::chrono::system_clock::now()
private

Definition at line 144 of file CbmDeviceDigiEventSink.h.

Referenced by HandleData(), and PostRun().

◆ fmFullTsStorage

std::map<uint64_t, CbmEventTimeslice> CbmDeviceDigiEventSink::fmFullTsStorage = {}
private

Buffered TS.

Definition at line 174 of file CbmDeviceDigiEventSink.h.

Referenced by CheckTsQueues(), Finish(), and HandleData().

◆ fpFairRootMgr

FairRootManager* CbmDeviceDigiEventSink::fpFairRootMgr = nullptr
private

Definition at line 178 of file CbmDeviceDigiEventSink.h.

Referenced by DumpTreeEntry(), Finish(), and InitTask().

◆ fpRun

FairRunOnline* CbmDeviceDigiEventSink::fpRun = nullptr
private

Data storage.

Definition at line 177 of file CbmDeviceDigiEventSink.h.

Referenced by InitTask(), and ~CbmDeviceDigiEventSink().

◆ fsAllowedChannels

std::vector<std::string> CbmDeviceDigiEventSink::fsAllowedChannels = {fsChannelNameDataInput}
private

List of MQ channels names.

Definition at line 129 of file CbmDeviceDigiEventSink.h.

Referenced by InitTask(), and IsChannelNameAllowed().

◆ fsChannelNameCommands

std::string CbmDeviceDigiEventSink::fsChannelNameCommands = "commands"
private

Definition at line 118 of file CbmDeviceDigiEventSink.h.

Referenced by InitTask().

◆ fsChannelNameDataInput

std::string CbmDeviceDigiEventSink::fsChannelNameDataInput = "events"
private

Definition at line 117 of file CbmDeviceDigiEventSink.h.

Referenced by InitTask().

◆ fsChannelNameHistosInput

std::string CbmDeviceDigiEventSink::fsChannelNameHistosInput = "histogram-in"
private

Definition at line 119 of file CbmDeviceDigiEventSink.h.

Referenced by InitTask(), SendHistoConfAndData(), and SendHistograms().

◆ fsChannelNameMissedTs

std::string CbmDeviceDigiEventSink::fsChannelNameMissedTs = "missedts"
private

message queues

Definition at line 116 of file CbmDeviceDigiEventSink.h.

Referenced by InitTask().

◆ fsHistosSuffix

std::string CbmDeviceDigiEventSink::fsHistosSuffix = ""
private

Definition at line 126 of file CbmDeviceDigiEventSink.h.

Referenced by InitHistograms(), and InitTask().

◆ fsOutputFileName

std::string CbmDeviceDigiEventSink::fsOutputFileName = "mcbm_digis_events.root"
private

Keep track of whether the Finish was already called.

User settings parameters Algo enum settings

Definition at line 114 of file CbmDeviceDigiEventSink.h.

Referenced by InitTask().

◆ fStartTime

std::chrono::system_clock::time_point CbmDeviceDigiEventSink::fStartTime = std::chrono::system_clock::now()
private

Definition at line 146 of file CbmDeviceDigiEventSink.h.

Referenced by HandleData(), and ResetHistograms().

◆ fTimeSliceMetaDataArray

TClonesArray* CbmDeviceDigiEventSink::fTimeSliceMetaDataArray = nullptr
private

TS MetaData storage.

Definition at line 157 of file CbmDeviceDigiEventSink.h.

Referenced by CheckTsQueues(), DumpTreeEntry(), InitTask(), and PrepareTreeEntry().

◆ fuLastTsIndex

uint64_t CbmDeviceDigiEventSink::fuLastTsIndex = 0
private

Definition at line 150 of file CbmDeviceDigiEventSink.h.

Referenced by CheckTsQueues(), and HandleCommand().

◆ fulLastFullTsCounter

uint64_t CbmDeviceDigiEventSink::fulLastFullTsCounter = 0
private

Definition at line 141 of file CbmDeviceDigiEventSink.h.

Referenced by HandleData().

◆ fulLastMissTsCounter

uint64_t CbmDeviceDigiEventSink::fulLastMissTsCounter = 0
private

Definition at line 142 of file CbmDeviceDigiEventSink.h.

Referenced by HandleData().

◆ fulLastProcessedEvents

uint64_t CbmDeviceDigiEventSink::fulLastProcessedEvents = 0
private

Definition at line 143 of file CbmDeviceDigiEventSink.h.

Referenced by HandleData().

◆ fulMissedTsCounter

uint64_t CbmDeviceDigiEventSink::fulMissedTsCounter = 0
private

Definition at line 139 of file CbmDeviceDigiEventSink.h.

Referenced by CheckTsQueues(), Finish(), and HandleData().

◆ fulNumMessages

uint64_t CbmDeviceDigiEventSink::fulNumMessages = 0
private

Definition at line 137 of file CbmDeviceDigiEventSink.h.

Referenced by HandleData().

◆ fulProcessedEvents

uint64_t CbmDeviceDigiEventSink::fulProcessedEvents = 0
private

Definition at line 140 of file CbmDeviceDigiEventSink.h.

Referenced by HandleData(), and PrepareTreeEntry().

◆ fulTsCounter

uint64_t CbmDeviceDigiEventSink::fulTsCounter = 0
private

Definition at line 138 of file CbmDeviceDigiEventSink.h.

Referenced by CheckTsQueues(), Finish(), HandleCommand(), and HandleData().

◆ fuPrevTsIndex

uint64_t CbmDeviceDigiEventSink::fuPrevTsIndex = 0
private

Parameters management.

Statistics & missed TS detection

Definition at line 136 of file CbmDeviceDigiEventSink.h.

Referenced by CheckTsQueues(), HandleCommand(), and HandleData().

◆ fuPublishFreqTs

uint32_t CbmDeviceDigiEventSink::fuPublishFreqTs = 100
private

Histograms management.

Default value: ~10 GB

Definition at line 123 of file CbmDeviceDigiEventSink.h.

Referenced by HandleData(), and InitTask().

◆ fuTotalTsCount

uint64_t CbmDeviceDigiEventSink::fuTotalTsCount = 0
private

Definition at line 151 of file CbmDeviceDigiEventSink.h.

Referenced by CheckTsQueues(), HandleCommand(), and HandleData().

◆ fvDigiBmon

std::vector<CbmBmonDigi>* CbmDeviceDigiEventSink::fvDigiBmon = nullptr
private

Full TS Digis storage (optional usage, controlled by fbStoreFullTs!)

output container of CbmEvents

Definition at line 162 of file CbmDeviceDigiEventSink.h.

Referenced by DumpTreeEntry(), InitTask(), and PrepareTreeEntry().

◆ fvDigiMuch

std::vector<CbmMuchDigi>* CbmDeviceDigiEventSink::fvDigiMuch = nullptr
private

Definition at line 164 of file CbmDeviceDigiEventSink.h.

Referenced by DumpTreeEntry(), InitTask(), and PrepareTreeEntry().

◆ fvDigiPsd

std::vector<CbmPsdDigi>* CbmDeviceDigiEventSink::fvDigiPsd = nullptr
private

Definition at line 168 of file CbmDeviceDigiEventSink.h.

Referenced by DumpTreeEntry(), InitTask(), and PrepareTreeEntry().

◆ fvDigiRich

std::vector<CbmRichDigi>* CbmDeviceDigiEventSink::fvDigiRich = nullptr
private

Definition at line 167 of file CbmDeviceDigiEventSink.h.

Referenced by DumpTreeEntry(), InitTask(), and PrepareTreeEntry().

◆ fvDigiSts

std::vector<CbmStsDigi>* CbmDeviceDigiEventSink::fvDigiSts = nullptr
private

Definition at line 163 of file CbmDeviceDigiEventSink.h.

Referenced by DumpTreeEntry(), InitTask(), and PrepareTreeEntry().

◆ fvDigiTof

std::vector<CbmTofDigi>* CbmDeviceDigiEventSink::fvDigiTof = nullptr
private

Definition at line 166 of file CbmDeviceDigiEventSink.h.

Referenced by DumpTreeEntry(), InitTask(), and PrepareTreeEntry().

◆ fvDigiTrd

std::vector<CbmTrdDigi>* CbmDeviceDigiEventSink::fvDigiTrd = nullptr
private

Definition at line 165 of file CbmDeviceDigiEventSink.h.

Referenced by DumpTreeEntry(), InitTask(), and PrepareTreeEntry().

◆ fvpsCanvasConfig

std::vector<std::pair<std::string, std::string> > CbmDeviceDigiEventSink::fvpsCanvasConfig = {}
private

Vector of string pairs with ( CanvasName, CanvasConfig ) to send to the histogram server Format of Can config is "NbPadX(U);NbPadY(U);ConfigPad1(s);....;ConfigPadXY(s)" Format of Pad config is "GrixX(b),GridY(b),LogX(b),LogY(b),LogZ(b),HistoName(s),DrawOptions(s)"

Definition at line 187 of file CbmDeviceDigiEventSink.h.

Referenced by InitHistograms(), and SendHistoConfAndData().

◆ fvpsHistosFolder

std::vector<std::pair<std::string, std::string> > CbmDeviceDigiEventSink::fvpsHistosFolder = {}
private

Vector of string pairs with ( HistoName, FolderPath ) to send to the histogram server.

Definition at line 183 of file CbmDeviceDigiEventSink.h.

Referenced by InitHistograms(), and SendHistoConfAndData().

◆ fvulMissedTsIndices

std::vector<uint64_t> CbmDeviceDigiEventSink::fvulMissedTsIndices = {}
private

Storage for re-ordering Missed TS vector

Definition at line 172 of file CbmDeviceDigiEventSink.h.

Referenced by CheckTsQueues(), Finish(), HandleData(), and HandleMissTsData().


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