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

#include <CbmDeviceMonitorReqTof.h>

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

Public Member Functions

 CbmDeviceMonitorReqTof ()
 
virtual ~CbmDeviceMonitorReqTof ()
 

Protected Member Functions

virtual void InitTask ()
 
virtual bool ConditionalRun ()
 

Private Member Functions

bool InitContainers ()
 
bool InitHistograms ()
 
Bool_t DoUnpack (const fles::Timeslice &ts, size_t component)
 
void Finish ()
 
bool SendHistoConfAndData ()
 
bool SendHistograms ()
 

Private Attributes

Bool_t fbIgnoreOverlapMs = kFALSE
 Control flags.
 
Bool_t fbDebugMonitorMode = kFALSE
 Ignore Overlap Ms: all fuOverlapMsNb MS at the end of timeslice.
 
Bool_t fbIgnoreCriticalErrors = kTRUE
 Switch ON the filling of a additional set of histograms.
 
Bool_t fbComponentsAddedToList = kFALSE
 If ON not printout at all for critical errors.
 
std::string fsChannelNameDataInput = "ts-request"
 User settings parameters.
 
std::string fsTsBlockName = "t0tofblock"
 
std::string fsChannelNameHistosInput = "histogram-in"
 
uint32_t fuHistoryHistoSize = 3600
 
uint32_t fuMinTotPulser = 185
 
uint32_t fuMaxTotPulser = 195
 
int32_t fiGdpbIndex = -1
 
uint32_t fuPublishFreqTs = 100
 
double_t fdMinPublishTime = 0.5
 
double_t fdMaxPublishTime = 5.0
 
TList * fParCList = nullptr
 Parameters management.
 
uint64_t fulNumMessages = 0
 Statistics & first TS rejection.
 
uint64_t fulTsCounter = 0
 
std::chrono::system_clock::time_point fLastPublishTime = std::chrono::system_clock::now()
 
CbmMcbm2018MonitorAlgoToffMonitorAlgo
 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 = {}
 
bool fbConfigSent = false
 Flag indicating whether the histograms and canvases configurations were already published.
 

Static Private Attributes

static const uint16_t kusSysIdTof = 0x60
 Constants.
 
static const uint16_t kusSysIdBmon = 0x90
 

Detailed Description

Definition at line 24 of file CbmDeviceMonitorReqTof.h.

Constructor & Destructor Documentation

◆ CbmDeviceMonitorReqTof()

CbmDeviceMonitorReqTof::CbmDeviceMonitorReqTof ( )

Definition at line 39 of file CbmDeviceMonitorReqTof.cxx.

◆ ~CbmDeviceMonitorReqTof()

CbmDeviceMonitorReqTof::~CbmDeviceMonitorReqTof ( )
virtual

Definition at line 312 of file CbmDeviceMonitorReqTof.cxx.

Member Function Documentation

◆ ConditionalRun()

bool CbmDeviceMonitorReqTof::ConditionalRun ( )
protectedvirtual

First request a new TS (full or single system components or multi-syst components block)

Message received, do Algo related Initialization steps if needed

Process received message

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 172 of file CbmDeviceMonitorReqTof.cxx.

References DoUnpack(), fbConfigSent, fdMaxPublishTime, fdMinPublishTime, fLastPublishTime, fsChannelNameDataInput, fsTsBlockName, fulNumMessages, fuPublishFreqTs, InitContainers(), InitHistograms(), kusSysIdTof, SendHistoConfAndData(), and SendHistograms().

◆ DoUnpack()

Bool_t CbmDeviceMonitorReqTof::DoUnpack ( const fles::Timeslice & ts,
size_t component )
private

◆ Finish()

void CbmDeviceMonitorReqTof::Finish ( )
private

Definition at line 344 of file CbmDeviceMonitorReqTof.cxx.

◆ InitContainers()

◆ InitHistograms()

