9#include "MicrosliceDescriptor.hpp"
10#include "Timeslice.hpp"
61 return (numErrors > 0 ?
true :
false);
103 Result_t operator()(
const uint8_t* msContent,
const fles::MicrosliceDescriptor& msDescr,
104 const uint64_t tTimeslice)
const override;
std::tuple< std::vector< Digi_t >, Monitor_t, Aux_t > Result_t
Unpack algorithm for STS.
Result_t operator()(const uint8_t *msContent, const fles::MicrosliceDescriptor &msDescr, const uint64_t tTimeslice) const override
Algorithm execution.
void ProcessEpochMessage(const critof001::Message &message, TimeSpec &time) const
Process an epoch message.
UnpackPar fParams
Parameter container.
~UnpackMS() override
Destructor.
void SetParams(std::unique_ptr< UnpackPar > params)
Set the parameter container.
UnpackMS(const UnpackPar &pars)
Default constructor.
void ProcessHitMessage(const critof001::Message &message, std::vector< CbmTofDigi > &digiVec, UnpackMonitorData &monitor, TimeSpec &time) const
Process a hit message.
TOF Unpacking parameters for one eLink / ASIC.
int32_t fTimeOffset
Time calibration parameter.
std::vector< uint32_t > fChannelUId
CbmTofAddress for different channels.
u64 currentTsTime
Unix time of timeslice in units of epoch length.
u32 currentEpochInTs
Current epoch number relative to timeslice start epoch.
uint32_t fNumErrInvalidMsSize
Microslice size is not multiple of message size.
uint32_t fNumErrTimestampOverflow
Overflow in 64 bit time stamp.
uint32_t fNumErrElinkOutOfRange
Elink not contained in parameters.
uint32_t fNumErrInvalidLastMessage
Last message is not EndOfMs.
uint32_t fNumErrInvalidAsicEpochs
Epoch did not match merged one for an asic.
uint32_t fNumNonHitOrTsbMessage
uint32_t fNumErrInvalidStartEpoch
Microslice index doesn't match first epoch.
uint32_t fNumErrInvalidFirstMessage
First message is not EPOCH.
Parameters required for the STS unpacking (specific to one component)
std::vector< UnpackElinkPar > fElinkParams
Parameters for each eLink.