8#include "MicrosliceDescriptor.hpp"
66 return (numErrors > 0 ?
true :
false);
84 QaDigi(
bool missed, int32_t addr, int32_t chan, uint32_t t, uint16_t c, uint16_t e)
134 Result_t operator()(
const uint8_t* msContent,
const fles::MicrosliceDescriptor& msDescr,
135 const uint64_t tTimeslice)
const override;
std::tuple< std::vector< Digi_t >, Monitor_t, Aux_t > Result_t
Unpack algorithm for STS.
void ProcessTsmsbMessage(const stsxyter::Message &message, TimeSpec &time) const
Process an epoch message (TS_MSB)
static constexpr uint32_t fkClockCycleNom
UnpackPar fParams
Parameter container.
void ProcessHitMessage(const stsxyter::Message &message, const TimeSpec &time, std::vector< CbmStsDigi > &digiVec, UnpackMonitorData &monitor, UnpackAuxData &aux) const
Process a hit message.
static constexpr uint32_t fkClockCycleDen
Result_t operator()(const uint8_t *msContent, const fles::MicrosliceDescriptor &msDescr, const uint64_t tTimeslice) const override
Algorithm execution.
void SetParams(std::unique_ptr< UnpackPar > params)
Set the parameter container.
static constexpr uint64_t fkEpochsPerCycle
static constexpr uint64_t fkCycleLength
~UnpackMS() override
Destructor.
UnpackMS(const UnpackPar &pars)
Default constructor.
static constexpr uint64_t fkEpochLength
static constexpr uint32_t kulClockCycleDen
Clock cycle denominator, equivalent to 2*160 MHz clock.
static constexpr uint32_t kuHitNbTsBinsBinning
static constexpr uint32_t kulClockCycleNom
Clock cycle nominator [ns], equivalent to 2*160 MHz clock.
static constexpr uint32_t kuTsMsbNbTsBinsBinning
Extended digi which contains auxiliary QA information.
QaDigi(bool missed, int32_t addr, int32_t chan, uint32_t t, uint16_t c, uint16_t e)
std::vector< QaDigi > fQaDigis
uint64_t fTimeOffset
Time calibration parameter.
double fAdcGain
Charge calibration parameter.
int32_t fAddress
CbmStsAddress for the connected module.
double fAdcOffset
Charge calibration parameter.
uint32_t fAdcMinCut
Minimum Acd cut.
std::vector< bool > fChanMask
Channel masking flags.
std::vector< double > fWalk
Walk correction coefficients.
uint32_t fAsicNr
Number of connected ASIC within the module.
Structure to hold the current time information for the current microslice.
u64 currentEpochTime
Current epoch time relative to timeslice in clock cycles.
u64 currentTsTime
Unix time of timeslice in units of epoch length.
u64 currentCycle
Current epoch cycle.
u32 currentEpoch
Current epoch number within epoch cycle.
uint32_t fNumErrInvalidMsSize
Microslice size is not multiple of message size.
uint32_t fNumErrElinkOutOfRange
Elink not contained in parameters.
uint32_t fNumNonHitOrTsbMessage
uint32_t fNumErrTimestampOverflow
Overflow in 64 bit time stamp.
uint32_t fNumErrInvalidFirstMessage
First message is not TS_MSB or second is not EPOCH.
bool fWriteAux
Write auxiliary data for module.
uint32_t fNumAsicsPerModule
Number of ASICS per module.
uint32_t fNumChansPerAsic
Number of channels per ASIC.
std::vector< UnpackElinkPar > fElinkParams
Parameters for each eLink.