CbmRoot
|
#include <CbmDeviceMonitorPsd.h>
Public Member Functions | |
CbmDeviceMonitorPsd () | |
virtual | ~CbmDeviceMonitorPsd () |
Protected Member Functions | |
virtual void | InitTask () |
bool | HandleData (FairMQMessagePtr &, int) |
Private Member Functions | |
bool | IsChannelNameAllowed (std::string channelName) |
Bool_t | InitContainers () |
Bool_t | DoUnpack (const fles::Timeslice &ts, size_t component) |
void | Finish () |
bool | SendHistograms () |
Private Attributes | |
Bool_t | fbComponentsAddedToList = kFALSE |
Bool_t | fbMonitorMode |
Control flags. | |
Bool_t | fbIgnoreOverlapMs |
Switch ON the filling of a minimal set of histograms. | |
Bool_t | fbMonitorChanMode |
Ignore Overlap Ms: all fuOverlapMsNb MS at the end of timeslice. | |
Bool_t | fbMonitorWfmMode |
Switch ON the filling channelwise histograms. | |
Bool_t | fbMonitorFitMode |
Switch ON the filling waveforms histograms. | |
std::string | fsChannelNameDataInput |
Switch ON the filling waveform fitting histograms. | |
std::string | fsChannelNameHistosInput |
std::string | fsChannelNameHistosConfig |
std::string | fsChannelNameCanvasConfig |
uint32_t | fuPublishFreqTs |
double_t | fdMinPublishTime |
double_t | fdMaxPublishTime |
UInt_t | fuHistoryHistoSize |
std::vector< Int_t > | fviHistoChargeArgs |
std::vector< Int_t > | fviHistoAmplArgs |
std::vector< Int_t > | fviHistoZLArgs |
std::vector< std::string > | fsAllowedChannels |
List of MQ channels names. | |
TList * | fParCList |
Parameters management. | |
uint64_t | fulNumMessages |
Statistics & first TS rejection. | |
uint64_t | fulTsCounter |
std::chrono::system_clock::time_point | fLastPublishTime |
CbmMcbm2018MonitorAlgoPsd * | fMonitorAlgo |
Processing algo. | |
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 |
Static Private Attributes | |
static const uint16_t | kusSysId = 0x80 |
Constants. | |
Definition at line 32 of file CbmDeviceMonitorPsd.h.
CbmDeviceMonitorPsd::CbmDeviceMonitorPsd | ( | ) |
Definition at line 47 of file CbmDeviceMonitorPsd.cxx.
|
virtual |
Definition at line 317 of file CbmDeviceMonitorPsd.cxx.
|
private |
Clear the digis vector in case it was filled
Definition at line 319 of file CbmDeviceMonitorPsd.cxx.
References CbmMcbm2018MonitorAlgoPsd::AddMsComponentToList(), CbmStar2019Algo< T >::ClearVector(), fbComponentsAddedToList, fMonitorAlgo, fulTsCounter, kusSysId, and CbmMcbm2018MonitorAlgoPsd::ProcessTs().
Referenced by HandleData().
|
private |
Definition at line 346 of file CbmDeviceMonitorPsd.cxx.
|
protected |
Create an empty TS and fill it with the incoming message
Process the Timeslice
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 265 of file CbmDeviceMonitorPsd.cxx.
References DoUnpack(), fdMaxPublishTime, fdMinPublishTime, fLastPublishTime, fulNumMessages, fuPublishFreqTs, and SendHistograms().
Referenced by InitTask().
|
private |
Need to add accessors for all options
Histos creation and obtain pointer on them Trigger histo creation on all associated algos
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 143 of file CbmDeviceMonitorPsd.cxx.
References CbmMcbm2018MonitorAlgoPsd::CreateHistograms(), fArrayHisto, fbIgnoreOverlapMs, fbMonitorChanMode, fbMonitorFitMode, fbMonitorMode, fbMonitorWfmMode, first, fMonitorAlgo, fParCList, fsChannelNameCanvasConfig, fsChannelNameHistosConfig, fuHistoryHistoSize, fviHistoAmplArgs, fviHistoChargeArgs, fviHistoZLArgs, fvpsCanvasConfig, fvpsHistosFolder, GenerateCanvasConfigString(), CbmStar2019Algo< T >::GetCanvasVector(), CbmStar2019Algo< T >::GetHistoVector(), CbmMcbm2018MonitorAlgoPsd::GetParList(), CbmMcbm2018MonitorAlgoPsd::InitContainers(), CbmMcbm2018MonitorAlgoPsd::SetAmplHistoArgs(), CbmMcbm2018MonitorAlgoPsd::SetChargeHistoArgs(), CbmMcbm2018MonitorAlgoPsd::SetHistoryHistoSize(), CbmStar2019Algo< T >::SetIgnoreOverlapMs(), CbmMcbm2018MonitorAlgoPsd::SetMonitorChanMode(), CbmMcbm2018MonitorAlgoPsd::SetMonitorFitMode(), CbmMcbm2018MonitorAlgoPsd::SetMonitorMode(), CbmMcbm2018MonitorAlgoPsd::SetMonitorWfmMode(), and CbmMcbm2018MonitorAlgoPsd::SetZLHistoArgs().
Referenced by InitTask().
|
protectedvirtual |
Read options from executable
Definition at line 72 of file CbmDeviceMonitorPsd.cxx.
References fbIgnoreOverlapMs, fbMonitorChanMode, fbMonitorFitMode, fbMonitorMode, fbMonitorWfmMode, fdMaxPublishTime, fdMinPublishTime, fsAllowedChannels, fsChannelNameCanvasConfig, fsChannelNameDataInput, fsChannelNameHistosConfig, fsChannelNameHistosInput, fuHistoryHistoSize, fuPublishFreqTs, fviHistoAmplArgs, fviHistoChargeArgs, fviHistoZLArgs, HandleData(), InitContainers(), and IsChannelNameAllowed().
|
private |
Definition at line 125 of file CbmDeviceMonitorPsd.cxx.
References fsAllowedChannels, and pos.
Referenced by InitTask().
|
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 297 of file CbmDeviceMonitorPsd.cxx.
References fArrayHisto, fMonitorAlgo, fsChannelNameHistosInput, and CbmMcbm2018MonitorAlgoPsd::ResetHistograms().
Referenced by HandleData().
|
private |
Array of histograms to send to the histogram server.
Definition at line 84 of file CbmDeviceMonitorPsd.h.
Referenced by InitContainers(), and SendHistograms().
|
private |
Definition at line 44 of file CbmDeviceMonitorPsd.h.
Referenced by DoUnpack().
|
private |
Switch ON the filling of a minimal set of histograms.
Definition at line 48 of file CbmDeviceMonitorPsd.h.
Referenced by InitContainers(), and InitTask().
|
private |
Ignore Overlap Ms: all fuOverlapMsNb MS at the end of timeslice.
Definition at line 49 of file CbmDeviceMonitorPsd.h.
Referenced by InitContainers(), and InitTask().
|
private |
Switch ON the filling waveforms histograms.
Definition at line 51 of file CbmDeviceMonitorPsd.h.
Referenced by InitContainers(), and InitTask().
|
private |
Control flags.
Definition at line 47 of file CbmDeviceMonitorPsd.h.
Referenced by InitContainers(), and InitTask().
|
private |
Switch ON the filling channelwise histograms.
Definition at line 50 of file CbmDeviceMonitorPsd.h.
Referenced by InitContainers(), and InitTask().
|
private |
Definition at line 61 of file CbmDeviceMonitorPsd.h.
Referenced by HandleData(), and InitTask().
|
private |
Definition at line 60 of file CbmDeviceMonitorPsd.h.
Referenced by HandleData(), and InitTask().
|
private |
Definition at line 78 of file CbmDeviceMonitorPsd.h.
Referenced by HandleData().
|
private |
Processing algo.
Definition at line 81 of file CbmDeviceMonitorPsd.h.
Referenced by DoUnpack(), InitContainers(), and SendHistograms().
|
private |
Parameters management.
Definition at line 73 of file CbmDeviceMonitorPsd.h.
Referenced by InitContainers().
|
private |
List of MQ channels names.
ZeroLevel histogram arguments in adc counts
Definition at line 70 of file CbmDeviceMonitorPsd.h.
Referenced by InitTask(), and IsChannelNameAllowed().
|
private |
Definition at line 58 of file CbmDeviceMonitorPsd.h.
Referenced by InitContainers(), and InitTask().
|
private |
Switch ON the filling waveform fitting histograms.
User settings parameters
Definition at line 55 of file CbmDeviceMonitorPsd.h.
Referenced by InitTask().
|
private |
Definition at line 57 of file CbmDeviceMonitorPsd.h.
Referenced by InitContainers(), and InitTask().
|
private |
Definition at line 56 of file CbmDeviceMonitorPsd.h.
Referenced by InitTask(), and SendHistograms().
|
private |
Definition at line 63 of file CbmDeviceMonitorPsd.h.
Referenced by InitContainers(), and InitTask().
|
private |
Statistics & first TS rejection.
Definition at line 76 of file CbmDeviceMonitorPsd.h.
Referenced by HandleData().
|
private |
Definition at line 77 of file CbmDeviceMonitorPsd.h.
Referenced by DoUnpack().
|
private |
Definition at line 59 of file CbmDeviceMonitorPsd.h.
Referenced by HandleData(), and InitTask().
|
private |
Charge histogram arguments in adc counts
Definition at line 65 of file CbmDeviceMonitorPsd.h.
Referenced by InitContainers(), and InitTask().
|
private |
Definition at line 64 of file CbmDeviceMonitorPsd.h.
Referenced by InitContainers(), and InitTask().
|
private |
Amplitude histogram arguments in adc counts
Definition at line 66 of file CbmDeviceMonitorPsd.h.
Referenced by InitContainers(), and InitTask().
|
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 90 of file CbmDeviceMonitorPsd.h.
Referenced by InitContainers().
|
private |
Vector of string pairs with ( HistoName, FolderPath ) to send to the histogram server.
Definition at line 86 of file CbmDeviceMonitorPsd.h.
Referenced by InitContainers().
|
staticprivate |