12#ifndef CbmStar2019EventBuilderEtofAlgo_H
13#define CbmStar2019EventBuilderEtofAlgo_H
40 virtual Bool_t
Init();
50 Bool_t
ProcessTs(
const fles::Timeslice& ts);
52 Bool_t
ProcessMs(
const fles::Timeslice& ts,
size_t uMsCompIdx,
size_t uMsIdx);
135 std::vector<std::vector<gdpbv100::FullMessage>>
174 std::vector<std::vector<std::pair<uint64_t,
175 std::bitset<kuNbAsicPerGdpb>>>>
221 std::pair<uint64_t, std::bitset<kuNbAsicPerGdpb>> statusIn);
std::vector< Int_t > fviNrOfRpc
ULong64_t fulCurrentTsIndex
Running indices.
std::vector< ULong64_t > fvulStarTsMsb
[sector]
Bool_t fbTriggerAfterCandWinFound
void SetMonitorMode(Bool_t bFlagIn=kTRUE)
UInt_t fuNrOfChannelsPerGet4
std::vector< std::vector< std::pair< uint64_t, std::bitset< kuNbAsicPerGdpb > > > > fvSectorStatusPattern
[sector][asic] Exclude from dictionnary
std::vector< TH2 * > fvhHitsTimeToTriggerSelVsDaq
[sector]
Bool_t ProcessTs(const fles::Timeslice &ts, size_t)
std::vector< std::bitset< kuNbAsicPerGdpb > > fvbGdpbLastResyncPattern
[sector][asic] Exclude from dictionnary
TH1 * fhEventSizeDistribution
std::vector< UInt_t > fvuStarDaqCmdLast
[sector]
Bool_t ProcessMs(const fles::Timeslice &ts, size_t uMsCompIdx, size_t uMsIdx)
std::map< UInt_t, UInt_t > fGdpbIdIndexMap
std::vector< UInt_t > fvuStarTokenLastCore
[sector]
TCanvas * fcTrigDistMs
All sectors.
std::vector< ULong64_t > fvulGdpbTsFullLastCore
[sector]
std::vector< ULong64_t > fvulGdpbTsMsb
std::vector< UInt_t > fvuStarTrigCmdLastCore
[sector]
std::vector< TH1 * > fvhHitsTimeToTriggerSel
[sector], extra monitor for debug
void ProcessSlCtrl(gdpbv100::Message mess, uint64_t ulCurEpochGdpbGet4)
~CbmStar2019EventBuilderEtofAlgo()
std::vector< TH1 * > fvhTriggerDistributionInMs
[sector], extra monitor for debug
TH1 * fhEventNbDistributionInTs
std::vector< CbmTofStarSubevent2019 > & GetEventBuffer()
std::vector< std::vector< gdpbv100::FullMessage > > fvvBufferMessages
[sector], buffer to make sure GET4 errors 0-12 are always transmitted
std::vector< TH1 * > fvhTriggerDt
[sector], extra monitor for debug
std::vector< TH1 * > fvhHitsTimeToTriggerRaw
[sector][Update]<time, [asic]> Exclude from dictionnary
std::vector< UInt_t > fvuStarTokenLast
[sector]
Bool_t ReInitContainers()
std::vector< std::vector< gdpbv100::Message > > fvvmEpSupprBuffer
Epoch + Epoch Cycle.
std::vector< Int_t > fviModuleId
UInt_t fuMinTotPulser
[sector]
Bool_t fbAddStatusToEvent
Switch ON the insertion of the LostEvent messages from GET4s with the critical errors (default is fal...
std::vector< ULong64_t > fvulStarTsFullLastCore
[sector]
gdpbv100::FullMessage CreateStatusMessage(uint16_t uGdpbId, uint32_t uIndex, std::pair< uint64_t, std::bitset< kuNbAsicPerGdpb > > statusIn)
std::vector< Double_t > fdStarTriggerDelay
[sector]
Double_t fdTsStopTimeCore
std::vector< Int_t > fviRpcSide
std::vector< ULong64_t > fvulCurrentEpochCycle
Bool_t fbTriggerFoundA
Event buffer.
Bool_t fbDebugMonitorMode
Switch ON the filling of a minimal set of histograms.
TCanvas * fcMessDistMs
All sectors, extra monitor for debug.
void SetAddStatusToEvent(Bool_t bFlagIn=kTRUE)
TH2 * fhRawTriggersStatsCore
extra monitor for debug
std::vector< TH1 * > fvhTriggerDistributionInTs
[sector], extra monitor for debug
std::vector< std::vector< gdpbv100::FullMessage > > fvvBufferMajorAsicErrors
[sector]
std::vector< std::bitset< kuNbAsicPerGdpb > > fvbGdpbLastEnablePattern
[sector][asic] Exclude from dictionnary
std::vector< ULong64_t > fvulStarTsFullLast
[sector]
std::vector< TH2 * > fvhHitsTimeToTriggerSelVsTrig
[sector], extra monitor for debug
std::vector< Double_t > fvdTrigCandidateTimeStart
[sector]
TCanvas * fcEventBuildStats
All sectors, extra monitor for debug.
std::vector< Double_t > fvdMessCandidateTimeStart
[sector]
TH2 * fhRawTriggersStatsOver
extra monitor for debug
void SetDebugMonitorMode(Bool_t bFlagIn=kTRUE)
Bool_t fbStoreLostEventMsg
Switch ON the filling of a additional set of histograms.
void AddMsComponentToList(size_t component, UShort_t usDetectorId)
void StoreMessageInBuffer(gdpbv100::FullMessage fullMess, uint32_t uGdpbNr)
std::vector< std::vector< CbmTofStarTrigger2019 > > fvvBufferTriggers
[sector]
std::vector< Double_t > fdStarTriggerDeadtime
void SetPulserTotLimits(UInt_t uMin, UInt_t uMax)
void ProcessEpochCycle(uint64_t ulCycleData)
All sectors, extra monitor for debug.
std::vector< std::bitset< kuNbAsicPerGdpb > > fvbGdpbLastMissmatchPattern
std::vector< ULong64_t > fvulCurrentEpochFull
Epoch cycle from the Ms Start message and Epoch counter flip.
void ProcessStarTrigger(gdpbv100::Message mess)
void ProcessSysMess(gdpbv100::Message mess, uint64_t ulCurEpochGdpbGet4)
Bool_t fbMonitorMode
Control flags.
TProfile * fhEventSizeEvolution
void ProcessHit(gdpbv100::Message mess, uint64_t ulCurEpochGdpbGet4)
std::vector< ULong64_t > fvulGdpbTsFullLast
[sector]
void ProcessPattern(gdpbv100::Message mess, uint64_t ulCurEpochGdpbGet4)
Bool_t fbEpochAfterCandWinFound
[sector]
void ProcessEpSupprBuffer(uint32_t uGdpbNr)
UInt_t fuNrOfChannelsPerGdpb
Bool_t ProcessTs(const fles::Timeslice &ts)
std::vector< TH2 * > fvhHitsTimeToTriggerRawPulser
[sector]
CbmStar2019EventBuilderEtofAlgo(const CbmStar2019EventBuilderEtofAlgo &)
TProfile * fhEventSizeDistributionInTs
extra monitor for debug
std::vector< Double_t > fvdMessCandidateTimeStop
[sector]
Bool_t CreateHistograms()
std::vector< ULong64_t > fvulGdpbTsLsb
[sector]
TH1 * fhEventNbPerTs
[sector], extra monitor for debug
std::vector< Double_t > fvdTrigCandidateTimeStop
[sector]
std::vector< UInt_t > fvuStarTrigCmdLast
[sector]
TH2 * fhRawTriggersStats
extra monitor for debug
void SetStoreLostEventMsg(Bool_t bFlagIn=kTRUE)
std::vector< TH1 * > fvhMessDistributionInMs
[sector], extra monitor for debug
TH2 * fhMissingTriggersEvolution
extra monitor for debug
TCanvas * fcTimeToTrigSel
All sectors.
Double_t fdAllowedTriggersSpread
Event window limits.
UInt_t fuNrOfGbtx
Detector Mapping.
UInt_t fuNrOfChannelsPerFee
std::vector< Double_t > fdStarTriggerWinSize
[sector]
static const UInt_t kuMaxNbErrorsPerGdpbPerEvent
Switch ON the readout and insertion of STATUS pattern message (default is true)
std::vector< Int_t > fviRpcType
CbmStar2019EventBuilderEtofAlgo()
std::vector< CbmTofStarSubevent2019 > fvEventsBuffer
[sector]
static const uint32_t kuNbAsicPerGdpb
std::vector< ULong64_t > fvulCurrentEpoch
Current time references for each GDPB: merged epoch marker, epoch cycle, full epoch [fuNrOfGdpbs].
TH2 * fhRawTriggersStatsSel
extra monitor for debug
TCanvas * fcTimeToTrigRaw
extra monitor for debug
CbmStar2019EventBuilderEtofAlgo operator=(const CbmStar2019EventBuilderEtofAlgo &)
void ProcessEpoch(gdpbv100::Message mess)
CbmStar2019TofPar * fUnpackPar
Correspond to ~6000 error messages max per event, leaving 2000 for hits and epoch.
void UpdateStatusPatternCurrGdpb()
static const uint32_t kuNbMsgPerPattern
ASIC status monitoring.
std::vector< ULong64_t > fvulStarTsMid
[sector]
std::vector< UInt_t > fvuStarDaqCmdLastCore
[sector]