12#ifndef CbmMcbm2018MonitorAlgoBmon_H
13#define CbmMcbm2018MonitorAlgoBmon_H
45 virtual Bool_t
Init();
55 Bool_t
ProcessTs(
const fles::Timeslice& ts);
57 Bool_t
ProcessMs(
const fles::Timeslice& ts,
size_t uMsCompIdx,
size_t uMsIdx);
75 inline void SetChannelMap(UInt_t uChan0, UInt_t uChan1, UInt_t uChan2, UInt_t uChan3, UInt_t uChan4, UInt_t uChan5,
76 UInt_t uChan6, UInt_t uChan7)
UInt_t fuNrOfChannelsPerFee
Number of channels in each GET4.
TH2 * fhLostEvtFractPerMsEvo
Bool_t fbSpillOn
All hits (time in bins, TOT in bins, asic, channel) in last MS, sorted with "<" operator.
UInt_t fuNrOfFeePerGdpb
gDPB ID to index map
UInt_t fuOffSpillCountLimitNonPulser
UInt_t fuNrOfGet4PerFee
Number of FEBs per GDPB.
Bool_t ResetHistograms(Bool_t bResetTime=kTRUE)
CbmMcbm2018MonitorAlgoBmon()
Double_t fdStartTime
Epoch + Epoch Cycle.
UInt_t fuCurrentEquipmentId
UInt_t fuNrOfGet4
Number of channels in each FEE.
Int_t fiRunStartDateTimeSec
Index of the DPB from which the MS currently unpacked is coming.
Bool_t ReInitContainers()
Double_t fdSpillCheckInterval
CbmMcbm2018MonitorAlgoBmon operator=(const CbmMcbm2018MonitorAlgoBmon &)
std::vector< TH2 * > fvhErrorCntPerMsEvoChan
std::vector< TH1 * > fvhChannelMapSpill
Bool_t fbDebugMonitorMode
Switch ON the filling of a minimal set of histograms.
std::vector< gdpbv100::FullMessage > fvmHitsInMs
[DPB]
ULong64_t fulCurrentMsIdx
Bool_t ProcessTs(const fles::Timeslice &ts, size_t)
static const Int_t kiMaxNbFlibLinks
Constants.
ULong64_t fulCurrentTsIdx
std::vector< TH2 * > fvhErrorFractPerMsEvoChan
UInt_t fuCurrDpbIdx
Temp holder until Current equipment ID is properly filled in MS.
std::vector< ULong64_t > fvulCurrentEpochCycle
Current epoch index, per DPB.
std::vector< UInt_t > fvuErrorCntChanMs
std::vector< TH2 * > fvhHitCntPerMsEvoChan
std::vector< TProfile * > fvhEvtLostFractEvoChan
std::vector< TH1 * > fvhHitCntEvoChan
void SetSpillThreshold(UInt_t uCntLimit)
TCanvas * fcSpillCountsHori
std::map< UInt_t, UInt_t > fGdpbIdIndexMap
Total number of GDPBs in the system.
UInt_t fuCurrentSpillPlot
std::vector< TH2 * > fvhEvtLostCntPerMsEvoChan
UInt_t fuCurrDpbId
Current equipment ID, tells from which DPB the current MS is originating.
CbmMcbm2018TofPar * fUnpackPar
Settings from parameter file.
std::chrono::steady_clock::time_point ftStartTimeUnix
void SetMonitorMode(Bool_t bFlagIn=kTRUE)
TProfile * fhLostEvtFractEvo
TH1 * fhChannelMapPulser
Pulser.
UInt_t fuOffSpillCountLimit
std::vector< UInt_t > fvuHitCntChanMs
std::vector< TH2 * > fvhEvtLostFractPerMsEvoChan
std::vector< Bool_t > fvbMaskedComponents
Switch ON the filling of a additional set of histograms.
std::vector< TH1 * > fvhEvtLostCntEvoChan
TCanvas * fcSummary
Canvases.
TProfile * fhErrorFractEvo
UInt_t fuMinTotPulser
Number of channels per GDPB.
TCanvas * fcSpillDpbCountsHori
Double_t fdTsStopTimeCore
Time in ns of current TS from the index of the first MS first component.
UInt_t fuNrOfGdpbs
Readout chain dimensions and mapping.
std::vector< TProfile * > fvhErrorFractEvoChan
Double_t fdMsTime
End Time in ns of current TS Core from the index of the first MS first component.
void AddMsComponentToList(size_t component, UShort_t usDetectorId)
UInt_t fuDiamChanMap[kuNbChanDiamond]
std::vector< std::vector< gdpbv100::Message > > fvvmEpSupprBuffer
Buffers.
CbmMcbm2018MonitorAlgoBmon(const CbmMcbm2018MonitorAlgoBmon &)
Bool_t CreateHistograms()
TH1 * fhMsgCntEvo
Global Rate.
static const UInt_t kuBytesPerMessage
Bool_t ProcessTs(const fles::Timeslice &ts)
std::vector< ULong64_t > fvulCurrentEpochFull
Epoch cycle from the Ms Start message and Epoch counter flip.
UInt_t fuNrOfChannelsPerGet4
Number of GET4s per FEE.
UInt_t fuHistoryHistoSize
Histograms related variables.
std::map< gdpbv100::MessageTypes, UInt_t > fmMsgCounter
void SetChannelMap(UInt_t uChan0, UInt_t uChan1, UInt_t uChan2, UInt_t uChan3, UInt_t uChan4, UInt_t uChan5, UInt_t uChan6, UInt_t uChan7)
TH2 * fhErrorFractPerMsEvo
UInt_t fuNrOfChannelsPerGdpb
Number of GET4s per GDPB.
std::vector< TH1 * > fvhDpbMapSpill
UInt_t fuGet4Nr
running number (0 to fuNrOfGet4PerGdpb) of the Get4 chip of a unique GDPB for current message
std::vector< ULong64_t > fvulCurrentEpoch
Data format control: Current time references for each GDPB: merged epoch marker, epoch cycle,...
TH2 * fhLostEvtCntPerMsEvo
Double_t fdStartTimeSpill
std::vector< TH1 * > fvhMsgCntEvoChan
Int_t fiBinSizeDatePlots
Start of run time since "epoch" in s, for the plots with date as X axis.
std::vector< TH2 * > fvhMsgCntPerMsEvoChan
void SetSpillCheckInterval(Double_t dIntervalSec)
UInt_t fuNrOfGet4PerGdpb
Total number of Get4 chips in the system.
void SetHistoryHistoSize(UInt_t inHistorySizeSec=1800)
UInt_t fuGet4Id
Bin size in s for the plots with date as X axis.
Bool_t fbMonitorMode
Control flags.
std::vector< UInt_t > fvuEvtLostCntChanMs
std::vector< TH1 * > fvhErrorCntEvoChan
Bool_t ProcessMs(const fles::Timeslice &ts, size_t uMsCompIdx, size_t uMsIdx)
~CbmMcbm2018MonitorAlgoBmon()
static const UInt_t kuNbSpillPlots
Channels map.
static const UInt_t kuNbChanDiamond
void SetPulserTotLimits(UInt_t uMin, UInt_t uMax)
void SetSpillThresholdNonPulser(UInt_t uCntLimit)
UInt_t fuNonPulserCountsLastInter
TH1 * fhDpbMap
Map from electronics channel to Diamond strip.
UInt_t fuMsIndex
Start Time in ns of current MS from its index field in header.