16#ifndef ALICEO2_DATAFORMATSTPC_ZeroSuppressionLinkBased_H
17#define ALICEO2_DATAFORMATSTPC_ZeroSuppressionLinkBased_H
30namespace zerosupp_link_based
33static constexpr uint32_t DataWordSizeBits = 128;
34static constexpr uint32_t DataWordSizeBytes = DataWordSizeBits / 8;
35static constexpr uint32_t ChannelPerTBHeader = 80;
95template <u
int32_t DataBitSizeT = 12, u
int32_t SignificantBitsT = 2>
148template <u
int32_t DataBitSizeT, u
int32_t SignificantBitsT,
bool HasHeaderT>
151template <u
int32_t DataBitSizeT, u
int32_t SignificantBitsT>
169template <u
int32_t DataBitSizeT, u
int32_t SignificantBitsT>
189template <u
int32_t DataBitSizeT = 12, u
int32_t SignificantBitsT = 2,
bool HasHeaderT = true>
210 for (
int i = 0;
i <
cont.getDataWords(); ++
i) {
211 cont.data[
i].reset();
GLsizei const GLfloat * value
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
std::bitset< 80 > getChannelBits() const
channel bitmask
uint32_t getTotalWords() const
number of data words including the header, which is not present in case of 10bit decoded data format
uint32_t getDataWords() const
number of data words without the header
uint32_t getBunchCrossing() const
bunch crossing number
std::bitset< 80 > getChannelBits() const
channel bitmask
uint32_t getDataWords() const
number of data words without the header
uint32_t getBunchCrossing() const
bunch crossing number
uint32_t getTotalWords() const
number of data words including the header
size_t getTotalSizeBytes() const
total size in bytes
static constexpr uint32_t ChannelsPerWord
number of ADC values in one 128b word
float getADCValueFloat(uint32_t word)
return 12bit ADC value for a specific word in the data stream converted to float
ContainerT< DataBitSizeT, SignificantBitsT, HasHeaderT > cont
Templated data container.
void setADCValue(uint32_t word, uint64_t value)
set 12bit ADC value for a specific word in the data stream
std::bitset< 80 > getChannelBits() const
uint32_t getADCValue(uint32_t word)
return 12bit ADC value for a specific word in the data stream
uint32_t getBunchCrossing() const
uint32_t getDataWords() const
uint32_t getTotalWords() const
Container * next() const
get position of next container. Validity check to be done outside!
void reset()
reset all ADC values
void setADCValueFloat(uint32_t word, float value)
return 12bit ADC value for a specific word in the data stream converted to float
uint64_t adcValues[2]
128bit ADC values (max. 10x12bit)
static constexpr uint32_t ChannelsPerHalfWord
number of ADC values in one 64b word
static constexpr float FloatConversion
conversion factor from integer representation to float
float getADCValueFloat(uint32_t pos) const
get ADC value in float
void setADCValueFloat(uint32_t pos, float value)
set ADC value from float
static constexpr uint32_t ChannelsPerWord
number of ADC values in one 128b word
static constexpr uint32_t DataBitSize
number of bits of the data representation
uint32_t getADCValue(uint32_t pos) const
get ADC value of channel at position 'pos' (0-9)
void setADCValue(uint32_t pos, uint64_t value)
set ADC 'value' at position 'pos' (0-9)
static constexpr uint64_t BitMask
mask for bits
static constexpr uint32_t SignificantBits
number of bits used for floating point precision
void reset()
reset all ADC values
Container for Trigger information, header + data.
uint32_t getTriggerType() const
Data definition for the new trigger information after FW update, allowing for interleaved triggers.
uint32_t magicWord
magic word for identification
uint64_t word1
upper bits of the 80 bit bitmask
uint32_t bunchCrossing
bunch crossing number
uint64_t word0
lower 64 bits
uint32_t orbit
orbit number
uint32_t triggerType
tigger type
uint32_t numWordsPayload
number of 128bit words with 12bit ADC values, should always be 0
uint16_t getFirstBC() const
Data definition for the trigger information.
uint64_t word0
lower 64 bits
uint32_t triggerTypeLow
low bits of tigger type
uint32_t triggerTypeHigh
number of 128bit words with 12bit ADC values
uint64_t orbit
orbit number
uint32_t getTriggerType() const
uint16_t bunchCrossing
bunch crossing number
uint64_t word1
upper bits of the 80 bit bitmask
uint32_t getOrbit() const
Data definition of trigger bits in ILBZS format.
static constexpr uint16_t HasTrigger
bool hasPhysicsTrigger() const
static constexpr uint16_t LaserTriggerMask
static constexpr uint16_t PhysicsTriggerMask
static constexpr uint16_t PulserTriggerMask
bool hasLaserTrigger() const
bool hasPulserTrigger() const