5#ifndef CbmStsUnpackMonitor_H
6#define CbmStsUnpackMonitor_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);
204 const UShort_t& usRawAdc,
const Double_t& dCalAdc,
const UShort_t& usRawTs,
205 const bool& isHitMissedEvts);
208 const UShort_t& usRawTs,
const bool& isHitMissedEvts);
211 const UInt_t& uChanInFeb,
const Double_t& dAbsTimeSec,
const bool& isHitMissedEvts);
225 void FillDuplicateHitsAdc(
const uint32_t& uFebIdx,
const uint32_t& uChanInFeb,
const uint16_t& usAdc);
339 std::vector<std::pair<TNamed*, std::string>>
341 std::vector<std::pair<TCanvas*, std::string>>
static double dTsStartTime
void SetHistoFileName(TString nameIn)
void FillStsMessTypePerDpb(UInt_t DpbIdx, uint16_t typeMess)
void FillMsSize(UInt_t uMsComp, UInt_t uSize)
void FillMsCntEvo(ULong64_t MsIdx)
Bool_t ResetDebugHistograms()
void FillStsChanAdcRaw(UInt_t uAsicIdx, UShort_t usChan, UShort_t usRawAdc)
void PrintDebugInfo(const uint64_t MsStartTime, const size_t NrProcessedTs, const uint16_t msDescriptorFlags, const uint32_t uSize)
TH2 * fhStsMessTypePerElink
void CountRawHit(uint32_t uFebIdx, uint32_t uChanInFeb)
void FillStsDpbRawTsMsb(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)
Bool_t CreateMsComponentSizeHistos(UInt_t component)
std::vector< TProfile2D * > fvhDupliChRatioEvo
void FillStsFebChanHitRateEvoLong(UInt_t uFebIdx, Double_t dTimeSinceStartMin, UInt_t uChanInFeb)
virtual ~CbmStsUnpackMonitor()
void FillStsAllAsicsHitRateEvo(Double_t dTimeSinceStartSec, UInt_t uAsicIdx)
std::vector< uint32_t > fvuNbRawTsFeb
Per timeslice counters to evaluate the eventual raw messages rejection per FEB.
std::vector< TH1 * > fvhStsFebHitRateEvoLong
std::vector< TProfile2D * > fvhRawChRatioEvo
TProfile2D * fhRawHitRatioEvoPerFeb
void FillStsStatusMessType(UInt_t uAsicIdx, UShort_t usStatusField)
void SetLongDurationLimits(UInt_t uDurationSeconds, UInt_t uBinSize)
void FillMsErrorsEvo(ULong64_t MsIdx, uint16_t MsErrorType)
Bool_t CreateDebugHistograms(CbmMcbm2018StsPar *pUnpackPar)
void FillStsAllFebsHitRateEvo(Double_t dTimeSinceStartSec, UInt_t uFebIdx)
void FillStsHitsElinkPerDpb(UInt_t DpbIdx, UInt_t ElinkIdx)
CbmStsUnpackMonitor(const CbmStsUnpackMonitor &)
Vector of pointers to canvases + optional folder name.
void FillStsDpbRawTsMsbDpb(UInt_t uCurrDpbIdx, ULong_t ulCurrentTsMsb)
void FillStsFebChanAdcRawProf(UInt_t uFebIdx, UInt_t uChanInFeb, UShort_t usRawAdc)
std::vector< TH1 * > fvhStsFebMissEvtEvo
std::vector< TProfile * > fvhRawDupliRatioPerCh
std::vector< TH2 * > fvhStsFebChanHitRateEvoLong
void FillStsFebChanCntRaw(UInt_t uFebIdx, UInt_t uChanInFeb)
Fill general "per Feb" histogram vectors.
void FillStsDpbRawTsMsbSx(UInt_t uCurrDpbIdx, ULong_t ulCurrentTsMsb)
void FillStsFebChanAdcCal(UInt_t uFebIdx, UInt_t uChanInFeb, Double_t dCalAdc)
TH1 * fhDigisTimeInRun
General histograms.
void CountDigi(uint32_t uFebIdx, uint32_t uChanInFeb)
uint32_t fNrElinksPerDpb
Number of elinks per dpb, extracted from the parset.
std::vector< TProfile2D * > fvhRawHitRatioEvoPerCh
void AddHistoToVector(TNamed *pointer, std::string sFolder="")
void AddCanvasToVector(TCanvas *pointer, std::string sFolder="")
std::vector< TProfile * > fvhHitChRatio
void FillStsFebChanMissEvt(UInt_t uFebIdx, UInt_t uChan, bool missEvtFlag)
std::vector< uint32_t > fvuNbDigisTsFeb
TH2 * fhStsMessTypePerDpb
void FillStsMessType(uint16_t typeMess)
Fill debugging histograms.
void FillDigisTimeInRun(Double_t Time)
void FillStsFebAsicHitCounts(UInt_t uFebIdx, UInt_t uAsicInFeb)
std::vector< TH2 * > fvhStsChanAdcRaw
Bool_t ResetMsComponentSizeHistos(UInt_t component)
void FillStsFebAsicHitRateEvoLong(UInt_t uFebIdx, Double_t dTimeSinceStartMin, UInt_t uAsicInFeb)
UInt_t fuLongHistoNbSeconds
static const UInt_t kiMaxNbFlibLinks
std::vector< TCanvas * > fvcStsSumm
Canvases.
std::vector< TProfile * > fvhStsFebChanAdcRawProf
std::vector< std::pair< TNamed *, std::string > > fvpAllHistoPointers
std::vector< TH2 * > fvhStsFebChanRawTs
CbmStsUnpackMonitor operator=(const CbmStsUnpackMonitor &)
std::vector< TProfile * > fvhDupliChRatio
std::vector< uint32_t > vNbMessType
void FillStsFebMissEvtEvo(UInt_t uFebIdx, Double_t dTimeSinceStartSec)
std::vector< TH2 * > fvhStsFebChanMissEvtEvo
std::vector< TH1 * > fvhStsFebChanCntRaw
TH2 * fhStsAllAsicsHitRateEvo
void FillStsChanMissEvt(UInt_t uAsicIdx, UShort_t usChan, bool missedEvtFlag)
std::vector< TH2 * > fvhStsFebChanMissEvt
std::vector< std::pair< TCanvas *, std::string > > GetCanvasVector()
void ProcessDebugInfo(const stsxyter::Message &Mess, const UInt_t &uCurrDpbIdx)
TProfile * fhRawHitRatioPerFeb
TProfile * fvhMsSizeTime[kiMaxNbFlibLinks]
std::vector< TProfile * > fvhStsFebChanAdcCalProf
std::vector< TProfile * > fvhStsChanAdcRawProf
std::vector< TH2 * > fvhStsFebChanHitRateEvo
void FillPerTimesliceCountersHistos(double_t dTsStartTime)
void FillStsFebChanRawTs(UInt_t uFebIdx, UInt_t uChan, UShort_t usRawTs)
void FillStsFebHitRateEvoLong(UInt_t uFebIdx, Double_t dTimeSinceStartMin)
std::vector< TH2 * > fvhStsFebAsicHitRateEvoLong
UInt_t fuLongHistoBinSizeSec
void FillStsChanCntRaw(UInt_t uAsicIdx, UShort_t usChan)
Fill debugging "per Asic" histogram vectors.
std::vector< TH2 * > fvhChDupliAdc
std::vector< TH2 * > fvhStsChanMissEvt
void FillStsFebAsicMissEvtEvo(UInt_t uFebIdx, Double_t dTimeSinceStartSec, UInt_t uAsicInFeb)
void Finish()
Write all histograms and canvases to file.
void FillStsFebHitRateEvo(UInt_t uFebIdx, Double_t dTimeSinceStartSec)
TH2 * fhStsStatusMessType
void FillStsFebChanAdcCalProf(UInt_t uFebIdx, UInt_t uChanInFeb, Double_t dCalAdc)
void FillStsMessTypePerElink(UInt_t ElinkIdx, uint16_t typeMess)
double_t dFirstTsStartTime
Rate evolution histos.
std::vector< std::pair< TCanvas *, std::string > > fvpAllCanvasPointers
Vector of pointers to histograms + optional folder name.
void FillStsFebChanMissEvtEvo(UInt_t uFebIdx, Double_t dTimeSinceStartSec, UInt_t uChanInFeb)
std::vector< TProfile * > fvhRawChRatio
General "per Feb" histogram vectors.
std::vector< TH2 * > fvhStsFebAsicHitRateEvo
std::vector< TH2 * > fvhStsFebChanAdcRaw
void FillStsChanRawTs(UInt_t uAsicIdx, UShort_t usChan, UShort_t usRawTs)
std::vector< TProfile2D * > fvhRawDupliRatioEvoPerCh
bool GetDebugMode()
Activate the debug mode.
void FillDuplicateHitsAdc(const uint32_t &uFebIdx, const uint32_t &uChanInFeb, const uint16_t &usAdc)
void FillStsChanAdcRawProf(UInt_t uAsicIdx, UShort_t usChan, UShort_t usRawAdc)
std::vector< std::vector< uint32_t > > fvvuNbDigisTsChan
void FillVectorCapacity(ULong64_t TsIdx, UInt_t Capacity)
Bool_t Init(CbmMcbm2018StsPar *digiParSet)
Init all required parameter informations and histograms.
TH2 * fhStsFebAsicHitCounts
Bool_t CreateHistograms(CbmMcbm2018StsPar *pUnpackPar)
std::vector< std::vector< uint32_t > > fvvuNbRawTsChan
Per timeslice counters to evaluate the eventual raw messages rejection per [FEB, chan] pairs.
std::vector< TH2 * > fvhStsFebChanAdcCal
std::vector< std::pair< TNamed *, std::string > > GetHistoVector()
void FillStsFebChanHitRateEvo(UInt_t uFebIdx, Double_t dTimeSinceStartSec, UInt_t uChanInFeb)
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)
void FillStsFebAsicHitRateEvo(UInt_t uFebIdx, Double_t dTimeSinceStartSec, UInt_t uAsicInFeb)
void FillHitDebugMonitoringHistos(const UInt_t &uAsicIdx, const UShort_t &usChan, const UShort_t &usRawAdc, const UShort_t &usRawTs, const bool &isHitMissedEvts)
std::vector< TH2 * > fvhStsFebAsicMissEvtEvo
void SetDebugMode(bool value)
Activate the debug mode.
TH1 * fvhMsSize[kiMaxNbFlibLinks]
bool fDebugMode
Flag if debug mode is active or not.
void FillMsSizeTime(UInt_t uMsComp, Double_t dTime, UInt_t uSize)
TH1 * fhStsMessType
Debugging histograms.
std::vector< TH1 * > fvhStsChanCntRaw
Debugging "per Asic" histogram vectors.
TH2 * fhStsHitsElinkPerDpb
std::vector< TH1 * > fvhStsFebHitRateEvo
std::vector< TProfile * > fvhRawHitRatioPerCh
TH2 * fhStsDpbRawTsMsbDpb
std::vector< TCanvas * > fvcStsSmxErr
void FillStsFebChanAdcRaw(UInt_t uFebIdx, UInt_t uChanInFeb, UShort_t usRawAdc)
UInt_t GetMaxNbFlibLinks()
TH2 * fhStsAllFebsHitRateEvo
std::vector< TProfile2D * > fvhHitChRatioEvo
void FillVectorSize(ULong64_t TsIdx, UInt_t Size)
Fill general histograms.
std::vector< TH2 * > fvhStsChanRawTs