5#ifndef CbmMuchUnpackMonitor_H
6#define CbmMuchUnpackMonitor_H
14#include "TProfile2D.h"
32 void PrintDebugInfo(
const uint64_t MsStartTime,
const size_t NrProcessedTs,
const uint16_t msDescriptorFlags,
33 const uint32_t uSize);
210 const UShort_t& usRawAdc,
const Double_t& dCalAdc,
const UShort_t& usRawTs,
211 const bool& isHitMissedEvts);
214 const UShort_t& usRawTs,
const bool& isHitMissedEvts);
217 const UInt_t& uChanInFeb,
const Double_t& dAbsTimeSec,
const bool& isHitMissedEvts);
231 void FillDuplicateHitsAdc(
const uint32_t& uFebIdx,
const uint32_t& uChanInFeb,
const uint16_t& usAdc);
345 std::vector<std::pair<TNamed*, std::string>>
347 std::vector<std::pair<TCanvas*, std::string>>
static double dTsStartTime
std::vector< std::vector< uint32_t > > fvvuNbDigisTsChan
Bool_t CreateMsComponentSizeHistos(UInt_t component)
void FillMuchChanMissEvt(UInt_t uAsicIdx, UShort_t usChan, bool missedEvtFlag)
void FillMuchMessTypePerDpb(UInt_t DpbIdx, uint16_t typeMess)
void FillMuchDpbRawTsMsbDpb(UInt_t uCurrDpbIdx, ULong_t ulCurrentTsMsb)
void FillMuchAllFebsHitRateEvo(Double_t dTimeSinceStartSec, UInt_t uFebIdx)
void PrintDebugInfo(const uint64_t MsStartTime, const size_t NrProcessedTs, const uint16_t msDescriptorFlags, const uint32_t uSize)
std::vector< TProfile * > fvhHitChRatio
void FillPerTimesliceCountersHistos(double_t dTsStartTime)
void FillMuchFebMissEvtEvo(UInt_t uFebIdx, Double_t dTimeSinceStartSec)
TProfile2D * fhRawHitRatioEvoPerFeb
void ProcessDebugInfo(const stsxyter::Message &Mess, const UInt_t &uCurrDpbIdx)
void FillMuchFebChanHitRateEvoLong(UInt_t uFebIdx, Double_t dTimeSinceStartMin, UInt_t uChanInFeb)
Bool_t CreateDebugHistograms(CbmMuchUnpackPar *pUnpackPar)
std::vector< std::pair< TNamed *, std::string > > GetHistoVector()
TH2 * fhMuchAllAsicsHitRateEvo
TH2 * fhMuchHitsElinkPerDpb
double_t dFirstTsStartTime
Rate evolution histos.
void FillMuchFebChanRawTs(UInt_t uFebIdx, UInt_t uChan, UShort_t usRawTs)
CbmMuchUnpackMonitor(const CbmMuchUnpackMonitor &)
Vector of pointers to canvases + optional folder name.
std::vector< std::pair< TCanvas *, std::string > > fvpAllCanvasPointers
Vector of pointers to histograms + optional folder name.
TH2 * fhMuchFebAsicHitCounts
void SetDebugMode(bool value)
Activate the debug mode.
std::vector< uint32_t > vNbMessType
TH2 * fhMuchMessTypePerDpb
void CountRawHit(uint32_t uFebIdx, uint32_t uChanInFeb)
std::vector< TProfile * > fvhRawChRatio
General "per Feb" histogram vectors.
TH1 * fhDigisTimeInRun
General histograms.
std::vector< std::pair< TNamed *, std::string > > fvpAllHistoPointers
static const UInt_t kiMaxNbFlibLinks
void SetLongDurationLimits(UInt_t uDurationSeconds, UInt_t uBinSize)
std::vector< TH2 * > fvhMuchChanRawTs
void FillMuchChanRawTs(UInt_t uAsicIdx, UShort_t usChan, UShort_t usRawTs)
void FillMuchAllAsicsHitRateEvo(Double_t dTimeSinceStartSec, UInt_t uAsicIdx)
Bool_t Init(CbmMuchUnpackPar *digiParSet)
Init all required parameter informations and histograms.
std::vector< TH1 * > fvhMuchFebChanCntRaw
std::vector< TH1 * > fvhMuchFebHitRateEvoLong
bool GetDebugMode()
Activate the debug mode.
void FillVectorCapacity(ULong64_t TsIdx, UInt_t Capacity)
void FillMuchFebChanMissEvt(UInt_t uFebIdx, UInt_t uChan, bool missEvtFlag)
std::vector< TProfile2D * > fvhHitChRatioEvo
void FillMuchFebChanAdcRaw(UInt_t uFebIdx, UInt_t uChanInFeb, UShort_t usRawAdc)
std::vector< TH1 * > fvhMuchFebMissEvtEvo
std::vector< TH2 * > fvhMuchFebAsicHitRateEvo
std::vector< TProfile * > fvhRawDupliRatioPerCh
void FillDuplicateHitsAdc(const uint32_t &uFebIdx, const uint32_t &uChanInFeb, const uint16_t &usAdc)
TH1 * fvhMsSize[kiMaxNbFlibLinks]
std::vector< TH2 * > fvhMuchFebChanHitRateEvoLong
void FillMuchFebHitRateEvoLong(UInt_t uFebIdx, Double_t dTimeSinceStartMin)
void FillMuchFebAsicHitCounts(UInt_t uFebIdx, UInt_t uAsicInFeb)
std::vector< TH2 * > fvhMuchChanMissEvt
void FillMsErrorsEvo(ULong64_t MsIdx, uint16_t MsErrorType)
std::vector< TH1 * > fvhMuchFebHitRateEvo
std::vector< TProfile2D * > fvhRawDupliRatioEvoPerCh
std::vector< TProfile2D * > fvhRawChRatioEvo
void FillMuchStatusMessType(UInt_t uAsicIdx, UShort_t usStatusField)
void FillMuchMessTypePerElink(UInt_t ElinkIdx, uint16_t typeMess)
std::vector< TH2 * > fvhMuchFebChanHitRateEvo
std::vector< std::pair< TCanvas *, std::string > > GetCanvasVector()
void FillHitDebugMonitoringHistos(const UInt_t &uAsicIdx, const UShort_t &usChan, const UShort_t &usRawAdc, const UShort_t &usRawTs, const bool &isHitMissedEvts)
std::vector< TH2 * > fvhMuchFebAsicHitRateEvoLong
void SetHistoFileName(TString nameIn)
void AddCanvasToVector(TCanvas *pointer, std::string sFolder="")
virtual ~CbmMuchUnpackMonitor()
void FillHitMonitoringHistos(const UInt_t &uFebIdx, const UShort_t &usChan, const UInt_t &uChanInFeb, const UShort_t &usRawAdc, const Double_t &dCalAdc, const UShort_t &usRawTs, const bool &isHitMissedEvts)
std::vector< TCanvas * > fvcMuchSumm
Canvases.
void FillMuchFebChanAdcCalProf(UInt_t uFebIdx, UInt_t uChanInFeb, Double_t dCalAdc)
TH2 * fhMuchDpbRawTsMsbDpb
void FillMsSizeTime(UInt_t uMsComp, Double_t dTime, UInt_t uSize)
void FillMuchDpbRawTsMsbSx(UInt_t uCurrDpbIdx, ULong_t ulCurrentTsMsb)
void FillHitEvoMonitoringHistos(const UInt_t &uFebIdx, const UInt_t &uAsicIdx, const UInt_t &uAsicInFeb, const UInt_t &uChanInFeb, const Double_t &dAbsTimeSec, const bool &isHitMissedEvts)
void FillMuchFebAsicMissEvtEvo(UInt_t uFebIdx, Double_t dTimeSinceStartSec, UInt_t uAsicInFeb)
std::vector< TH2 * > fvhChDupliAdc
std::vector< TProfile2D * > fvhRawHitRatioEvoPerCh
TH2 * fhMuchMessTypePerElink
void FillMuchFebAsicHitRateEvoLong(UInt_t uFebIdx, Double_t dTimeSinceStartMin, UInt_t uAsicInFeb)
void FillMuchFebChanCntRaw(UInt_t uFebIdx, UInt_t uChanInFeb)
Fill general "per Feb" histogram vectors.
void FillDigisTimeInRun(Double_t Time)
std::vector< TH2 * > fvhMuchChanAdcRaw
std::vector< TH1 * > fvhMuchChanCntRaw
Debugging "per Asic" histogram vectors.
std::vector< TProfile2D * > fvhDupliChRatioEvo
std::vector< uint32_t > fvuNbRawTsFeb
Per timeslice counters to evaluate the eventual raw messages rejection per FEB.
void FillMuchFebChanAdcRawProf(UInt_t uFebIdx, UInt_t uChanInFeb, UShort_t usRawAdc)
TProfile * fvhMsSizeTime[kiMaxNbFlibLinks]
TH1 * fhMuchMessType
Debugging histograms.
Bool_t ResetMsComponentSizeHistos(UInt_t component)
void FillMuchFebHitRateEvo(UInt_t uFebIdx, Double_t dTimeSinceStartSec)
void FillMuchChanAdcRawProf(UInt_t uAsicIdx, UShort_t usChan, UShort_t usRawAdc)
void FillMuchFebChanHitRateEvo(UInt_t uFebIdx, Double_t dTimeSinceStartSec, UInt_t uChanInFeb)
TH2 * fhMuchStatusMessType
std::vector< TProfile * > fvhRawHitRatioPerCh
bool fDebugMode
Flag if debug mode is active or not.
std::vector< TProfile * > fvhMuchChanAdcRawProf
void FillMsSize(UInt_t uMsComp, UInt_t uSize)
std::vector< std::vector< uint32_t > > fvvuNbRawTsChan
Per timeslice counters to evaluate the eventual raw messages rejection per [FEB, chan] pairs.
std::vector< TProfile * > fvhMuchFebChanAdcCalProf
void FillMuchFebAsicHitRateEvo(UInt_t uFebIdx, Double_t dTimeSinceStartSec, UInt_t uAsicInFeb)
std::vector< TH2 * > fvhMuchFebAsicMissEvtEvo
UInt_t fuLongHistoNbSeconds
void FillVectorSize(ULong64_t TsIdx, UInt_t Size)
Fill general histograms.
void FillMuchChanCntRaw(UInt_t uAsicIdx, UShort_t usChan)
Fill debugging "per Asic" histogram vectors.
TH2 * fhMuchAllFebsHitRateEvo
void Finish()
Write all histograms and canvases to file.
std::vector< TH2 * > fvhMuchFebChanRawTs
Bool_t CreateHistograms(CbmMuchUnpackPar *pUnpackPar)
void FillMsCntEvo(ULong64_t MsIdx)
std::vector< TH2 * > fvhMuchFebChanMissEvtEvo
void CountDigi(uint32_t uFebIdx, uint32_t uChanInFeb)
void FillMuchFebChanMissEvtEvo(UInt_t uFebIdx, Double_t dTimeSinceStartSec, UInt_t uChanInFeb)
TH2 * fhMuchDpbRawTsMsbSx
CbmMuchUnpackMonitor operator=(const CbmMuchUnpackMonitor &)
void FillMuchChanAdcRaw(UInt_t uAsicIdx, UShort_t usChan, UShort_t usRawAdc)
UInt_t fuLongHistoBinSizeSec
std::vector< uint32_t > fvuNbDigisTsFeb
void FillMuchFebChanAdcCal(UInt_t uFebIdx, UInt_t uChanInFeb, Double_t dCalAdc)
TProfile * fhRawHitRatioPerFeb
void FillMuchDpbRawTsMsb(UInt_t uCurrDpbIdx, ULong_t ulCurrentTsMsb)
std::vector< TProfile * > fvhMuchFebChanAdcRawProf
Bool_t ResetDebugHistograms()
std::vector< TCanvas * > fvcMuchSmxErr
std::vector< TH2 * > fvhMuchFebChanMissEvt
UInt_t GetMaxNbFlibLinks()
std::vector< TH2 * > fvhMuchFebChanAdcRaw
uint32_t fNrElinksPerDpb
Number of elinks per dpb, extracted from the parset.
void AddHistoToVector(TNamed *pointer, std::string sFolder="")
std::vector< TH2 * > fvhMuchFebChanAdcCal
void FillMuchMessType(uint16_t typeMess)
Fill debugging histograms.
void FillMuchHitsElinkPerDpb(UInt_t DpbIdx, UInt_t ElinkIdx)
std::vector< TProfile * > fvhDupliChRatio