bool CbmDeviceMonitorReqTof::InitHistograms ( )
private

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

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 126 of file CbmDeviceMonitorReqTof.cxx.

References CbmMcbm2018MonitorAlgoTof::CreateHistograms(), fArrayHisto, first, fMonitorAlgo, fvpsCanvasConfig, fvpsHistosFolder, GenerateCanvasConfigString(), CbmStar2019Algo< T >::GetCanvasVector(), and CbmStar2019Algo< T >::GetHistoVector().

Referenced by ConditionalRun().

◆ InitTask()

void CbmDeviceMonitorReqTof::InitTask ( )
protectedvirtual

◆ SendHistoConfAndData()

bool CbmDeviceMonitorReqTof::SendHistoConfAndData ( )
private

Prepare multiparts message and header

Serialize the vector of histo config into a single MQ message

Serialize the vector of canvas config into a single MQ 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 244 of file CbmDeviceMonitorReqTof.cxx.

References fArrayHisto, fMonitorAlgo, fsChannelNameHistosInput, fvpsCanvasConfig, fvpsHistosFolder, and CbmMcbm2018MonitorAlgoTof::ResetHistograms().

Referenced by ConditionalRun().

◆ SendHistograms()

bool CbmDeviceMonitorReqTof::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 292 of file CbmDeviceMonitorReqTof.cxx.

References fArrayHisto, fMonitorAlgo, fsChannelNameHistosInput, and CbmMcbm2018MonitorAlgoTof::ResetHistograms().

Referenced by ConditionalRun().

Member Data Documentation

◆ fArrayHisto

TObjArray CbmDeviceMonitorReqTof::fArrayHisto = {}
private

Array of histograms to send to the histogram server.

Definition at line 68 of file CbmDeviceMonitorReqTof.h.

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

◆ fbComponentsAddedToList

Bool_t CbmDeviceMonitorReqTof::fbComponentsAddedToList = kFALSE
private

If ON not printout at all for critical errors.

Definition at line 42 of file CbmDeviceMonitorReqTof.h.

Referenced by DoUnpack().

◆ fbConfigSent

bool CbmDeviceMonitorReqTof::fbConfigSent = false
private

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

Definition at line 76 of file CbmDeviceMonitorReqTof.h.

Referenced by ConditionalRun().

◆ fbDebugMonitorMode

Bool_t CbmDeviceMonitorReqTof::fbDebugMonitorMode = kFALSE
private

Ignore Overlap Ms: all fuOverlapMsNb MS at the end of timeslice.

Definition at line 40 of file CbmDeviceMonitorReqTof.h.

Referenced by InitContainers(), and InitTask().

◆ fbIgnoreCriticalErrors

Bool_t CbmDeviceMonitorReqTof::fbIgnoreCriticalErrors = kTRUE
private

Switch ON the filling of a additional set of histograms.

Definition at line 41 of file CbmDeviceMonitorReqTof.h.

Referenced by InitContainers(), and InitTask().

◆ fbIgnoreOverlapMs

Bool_t CbmDeviceMonitorReqTof::fbIgnoreOverlapMs = kFALSE
private

Control flags.

Definition at line 39 of file CbmDeviceMonitorReqTof.h.

Referenced by InitContainers(), and InitTask().

◆ fdMaxPublishTime

double_t CbmDeviceMonitorReqTof::fdMaxPublishTime = 5.0
private

Definition at line 54 of file CbmDeviceMonitorReqTof.h.

Referenced by ConditionalRun(), and InitTask().

◆ fdMinPublishTime

double_t CbmDeviceMonitorReqTof::fdMinPublishTime = 0.5
private

Definition at line 53 of file CbmDeviceMonitorReqTof.h.

Referenced by ConditionalRun(), and InitTask().

◆ fiGdpbIndex

int32_t CbmDeviceMonitorReqTof::fiGdpbIndex = -1
private

Definition at line 51 of file CbmDeviceMonitorReqTof.h.

