CbmRoot
Loading...
Searching...
No Matches
CbmDeviceMonitorPsd.h
Go to the documentation of this file.
1/* Copyright (C) 2021 Institute for Nuclear Research, Moscow
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Nikolay Karpushkin [committer] */
4
13#ifndef CBMDEVICEMONITORPSD_H_
14#define CBMDEVICEMONITORPSD_H_
15
16#include "CbmMqTMessage.h"
17
18#include "Timeslice.hpp"
19
20#include "FairMQDevice.h"
21
22#include "Rtypes.h"
23#include "TObjArray.h"
24
25#include <chrono>
26#include <map>
27#include <vector>
28
29class TList;
31
32class CbmDeviceMonitorPsd : public FairMQDevice {
33public:
35 virtual ~CbmDeviceMonitorPsd();
36
37protected:
38 virtual void InitTask();
39 bool HandleData(FairMQMessagePtr&, int);
40
41private:
43 static const uint16_t kusSysId = 0x80;
44 Bool_t fbComponentsAddedToList = kFALSE;
45
52 // Bool_t fbDebugMonitorMode; //! Switch ON the filling of a additional set of histograms
53
62
64 std::vector<Int_t> fviHistoChargeArgs;
65 std::vector<Int_t> fviHistoAmplArgs;
66 std::vector<Int_t> fviHistoZLArgs;
70 std::vector<std::string> fsAllowedChannels;
71
73 TList* fParCList;
74
77 uint64_t fulTsCounter;
78 std::chrono::system_clock::time_point fLastPublishTime;
79
82
84 TObjArray fArrayHisto;
86 std::vector<std::pair<std::string, std::string>> fvpsHistosFolder;
90 std::vector<std::pair<std::string, std::string>> fvpsCanvasConfig;
91
92 bool IsChannelNameAllowed(std::string channelName);
93 Bool_t InitContainers();
94 Bool_t DoUnpack(const fles::Timeslice& ts, size_t component);
95 void Finish();
96 bool SendHistograms();
97};
98
99#endif /* CBMDEVICEMONITORPSD_H_ */
std::vector< std::pair< std::string, std::string > > fvpsHistosFolder
Vector of string pairs with ( HistoName, FolderPath ) to send to the histogram server.
TObjArray fArrayHisto
Array of histograms to send to the histogram server.
std::string fsChannelNameHistosInput
bool HandleData(FairMQMessagePtr &, int)
Bool_t fbMonitorFitMode
Switch ON the filling waveforms histograms.
std::string fsChannelNameDataInput
Switch ON the filling waveform fitting histograms.
std::vector< std::pair< std::string, std::string > > fvpsCanvasConfig
bool IsChannelNameAllowed(std::string channelName)
static const uint16_t kusSysId
Constants.
std::chrono::system_clock::time_point fLastPublishTime
std::vector< std::string > fsAllowedChannels
List of MQ channels names.
std::string fsChannelNameCanvasConfig
uint64_t fulNumMessages
Statistics & first TS rejection.
Bool_t fbMonitorMode
Control flags.
Bool_t fbMonitorChanMode
Ignore Overlap Ms: all fuOverlapMsNb MS at the end of timeslice.
Bool_t fbMonitorWfmMode
Switch ON the filling channelwise histograms.
std::vector< Int_t > fviHistoChargeArgs
std::vector< Int_t > fviHistoZLArgs
std::string fsChannelNameHistosConfig
TList * fParCList
Parameters management.
Bool_t fbIgnoreOverlapMs
Switch ON the filling of a minimal set of histograms.
CbmMcbm2018MonitorAlgoPsd * fMonitorAlgo
Processing algo.
Bool_t DoUnpack(const fles::Timeslice &ts, size_t component)
std::vector< Int_t > fviHistoAmplArgs