CbmRoot
Loading...
Searching...
No Matches
CbmTofUnpackMonitor.h
Go to the documentation of this file.
1/* Copyright (C) 2022 Facility for Antiproton and Ion Research in Europe, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Pierre-Alain Loizeau [committer] */
4
5#ifndef CbmTofUnpackMonitor_H
6#define CbmTofUnpackMonitor_H
7
8#include "CbmBmonDigi.h"
9#include "CbmMcbm2018TofPar.h"
10
11#include <Rtypes.h>
12#include <TH1.h>
13#include <TH2.h>
14#include <TProfile.h>
15#include <TProfile2D.h>
16
17#include <array>
18#include <cstdint>
19#include <vector>
20
21class TCanvas;
22
24 public:
26
27 virtual ~CbmTofUnpackMonitor();
28
30 virtual Bool_t Init(CbmMcbm2018TofPar* digiParSet);
31
32 virtual Bool_t CreateHistograms();
33 virtual Bool_t ResetHistograms();
34 virtual void DrawCanvases();
35
38 void DrawBmonCanvases();
39
43
46 void DrawCanvasesQFactors(Bool_t bBmon = kTRUE);
47
48 Bool_t CreateMsComponentSizeHistos(UInt_t component);
49 Bool_t ResetMsComponentSizeHistos(UInt_t component);
50
52 void Finish();
53
54 void SetHistoFileName(TString nameIn) { fHistoFileName = nameIn; }
55
56 inline void SetPulserTotLimits(UInt_t uMin, UInt_t uMax)
57 {
58 fuMinTotPulser = uMin;
59 fuMaxTotPulser = uMax;
60 }
61 inline void SetSpillThreshold(UInt_t uCntLimit) { fuOffSpillCountLimit = uCntLimit; }
62 inline void SetSpillThresholdNonPulser(UInt_t uCntLimit) { fuOffSpillCountLimitNonPulser = uCntLimit; }
63 inline void SetSpillCheckInterval(Double_t dIntervalSec) { fdSpillCheckInterval = dIntervalSec; }
64 void SetBmonChannelMap(std::vector<uint32_t> vChanMapIn);
65
66 void SetLongDurationLimits(UInt_t uDurationSeconds, UInt_t uBinSize)
67 {
68 //fbLongHistoEnable = kTRUE;
69 fuLongHistoNbSeconds = uDurationSeconds;
70 fuLongHistoBinSizeSec = uBinSize;
71 }
72
73 void AddHistoToVector(TNamed* pointer, std::string sFolder = "")
74 {
75 fvpAllHistoPointers.push_back(std::pair<TNamed*, std::string>(pointer, sFolder));
76 }
77 std::vector<std::pair<TNamed*, std::string>> GetHistoVector() { return fvpAllHistoPointers; }
78
79 void AddCanvasToVector(TCanvas* pointer, std::string sFolder = "")
80 {
81 fvpAllCanvasPointers.push_back(std::pair<TCanvas*, std::string>(pointer, sFolder));
82 }
83 std::vector<std::pair<TCanvas*, std::string>> GetCanvasVector() { return fvpAllCanvasPointers; }
84
86
88 void FillMsSize(UInt_t uMsComp, UInt_t uSize) { fvhMsSize[uMsComp]->Fill(uSize); }
89 void FillMsSizeTime(UInt_t uMsComp, Double_t dTime, UInt_t uSize) { fvhMsSizeTime[uMsComp]->Fill(dTime, uSize); }
90
91
93 // void FillMsCntEvo(ULong64_t MsIdx) { fhMsCntEvo->Fill(MsIdx * 1e-9); }
94 virtual void FillHitMonitoringHistos(const double_t& dMsTime, const uint32_t& uCurrCompIdx, const uint32_t& uGet4Id,
95 const uint32_t& uRawCh, const uint32_t& uRemapCh, const uint32_t& uTot,
96 const double_t& dHitTime, const uint32_t& uFts, bool bDiamond = false);
97 virtual void FillEpochMonitoringHistos(const uint32_t& uCurrCompIdx, const uint32_t& uGet4Id, const bool& bSyncFlag,
98 const bool& bDataLoss, const bool& bEpochLoss, const bool& bMissmMatch);
99 virtual void FillScmMonitoringHistos(const uint32_t& uCurrCompIdx, const uint32_t& uGet4Id, const uint32_t& uCh,
100 const uint32_t& uEdge, const uint32_t& uType);
101 virtual void FillSysMonitoringHistos(const uint32_t& uCurrCompIdx, const uint32_t& uGet4Id, const uint32_t& uType);
102 virtual void FillErrMonitoringHistos(const uint32_t& uCurrCompIdx, const uint32_t& uGet4Id, const uint32_t& uCh,
103 const uint32_t& uType);
105 virtual void FinalizeMsHistos() {}
107 virtual void FinalizeTsHistos(double_t /*dTsStartTime*/) {}
108
110 void CheckBmonSpillLimits(const double_t& dMsTime);
111 void FillHitBmonMonitoringHistos(const double_t& dMsTime, const uint32_t& uCurrCompIdx, const uint32_t& uGet4Id,
112 const uint32_t& uTot);
113
114 void FillErrBmonMonitoringHistos(const double_t& dMsTime, const uint32_t& uCurrCompIdx, const uint32_t& uGet4Id,
115 const bool& bErrEvtLost);
116
118 void SetBmonMode(bool value) { fBmonMode = value; }
119
121 bool GetBmonMode() { return fBmonMode; }
122
124 void FillHitBmonMicroSpillHistos(const double_t& dMsTime, const double_t& dTime);
127
129 void FillHitBmonQfactorHistos(const double_t& dMsTime, const double_t& dTime);
131 void FinalizeTsBmonQfactorHistos(uint64_t uTsTimeNs, std::vector<CbmBmonDigi>* vDigis);
132
134 void SetBmonMicroSpillMode(bool value) { fBmonMicroSpillMode = value; }
135
138
140 void SetBmonScvdMode(bool value) { fBmonScvdMode = value; }
141
144
146 void SetBmonQFactorMode(bool value)
147 {
148 fBmonQfactorsMode = value;
149 if (fBmonQfactorsMode) {
150 fBmonMicroSpillMode = false;
151 fBmonScvdMode = false;
152 }
153 }
154
157
159 void SetTofQFactorMode(bool value) { fTofQfactorsMode = value; }
160
163
165 void SetInternalHttpMode(bool value) { fbInternalHttp = value; }
166
169
171 void SetHistosStartTime(double_t value) { fdStartTime = value; }
172
174 double_t GetHistosStartTime() { return fdStartTime; }
175
176 protected:
177 TString fHistoFileName = "data/mon.tof.root";
178
182 UInt_t fuNbOfComps = 0;
183 UInt_t fuNbOfGet4PerComp = 0;
186 UInt_t fuNbOfGet4InSyst = 0;
187
189 Double_t fdStartTime = -1.0;
190 UInt_t fuHistoryHistoSize = 3600;
191 double_t dFirstTsStartTime = 0;
192 //Bool_t fbLongHistoEnable;
193 UInt_t fuLongHistoNbSeconds = 3600;
196
198 bool fBmonMode = false;
199 bool fBmonScvdMode = false;
201 bool fBmonQfactorsMode = false;
202 bool fTofQfactorsMode = false;
203 bool fbInternalHttp = true;
204
206 static const UInt_t kuMaxNbFlibLinks = 32;
207 static const UInt_t kuBytesPerMessage = 8;
208 static const UInt_t kuNbChanBmon = 16;
209 static const UInt_t kuNbChanBmonScvd = 20;
210 static const UInt_t kuNbSpillPlots = 5;
211
213 UInt_t fuMinTotPulser = 185;
214 UInt_t fuMaxTotPulser = 189;
217 Double_t fdSpillCheckInterval = 1.0;
221 static constexpr UInt_t kuBmonChanMap[kuNbChanBmon] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
223 static constexpr UInt_t kuBmonChanMapScvd[kuNbChanBmonScvd] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
224 10, 11, 12, 13, 14, 15, 16, 17, 18, 19};
225
226 UInt_t fuNbChanBmon = 0;
227 std::vector<UInt_t> fuBmonChanMap = {};
228
232
235 TH2* fhGet4MessType = nullptr;
236 TH2* fhGet4EpochFlags = nullptr;
237 TH2* fhGet4ScmType = nullptr;
238 TH2* fhGet4SysMessType = nullptr;
239 TH2* fhGet4ErrorsType = nullptr;
241 std::vector<TH2*> fvhCompGet4MessType = {};
242 std::vector<TH2*> fvhCompGet4ChScm = {};
243 std::vector<TH2*> fvhCompGet4ChErrors = {};
245 std::vector<TH1*> fvhCompRawChCount = {};
246 std::vector<TH2*> fvhCompRawChRate = {};
247 std::vector<TH2*> fvhCompRawChTot = {};
249 std::vector<TH1*> fvhCompRemapChCount = {};
250 std::vector<TH2*> fvhCompRemapChRate = {};
251 std::vector<TH2*> fvhCompRemapChTot = {};
253 TH1* fhPulserChCounts = nullptr;
254 TH2* fhPulserChEvo = nullptr;
255
258 std::vector<UInt_t> fvuBmonHitCntChanMs = {};
259 std::vector<UInt_t> fvuBmonErrorCntChanMs = {};
260 std::vector<UInt_t> fvuBmonEvtLostCntChanMs = {};
261 std::vector<TH1*> fvhBmonMsgCntEvoChan = {};
262 std::vector<TH2*> fvhBmonMsgCntPerMsEvoChan = {};
263 std::vector<TH1*> fvhBmonHitCntEvoChan = {};
264 std::vector<TH2*> fvhBmonHitCntPerMsEvoChan = {};
265 std::vector<TH1*> fvhBmonErrorCntEvoChan = {};
266 std::vector<TH2*> fvhBmonErrorCntPerMsEvoChan = {};
267 std::vector<TH1*> fvhBmonEvtLostCntEvoChan = {};
268 std::vector<TH2*> fvhBmonEvtLostCntPerMsEvoChan = {};
269 std::vector<TProfile*> fvhBmonErrorFractEvoChan = {};
270 std::vector<TH2*> fvhBmonErrorFractPerMsEvoChan = {};
271 std::vector<TProfile*> fvhBmonEvtLostFractEvoChan = {};
272 std::vector<TH2*> fvhBmonEvtLostFractPerMsEvoChan = {};
274 TH1* fhBmonCompMapAll = nullptr;
275 TH2* fhBmonCompGet4 = nullptr;
276 TH1* fhBmonGet4Map = nullptr;
277 TH2* fhBmonGet4MapEvo = nullptr;
278 TH1* fhBmonChannelMapAll = nullptr;
279 TH2* fhBmonChannelTotAll = nullptr;
280 TH2* fhBmonHitMapEvoAll = nullptr;
281 TH2* fhBmonHitTotEvoAll = nullptr;
282 TH1* fhBmonChanHitMapAll = nullptr;
285 TH1* fhBmonCompMap = nullptr;
286 TH1* fhBmonChannelMap = nullptr;
287 TH2* fhBmonHitMapEvo = nullptr;
288 TH2* fhBmonHitTotEvo = nullptr;
289 TH1* fhBmonChanHitMap = nullptr;
290 TH2* fhBmonChanHitMapEvo = nullptr;
292 std::vector<TH1*> fvhBmonCompMapSpill = {};
293 std::vector<TH1*> fvhBmonChannelMapSpill = {};
294 TH1* fhBmonHitsPerSpill = nullptr;
296 TH1* fhBmonMsgCntEvo = nullptr;
297 TH1* fhBmonHitCntEvo = nullptr;
298 TH1* fhBmonErrorCntEvo = nullptr;
299 TH1* fhBmonLostEvtCntEvo = nullptr;
300 TProfile* fhBmonErrorFractEvo = nullptr;
301 TProfile* fhBmonLostEvtFractEvo = nullptr;
303 TH2* fhBmonMsgCntPerMsEvo = nullptr;
304 TH2* fhBmonHitCntPerMsEvo = nullptr;
311 TH2* fhBmonHitMapEvoPulser = nullptr;
312
314 double_t fdBmonMicrospillsTsLengthSec = 0.128; // 128 ms
316 uint32_t fuNbTsMicrospills = 0;
317 std::unique_ptr<double[]> fArrHitCounts;
318 std::unique_ptr<double[]> fArrErrCounts;
319 TH1* fhBmonMicrospillsDistHits = nullptr; // Only internal, not for users
320 TH1* fhBmonMicrospillsDistErrs = nullptr; // Only internal, not for users
331
335 uint32_t fuQFactorMaxNbTs = 400;
336 std::vector<double_t> fvdQfactorBinSizesNs = {20, 200, 1.28e3, 10.24e3, 25.6e3, 102.4e3, 204.8e3}; // 7 values
338 std::vector<double_t> fvdQfactorIntegrationNs = {2.56e6}; // 1 value
339 std::vector<uint32_t> fvuNbHistoCyclesPerTS = {};
340 std::vector<uint32_t> fvuQfactorIdxHistoCycleinTS = {};
342 std::vector<double_t> fvdQfactorHistMax = {2000., 400., 40., 20., 20., 20., 20.};
343 uint16_t fuQfactorNbPlots = 0;
344 std::vector<std::vector<uint32_t>> fvuQfactorNbBinsHisto;
345 std::vector<uint32_t> fvuQfactorNbHistoCyclesPerTS;
346 std::vector<std::vector<TH1*>> fvhBmonQfactHisto;
347 std::vector<std::vector<TH1*>> fvhBmonQfactQval;
348 std::vector<std::vector<TH1*>> fvhBmonQfactMean;
352 double_t ExtractQFactor(TH1* pHistoIn);
353 double_t ExtractMean(TH1* pHistoIn);
354
355
358 TCanvas* fcSummaryGet4s = nullptr;
359 std::vector<TCanvas*> fvcSumComp = {};
361 TCanvas* fcBmonSummary = nullptr;
362 TCanvas* fcBmonSummaryMap = nullptr;
363 TCanvas* fcBmonHitMaps = nullptr;
364 TCanvas* fcBmonGenCntsPerMs = nullptr;
365 TCanvas* fcBmonSpillCounts = nullptr;
366 TCanvas* fcBmonSpillCountsHori = nullptr;
367 TCanvas* fcBmonSpillCompCountsHori = nullptr;
369 TCanvas* fcBmonMicrospillsBinCnts = nullptr;
370 TCanvas* fcBmonMicrospillsRatios = nullptr;
371 TCanvas* fcBmonMicrospillsFraction = nullptr;
373 TCanvas* fcBmonQFactorVal = nullptr;
374 TCanvas* fcBmonQFactorMean = nullptr;
375 TCanvas* fcBmonQFactorBinCntDist = nullptr;
376
381 Double_t fdStartTimeSpill = -1.0;
382 Double_t fdBmonLastInterTime = -1.0;
385
397 std::vector<std::pair<TNamed*, std::string>>
399 std::vector<std::pair<TCanvas*, std::string>>
401
402 private:
405
406 ClassDef(CbmTofUnpackMonitor, 1)
407};
408
409#endif
bool Bool_t
Bool_t fbSpillOn
Spill detection.
void SetHistosStartTime(double_t value)
Set start time for evolution histos.
std::vector< TH1 * > fvhBmonChannelMapSpill
TH1 * fvhMsSize[kuMaxNbFlibLinks]
MS size histograms.
void CheckBmonSpillLimits(const double_t &dMsTime)
Fill BMon histograms.
std::vector< TH1 * > fvhBmonCompMapSpill
---> No Pulser cut + Spill detection
std::vector< std::pair< TNamed *, std::string > > fvpAllHistoPointers
TProfile * fvhMsSizeTime[kuMaxNbFlibLinks]
std::vector< TH1 * > fvhBmonErrorCntEvoChan
void FinalizeTsBmonQfactorHistos(uint64_t uTsTimeNs, std::vector< CbmBmonDigi > *vDigis)
Finalize Microspill histograms.
std::vector< TH1 * > fvhBmonEvtLostCntEvoChan
Bool_t ResetMsComponentSizeHistos(UInt_t component)
virtual Bool_t ResetHistograms()
static const UInt_t kuNbChanBmon
Bool_t ResetHistogramsQFactors(Bool_t bResetTime)
void SetBmonMicroSpillMode(bool value)
Activate the BMon mode.
CbmMcbm2018TofPar * fUnpackPar
Settings from parameter file.
void AddHistoToVector(TNamed *pointer, std::string sFolder="")
static const UInt_t kuNbChanBmonScvd
std::vector< std::pair< TCanvas *, std::string > > GetCanvasVector()
static constexpr UInt_t kuBmonChanMap[kuNbChanBmon]
std::vector< std::vector< uint32_t > > fvuQfactorNbBinsHisto
std::vector< double_t > fvdQfactorHistMax
Dimension: same as BinSizes vector!!
std::vector< TH1 * > fvhBmonHitCntEvoChan
std::vector< TH1 * > fvhCompRemapChCount
---> Per remapped (PADI) channel in Component
std::vector< uint32_t > fvuQfactorIdxHistoCycleinTS
virtual void FillSysMonitoringHistos(const uint32_t &uCurrCompIdx, const uint32_t &uGet4Id, const uint32_t &uType)
std::vector< double_t > fvdQfactorIntegrationNs
Hint: keep fractions of TS size + multiples of bin size and above 10 us.
Bool_t CreateHistogramsQFactors(Bool_t bBmon=kTRUE)
std::vector< std::vector< TH1 * > > fvhBmonQfactHisto
void AddCanvasToVector(TCanvas *pointer, std::string sFolder="")
Bool_t ResetHistogramsMicroSpills(Bool_t bResetTime)
bool GetBmonMicroSpillMode()
Read the Bmon mode.
static constexpr UInt_t kuBmonChanMapScvd[kuNbChanBmonScvd]
2024 mapping: +4 channels scvd added
void SetBmonMode(bool value)
Activate the BMon mode.
TCanvas * fcBmonQFactorVal
---> BMon Q-Factors monitoring
std::vector< TH2 * > fvhBmonQfactBinCountDistributionEvo
std::vector< std::pair< TNamed *, std::string > > GetHistoVector()
static const UInt_t kuBytesPerMessage
bool GetBmonQFactorMode()
Read the Bmon QFactor mode.
virtual void FillEpochMonitoringHistos(const uint32_t &uCurrCompIdx, const uint32_t &uGet4Id, const bool &bSyncFlag, const bool &bDataLoss, const bool &bEpochLoss, const bool &bMissmMatch)
virtual void FillScmMonitoringHistos(const uint32_t &uCurrCompIdx, const uint32_t &uGet4Id, const uint32_t &uCh, const uint32_t &uEdge, const uint32_t &uType)
std::vector< uint32_t > fvuNbHistoCyclesPerTS
std::vector< TH2 * > fvhCompGet4MessType
---> Per GET4 in Component
bool GetBmonScvdMode()
Read the BMon mode.
virtual void FillErrMonitoringHistos(const uint32_t &uCurrCompIdx, const uint32_t &uGet4Id, const uint32_t &uCh, const uint32_t &uType)
bool GetInternalHttpMode()
Read the Bmon mode.
TH1 * fhBmonCompMapAll
---> Channels maps without cuts
std::vector< TH1 * > fvhBmonMsgCntEvoChan
void FillMsSizeTime(UInt_t uMsComp, Double_t dTime, UInt_t uSize)
void SetSpillCheckInterval(Double_t dIntervalSec)
std::vector< TH2 * > fvhBmonErrorCntPerMsEvoChan
void SetLongDurationLimits(UInt_t uDurationSeconds, UInt_t uBinSize)
virtual void FillHitMonitoringHistos(const double_t &dMsTime, const uint32_t &uCurrCompIdx, const uint32_t &uGet4Id, const uint32_t &uRawCh, const uint32_t &uRemapCh, const uint32_t &uTot, const double_t &dHitTime, const uint32_t &uFts, bool bDiamond=false)
Fill general histograms.
Bool_t CreateMsComponentSizeHistos(UInt_t component)
void FillHitBmonMonitoringHistos(const double_t &dMsTime, const uint32_t &uCurrCompIdx, const uint32_t &uGet4Id, const uint32_t &uTot)
std::vector< UInt_t > fuBmonChanMap
std::unique_ptr< double[]> fArrErrCounts
std::vector< double_t > fvdQfactorBinSizesNs
void FinalizeTsBmonMicroSpillHistos()
Finalize BMon Microspill histograms.
Double_t fdStartTime
Total/maximum number of Get4 in system.
Bool_t ResetBmonHistograms(Bool_t bResetTime)
std::vector< UInt_t > fvuBmonErrorCntChanMs
std::vector< TH2 * > fvhBmonErrorFractPerMsEvoChan
double_t ExtractQFactor(TH1 *pHistoIn)
Q-Factor helper methods.
std::vector< TCanvas * > fvcSumComp
void SetBmonQFactorMode(bool value)
Activate the Bmon QFactor mode.
std::vector< TH2 * > fvhBmonMsgCntPerMsEvoChan
std::vector< TH2 * > fvhCompRawChRate
UInt_t fuNbOfComps
Readout chain dimensions and mapping.
double_t GetHistosStartTime()
Set start time for evolution histos.
std::vector< TH2 * > fvhCompRawChTot
TH1 * fhBmonCompMap
---> No Pulser cut
std::vector< UInt_t > fvuBmonEvtLostCntChanMs
TCanvas * fcBmonMicrospillsBinCnts
---> BMon Microspills monitoring
virtual void FinalizeMsHistos()
Finalize pulser histograms.
std::vector< TH2 * > fvhCompRemapChRate
void FillErrBmonMonitoringHistos(const double_t &dMsTime, const uint32_t &uCurrCompIdx, const uint32_t &uGet4Id, const bool &bErrEvtLost)
std::vector< TH2 * > fvhCompGet4ChErrors
UInt_t fuNbChanBmon
Runtime values.
static const UInt_t kuNbSpillPlots
std::unique_ptr< double[]> fArrHitCounts
std::vector< TH2 * > fvhCompGet4ChScm
virtual Bool_t CreateHistograms()
UInt_t fuNbOfGet4PerComp
Total number of Components in the system.
std::vector< uint32_t > fvuQfactorNbHistoCyclesPerTS
void SetSpillThresholdNonPulser(UInt_t uCntLimit)
std::vector< TH2 * > fvhCompRemapChTot
TCanvas * fcBmonSummary
---> BMon
TH1 * fhBmonMsgCntEvo
---> Global Rate
bool fBmonMode
Flag if debug mode is active or not.
std::vector< TH1 * > fvhBmonQfactBinCountDistribution
bool GetTofQFactorMode()
Read the Tof QFactor mode.
void SetBmonChannelMap(std::vector< uint32_t > vChanMapIn)
std::vector< TH2 * > fvhBmonEvtLostCntPerMsEvoChan
static const UInt_t kuMaxNbFlibLinks
---> Constants
void FillMsSize(UInt_t uMsComp, UInt_t uSize)
Fill Ms Component Size Histos.
std::vector< TH1 * > fvhCompRawChCount
---> Per raw channel in Component
void FillHitBmonQfactorHistos(const double_t &dMsTime, const double_t &dTime)
Fill Microspill histograms.
std::vector< TH2 * > fvhBmonEvtLostFractPerMsEvoChan
void SetHistoFileName(TString nameIn)
CbmTofUnpackMonitor operator=(const CbmTofUnpackMonitor &)
std::vector< TProfile * > fvhBmonErrorFractEvoChan
virtual Bool_t Init(CbmMcbm2018TofPar *digiParSet)
Init all required parameter informations and histograms.
void SetSpillThreshold(UInt_t uCntLimit)
std::vector< std::pair< TCanvas *, std::string > > fvpAllCanvasPointers
Vector of pointers to histograms + optional folder name.
UInt_t fuMinTotPulser
---> User settings: Data correction parameters
std::vector< TH2 * > fvhBmonHitCntPerMsEvoChan
TH2 * fhBmonMsgCntPerMsEvo
---> Global Rate per MS
UInt_t fuNbOfChannelsPerComp
Number of channels per Get4, constant.
void SetBmonScvdMode(bool value)
Activate the BMon sCVD mode.
void SetPulserTotLimits(UInt_t uMin, UInt_t uMax)
std::vector< TProfile * > fvhBmonEvtLostFractEvoChan
TH1 * fhBmonChannelMapPulser
---> Pulser
void SetTofQFactorMode(bool value)
Activate the Tof QFactor mode.
bool GetBmonMode()
Read the BMon mode.
void FillHitBmonMicroSpillHistos(const double_t &dMsTime, const double_t &dTime)
Fill BMon Microspill histograms.
void DrawCanvasesQFactors(Bool_t bBmon=kTRUE)
UInt_t fuNbOfChannelsPerGet4
Max number of Get4 per component.
void Finish()
Write all histograms and canvases to file.
double_t ExtractMean(TH1 *pHistoIn)
UInt_t fuNbOfGet4InSyst
Number of channels per Component, recalculated.
virtual void FinalizeTsHistos(double_t)
Finalize pulser histograms.
void SetInternalHttpMode(bool value)
Activate/de-activate the internal histo serve mode.
std::vector< UInt_t > fvuBmonHitCntChanMs
double_t fdBmonMicrospillsTsLengthSec
BMon micro-spills monitoring histograms.
CbmTofUnpackMonitor(const CbmTofUnpackMonitor &)
Vector of pointers to canvases + optional folder name.
std::vector< std::vector< TH1 * > > fvhBmonQfactQval
TH1 * fhPulserChCounts
---> Pulser
std::vector< std::vector< TH1 * > > fvhBmonQfactMean