Referenced by InitContainers(), and InitTask().

◆ fLastPublishTime

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

Definition at line 62 of file CbmDeviceMonitorReqTof.h.

Referenced by ConditionalRun().

◆ fMonitorAlgo

CbmMcbm2018MonitorAlgoTof* CbmDeviceMonitorReqTof::fMonitorAlgo
private

Processing algo.

Definition at line 65 of file CbmDeviceMonitorReqTof.h.

Referenced by DoUnpack(), InitContainers(), InitHistograms(), InitTask(), SendHistoConfAndData(), and SendHistograms().

◆ fParCList

TList* CbmDeviceMonitorReqTof::fParCList = nullptr
private

Parameters management.

Definition at line 57 of file CbmDeviceMonitorReqTof.h.

Referenced by InitContainers().

◆ fsChannelNameDataInput

std::string CbmDeviceMonitorReqTof::fsChannelNameDataInput = "ts-request"
private

User settings parameters.

Definition at line 45 of file CbmDeviceMonitorReqTof.h.

Referenced by ConditionalRun(), and InitTask().

◆ fsChannelNameHistosInput

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

Definition at line 47 of file CbmDeviceMonitorReqTof.h.

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

◆ fsTsBlockName

std::string CbmDeviceMonitorReqTof::fsTsBlockName = "t0tofblock"
private

Definition at line 46 of file CbmDeviceMonitorReqTof.h.

Referenced by ConditionalRun(), and InitTask().

◆ fuHistoryHistoSize

uint32_t CbmDeviceMonitorReqTof::fuHistoryHistoSize = 3600
private

Definition at line 48 of file CbmDeviceMonitorReqTof.h.

Referenced by InitContainers(), and InitTask().

◆ fulNumMessages

uint64_t CbmDeviceMonitorReqTof::fulNumMessages = 0
private

Statistics & first TS rejection.

Definition at line 60 of file CbmDeviceMonitorReqTof.h.

Referenced by ConditionalRun().

◆ fulTsCounter

uint64_t CbmDeviceMonitorReqTof::fulTsCounter = 0
private

Definition at line 61 of file CbmDeviceMonitorReqTof.h.

Referenced by DoUnpack().

◆ fuMaxTotPulser

uint32_t CbmDeviceMonitorReqTof::fuMaxTotPulser = 195
private

Definition at line 50 of file CbmDeviceMonitorReqTof.h.

Referenced by InitContainers(), and InitTask().

◆ fuMinTotPulser

uint32_t CbmDeviceMonitorReqTof::fuMinTotPulser = 185
private

Definition at line 49 of file CbmDeviceMonitorReqTof.h.

Referenced by InitContainers(), and InitTask().

◆ fuPublishFreqTs

uint32_t CbmDeviceMonitorReqTof::fuPublishFreqTs = 100
private

Definition at line 52 of file CbmDeviceMonitorReqTof.h.

Referenced by ConditionalRun(), and InitTask().

◆ fvpsCanvasConfig

std::vector<std::pair<std::string, std::string> > CbmDeviceMonitorReqTof::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 74 of file CbmDeviceMonitorReqTof.h.

Referenced by InitHistograms(), and SendHistoConfAndData().

◆ fvpsHistosFolder

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

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

Definition at line 70 of file CbmDeviceMonitorReqTof.h.

Referenced by InitHistograms(), and SendHistoConfAndData().

◆ kusSysIdBmon

const uint16_t CbmDeviceMonitorReqTof::kusSysIdBmon = 0x90
staticprivate

Definition at line 36 of file CbmDeviceMonitorReqTof.h.

Referenced by DoUnpack().

◆ kusSysIdTof

const uint16_t CbmDeviceMonitorReqTof::kusSysIdTof = 0x60
staticprivate

Constants.

Definition at line 35 of file CbmDeviceMonitorReqTof.h.

Referenced by ConditionalRun(), and DoUnpack().


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