CbmRoot
|
#include <CbmDeviceMcbmEventBuilderWin.h>
Public Member Functions | |
CbmDeviceMcbmEventBuilderWin () | |
virtual | ~CbmDeviceMcbmEventBuilderWin () |
Protected Member Functions | |
virtual void | InitTask () |
bool | HandleData (FairMQParts &, int) |
bool | HandleCommand (FairMQMessagePtr &, int) |
Private Member Functions | |
bool | IsChannelNameAllowed (std::string channelName) |
void | Finish () |
bool | SendEvents (FairMQParts &partsIn) |
bool | SendHistograms () |
Private Attributes | |
Bool_t | fbIgnoreTsOverlap = kFALSE |
Constants. | |
Bool_t | fbFillHistos = kTRUE |
Ignore data in Overlap part of the TS. | |
std::string | fsEvtOverMode = "NoOverlap" |
Switch ON/OFF filling of histograms. | |
std::string | fsRefDet = "kBmon" |
std::vector< std::string > | fvsAddDet = {} |
std::vector< std::string > | fvsDelDet = {} |
std::vector< std::string > | fvsSetTrigWin = {} |
std::vector< std::string > | fvsSetTrigMinNb = {} |
std::string | fsChannelNameDataInput = "unpts_0" |
message queues | |
std::string | fsChannelNameDataOutput = "events" |
std::string | fsChannelNameCommands = "commands" |
std::string | fsChannelNameHistosInput = "histogram-in" |
std::string | fsChannelNameHistosConfig = "histo-conf" |
std::string | fsChannelNameCanvasConfig = "canvas-conf" |
uint32_t | fuPublishFreqTs = 100 |
Histograms management. | |
double_t | fdMinPublishTime = 0.5 |
double_t | fdMaxPublishTime = 5.0 |
std::vector< std::string > | fsAllowedChannels = {fsChannelNameDataInput} |
List of MQ channels names. | |
uint64_t | fulNumMessages = 0 |
Parameters management. | |
uint64_t | fulTsCounter = 0 |
std::chrono::system_clock::time_point | fLastPublishTime = std::chrono::system_clock::now() |
CbmMcbm2019TimeWinEventBuilderAlgo * | fpAlgo = nullptr |
Processing algos. | |
size_t | fuNbCoreMsPerTs = 0 |
TS MetaData stable values storage. | |
size_t | fuNbOverMsPerTs = 0 |
Double_t | fdMsSizeInNs = 1280000 |
Double_t | fdTsCoreSizeInNs = -1.0 |
Size of a single MS, [nanoseconds]. | |
Double_t | fdTsOverSizeInNs = -1.0 |
Total size of the core MS in a TS, [nanoseconds]. | |
Double_t | fdTsFullSizeInNs = -1.0 |
Total size of the overlap MS in a TS, [nanoseconds]. | |
TClonesArray * | fTimeSliceMetaDataArray = nullptr |
Total size of all MS in a TS, [nanoseconds]. | |
TimesliceMetaData * | fTsMetaData = nullptr |
std::vector< CbmTofDigi > * | fvDigiBmon = nullptr |
Digis storage. | |
std::vector< CbmStsDigi > * | fvDigiSts = nullptr |
std::vector< CbmMuchBeamTimeDigi > * | fvDigiMuch = nullptr |
std::vector< CbmTrdDigi > * | fvDigiTrd = nullptr |
std::vector< CbmTofDigi > * | fvDigiTof = nullptr |
std::vector< CbmRichDigi > * | fvDigiRich = nullptr |
std::vector< CbmPsdDigi > * | fvDigiPsd = nullptr |
TClonesArray * | fEvents = nullptr |
Data emission. | |
FairRunOnline * | fpRun = nullptr |
output container of CbmEvents | |
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 = {} |
Definition at line 42 of file CbmDeviceMcbmEventBuilderWin.h.
CbmDeviceMcbmEventBuilderWin::CbmDeviceMcbmEventBuilderWin | ( | ) |
Definition at line 57 of file CbmDeviceMcbmEventBuilderWin.cxx.
References fpAlgo.
|
virtual |
Clear metadata
Clear vectors
Clear events TClonesArray
Definition at line 656 of file CbmDeviceMcbmEventBuilderWin.cxx.
References fEvents, fpAlgo, fpRun, fTimeSliceMetaDataArray, fTsMetaData, fvDigiBmon, fvDigiMuch, fvDigiPsd, fvDigiRich, fvDigiSts, fvDigiTof, and fvDigiTrd.
|
private |
Definition at line 682 of file CbmDeviceMcbmEventBuilderWin.cxx.
|
protected |
|
protected |
Extract unpacked data from input message
TS metadata TODO: code order of vectors in the TS MetaData!!
FIXME: Not if this is the proper way to insert the data
BMON
STS
MUCH
TRD
TOF
RICH
PSD
Call Algo ProcessTs method
Send events vector to ouput
Clear metadata
Clear vectors
Clear event vector after usage
Histograms management
Send histograms each 100 time slices. Should be each ~1s Use also runtime checker to trigger sending after M s if processing too slow or delay sending if processing too fast
Definition at line 467 of file CbmDeviceMcbmEventBuilderWin.cxx.
References CbmMcbm2019TimeWinEventBuilderAlgo::ClearEventVector(), fbFillHistos, fdMaxPublishTime, fdMinPublishTime, fEvents, fLastPublishTime, fpAlgo, fTimeSliceMetaDataArray, fTsMetaData, fulNumMessages, fuPublishFreqTs, fvDigiBmon, fvDigiMuch, fvDigiPsd, fvDigiRich, fvDigiSts, fvDigiTof, fvDigiTrd, CbmMcbm2019TimeWinEventBuilderAlgo::ProcessTs(), SendEvents(), and SendHistograms().
Referenced by InitTask().
|
protectedvirtual |
Read options from executable
FIXME: Disable clang formatting for now as it corrupts all alignment
Initialize the Algorithm parameters
Extract Event Overlap Mode
Extract refdet
Extract detector to add if any
Extract detector to remove if any
Extract Trigger window to add if any
Detector Enum Tag
Window beginning
Window end
Extract MinNb for trigger if any
Detector Enum Tag
Min number
FIXME: Re-enable clang formatting after formatted lines
Create input vectors
Register all input data members with the FairRoot manager
Digis storage
Feint to avoid crash of DigiManager due to missing source pointer validity check in FairRootManager.h at line 461
Create output TClonesArray TODO: remove TObject from CbmEvent and switch to vectors!
Now that everything is set, initialize the Algorithm
Histograms management
Obtain vector of pointers on each histo from the algo (+ optionally desired folder)
Obtain vector of pointers on each canvas from the algo (+ optionally desired folder)
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
Serialize the vector of histo config into a single MQ message
Send message to the common histogram config messages queue
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
Serialize the vector of canvas config into a single MQ message
Send message to the common canvas config messages queue
Definition at line 59 of file CbmDeviceMcbmEventBuilderWin.cxx.
References CbmMcbm2019TimeWinEventBuilderAlgo::AddDetector(), AllowOverlap, fArrayHisto, fbFillHistos, fbIgnoreTsOverlap, fdMaxPublishTime, fdMinPublishTime, fEvents, first, fpAlgo, fpRun, fsAllowedChannels, fsChannelNameCanvasConfig, fsChannelNameDataInput, fsChannelNameDataOutput, fsChannelNameHistosConfig, fsChannelNameHistosInput, fsEvtOverMode, fsRefDet, fTimeSliceMetaDataArray, fuPublishFreqTs, fvDigiBmon, fvDigiMuch, fvDigiPsd, fvDigiRich, fvDigiSts, fvDigiTof, fvDigiTrd, fvpsCanvasConfig, fvpsHistosFolder, fvsAddDet, fvsDelDet, fvsSetTrigMinNb, fvsSetTrigWin, GenerateCanvasConfigString(), CbmMcbm2019TimeWinEventBuilderAlgo::GetCanvasVector(), CbmMcbm2019TimeWinEventBuilderAlgo::GetHistoVector(), HandleData(), CbmMcbm2019TimeWinEventBuilderAlgo::InitAlgo(), IsChannelNameAllowed(), kBmon, kEventBuilderDetBmon, kEventBuilderDetMuch, kEventBuilderDetPsd, kEventBuilderDetRich, kEventBuilderDetSts, kEventBuilderDetTof, kEventBuilderDetTrd, kEventBuilderDetUndef, kMuch, kNotExist, kPsd, kRich, kSts, kTof, kTrd, MergeOverlap, NoOverlap, CbmMcbm2019TimeWinEventBuilderAlgo::RemoveDetector(), CbmMcbm2019TimeWinEventBuilderAlgo::SetEventOverlapMode(), CbmMcbm2019TimeWinEventBuilderAlgo::SetFillHistos(), CbmMcbm2019TimeWinEventBuilderAlgo::SetIgnoreTsOverlap(), CbmMcbm2019TimeWinEventBuilderAlgo::SetReferenceDetector(), CbmMcbm2019TimeWinEventBuilderAlgo::SetTriggerMinNumber(), and CbmMcbm2019TimeWinEventBuilderAlgo::SetTriggerWindow().
|
private |
Definition at line 387 of file CbmDeviceMcbmEventBuilderWin.cxx.
References fsAllowedChannels, and pos.
Referenced by InitTask().
|
private |
Clear events TClonesArray before usage.
Get vector reference from algo
Move CbmEvent from temporary vector to TClonesArray
Serialize the array of events into a single MQ message
Add it at the end of the input composed message FIXME: use move or fix addition of new part to avoid full message copy
Send message
Definition at line 585 of file CbmDeviceMcbmEventBuilderWin.cxx.
References fEvents, fpAlgo, fsChannelNameDataOutput, CbmMcbm2019TimeWinEventBuilderAlgo::GetEventVector(), and CbmEvent::ToString().
Referenced by HandleData().
|
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 637 of file CbmDeviceMcbmEventBuilderWin.cxx.
References fArrayHisto, fpAlgo, fsChannelNameHistosInput, and CbmMcbm2019TimeWinEventBuilderAlgo::ResetHistograms().
Referenced by HandleData().
|
private |
Array of histograms to send to the histogram server.
Definition at line 122 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by InitTask(), and SendHistograms().
|
private |
Ignore data in Overlap part of the TS.
Definition at line 57 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by HandleData(), and InitTask().
|
private |
Constants.
Control flags
Definition at line 56 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by InitTask().
|
private |
Definition at line 77 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by HandleData(), and InitTask().
|
private |
Definition at line 76 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by HandleData(), and InitTask().
|
private |
Definition at line 97 of file CbmDeviceMcbmEventBuilderWin.h.
|
private |
Size of a single MS, [nanoseconds].
Definition at line 98 of file CbmDeviceMcbmEventBuilderWin.h.
|
private |
Total size of the overlap MS in a TS, [nanoseconds].
Definition at line 100 of file CbmDeviceMcbmEventBuilderWin.h.
|
private |
Total size of the core MS in a TS, [nanoseconds].
Definition at line 99 of file CbmDeviceMcbmEventBuilderWin.h.
|
private |
Data emission.
Definition at line 115 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by HandleData(), InitTask(), SendEvents(), and ~CbmDeviceMcbmEventBuilderWin().
|
private |
Definition at line 89 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by HandleData().
|
private |
Processing algos.
Definition at line 92 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by CbmDeviceMcbmEventBuilderWin(), HandleData(), InitTask(), SendEvents(), SendHistograms(), and ~CbmDeviceMcbmEventBuilderWin().
|
private |
output container of CbmEvents
Internal data registration (for FairRootManager -> DigiManager links)
Definition at line 119 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by InitTask(), and ~CbmDeviceMcbmEventBuilderWin().
|
private |
List of MQ channels names.
Definition at line 80 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by InitTask(), and IsChannelNameAllowed().
|
private |
Definition at line 73 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by InitTask().
|
private |
Definition at line 70 of file CbmDeviceMcbmEventBuilderWin.h.
|
private |
message queues
Definition at line 68 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by InitTask().
|
private |
Definition at line 69 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by InitTask(), and SendEvents().
|
private |
Definition at line 72 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by InitTask().
|
private |
Definition at line 71 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by InitTask(), and SendHistograms().
|
private |
Switch ON/OFF filling of histograms.
User settings parameters Algo enum settings
Definition at line 61 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by InitTask().
|
private |
Definition at line 62 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by InitTask().
|
private |
Total size of all MS in a TS, [nanoseconds].
Data reception TS MetaData storage
Definition at line 104 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by HandleData(), InitTask(), and ~CbmDeviceMcbmEventBuilderWin().
|
private |
Definition at line 105 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by HandleData(), and ~CbmDeviceMcbmEventBuilderWin().
|
private |
Parameters management.
Statistics & first TS rejection
Definition at line 87 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by HandleData().
|
private |
Definition at line 88 of file CbmDeviceMcbmEventBuilderWin.h.
|
private |
TS MetaData stable values storage.
Definition at line 95 of file CbmDeviceMcbmEventBuilderWin.h.
|
private |
Definition at line 96 of file CbmDeviceMcbmEventBuilderWin.h.
|
private |
Histograms management.
Definition at line 75 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by HandleData(), and InitTask().
|
private |
Digis storage.
Definition at line 107 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by HandleData(), InitTask(), and ~CbmDeviceMcbmEventBuilderWin().
|
private |
Definition at line 109 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by HandleData(), InitTask(), and ~CbmDeviceMcbmEventBuilderWin().
|
private |
Definition at line 113 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by HandleData(), InitTask(), and ~CbmDeviceMcbmEventBuilderWin().
|
private |
Definition at line 112 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by HandleData(), InitTask(), and ~CbmDeviceMcbmEventBuilderWin().
|
private |
Definition at line 108 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by HandleData(), InitTask(), and ~CbmDeviceMcbmEventBuilderWin().
|
private |
Definition at line 111 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by HandleData(), InitTask(), and ~CbmDeviceMcbmEventBuilderWin().
|
private |
Definition at line 110 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by HandleData(), InitTask(), and ~CbmDeviceMcbmEventBuilderWin().
|
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 128 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by InitTask().
|
private |
Vector of string pairs with ( HistoName, FolderPath ) to send to the histogram server.
Definition at line 124 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by InitTask().
|
private |
Definition at line 63 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by InitTask().
|
private |
Definition at line 64 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by InitTask().
|
private |
Definition at line 66 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by InitTask().
|
private |
Definition at line 65 of file CbmDeviceMcbmEventBuilderWin.h.
Referenced by InitTask().