Project
Loading...
Searching...
No Matches
o2::tpc::zerosupp_link_based::Data< DataBitSizeT, SignificantBitsT > Struct Template Reference

#include <ZeroSuppressionLinkBased.h>

Public Member Functions

void setADCValue (uint32_t pos, uint64_t value)
 set ADC 'value' at position 'pos' (0-9)
 
void setADCValueFloat (uint32_t pos, float value)
 set ADC value from float
 
uint32_t getADCValue (uint32_t pos) const
 get ADC value of channel at position 'pos' (0-9)
 
float getADCValueFloat (uint32_t pos) const
 get ADC value in float
 
void reset ()
 reset all ADC values
 

Public Attributes

uint64_t adcValues [2] {}
 128bit ADC values (max. 10x12bit)
 

Static Public Attributes

static constexpr uint32_t ChannelsPerWord = DataWordSizeBits / DataBitSizeT
 number of ADC values in one 128b word
 
static constexpr uint32_t ChannelsPerHalfWord = ChannelsPerWord / 2
 number of ADC values in one 64b word
 
static constexpr uint32_t DataBitSize = DataBitSizeT
 number of bits of the data representation
 
static constexpr uint32_t SignificantBits = SignificantBitsT
 number of bits used for floating point precision
 
static constexpr uint64_t BitMask = ((uint64_t(1) << DataBitSize) - 1)
 mask for bits
 
static constexpr float FloatConversion = 1.f / float(1 << SignificantBits)
 conversion factor from integer representation to float
 

Detailed Description

template<uint32_t DataBitSizeT = 12, uint32_t SignificantBitsT = 2>
struct o2::tpc::zerosupp_link_based::Data< DataBitSizeT, SignificantBitsT >

ADC data container

In case of zero suppressed data, the ADC values are stored with 12 bit 10bit + 2bit precision In case of decoded raw data, the pure 10 bit ADC values are stored

The data is packed in 128 bit words, or 2x64 bit. Each 64 bit word has 4 bit padding. So it is either 2 x ((5 x 12 bit) + 4 bit padding), or 2 x ((6 x 10 bit) + 4 bit padding)

Definition at line 96 of file ZeroSuppressionLinkBased.h.

Member Function Documentation

◆ getADCValue()

template<uint32_t DataBitSizeT = 12, uint32_t SignificantBitsT = 2>
uint32_t o2::tpc::zerosupp_link_based::Data< DataBitSizeT, SignificantBitsT >::getADCValue ( uint32_t  pos) const
inline

get ADC value of channel at position 'pos' (0-9)

Definition at line 126 of file ZeroSuppressionLinkBased.h.

◆ getADCValueFloat()

template<uint32_t DataBitSizeT = 12, uint32_t SignificantBitsT = 2>
float o2::tpc::zerosupp_link_based::Data< DataBitSizeT, SignificantBitsT >::getADCValueFloat ( uint32_t  pos) const
inline

get ADC value in float

Definition at line 135 of file ZeroSuppressionLinkBased.h.

◆ reset()

template<uint32_t DataBitSizeT = 12, uint32_t SignificantBitsT = 2>
void o2::tpc::zerosupp_link_based::Data< DataBitSizeT, SignificantBitsT >::reset ( )
inline

reset all ADC values

Definition at line 141 of file ZeroSuppressionLinkBased.h.

◆ setADCValue()

template<uint32_t DataBitSizeT = 12, uint32_t SignificantBitsT = 2>
void o2::tpc::zerosupp_link_based::Data< DataBitSizeT, SignificantBitsT >::setADCValue ( uint32_t  pos,
uint64_t  value 
)
inline

set ADC 'value' at position 'pos' (0-9)

Definition at line 107 of file ZeroSuppressionLinkBased.h.

◆ setADCValueFloat()

template<uint32_t DataBitSizeT = 12, uint32_t SignificantBitsT = 2>
void o2::tpc::zerosupp_link_based::Data< DataBitSizeT, SignificantBitsT >::setADCValueFloat ( uint32_t  pos,
float  value 
)
inline

set ADC value from float

Definition at line 120 of file ZeroSuppressionLinkBased.h.

Member Data Documentation

◆ adcValues

template<uint32_t DataBitSizeT = 12, uint32_t SignificantBitsT = 2>
uint64_t o2::tpc::zerosupp_link_based::Data< DataBitSizeT, SignificantBitsT >::adcValues[2] {}

128bit ADC values (max. 10x12bit)

Definition at line 104 of file ZeroSuppressionLinkBased.h.

◆ BitMask

template<uint32_t DataBitSizeT = 12, uint32_t SignificantBitsT = 2>
constexpr uint64_t o2::tpc::zerosupp_link_based::Data< DataBitSizeT, SignificantBitsT >::BitMask = ((uint64_t(1) << DataBitSize) - 1)
staticconstexpr

mask for bits

Definition at line 101 of file ZeroSuppressionLinkBased.h.

◆ ChannelsPerHalfWord

template<uint32_t DataBitSizeT = 12, uint32_t SignificantBitsT = 2>
constexpr uint32_t o2::tpc::zerosupp_link_based::Data< DataBitSizeT, SignificantBitsT >::ChannelsPerHalfWord = ChannelsPerWord / 2
staticconstexpr

number of ADC values in one 64b word

Definition at line 98 of file ZeroSuppressionLinkBased.h.

◆ ChannelsPerWord

template<uint32_t DataBitSizeT = 12, uint32_t SignificantBitsT = 2>
constexpr uint32_t o2::tpc::zerosupp_link_based::Data< DataBitSizeT, SignificantBitsT >::ChannelsPerWord = DataWordSizeBits / DataBitSizeT
staticconstexpr

number of ADC values in one 128b word

Definition at line 97 of file ZeroSuppressionLinkBased.h.

◆ DataBitSize

template<uint32_t DataBitSizeT = 12, uint32_t SignificantBitsT = 2>
constexpr uint32_t o2::tpc::zerosupp_link_based::Data< DataBitSizeT, SignificantBitsT >::DataBitSize = DataBitSizeT
staticconstexpr

number of bits of the data representation

Definition at line 99 of file ZeroSuppressionLinkBased.h.

◆ FloatConversion

template<uint32_t DataBitSizeT = 12, uint32_t SignificantBitsT = 2>
constexpr float o2::tpc::zerosupp_link_based::Data< DataBitSizeT, SignificantBitsT >::FloatConversion = 1.f / float(1 << SignificantBits)
staticconstexpr

conversion factor from integer representation to float

Definition at line 102 of file ZeroSuppressionLinkBased.h.

◆ SignificantBits

template<uint32_t DataBitSizeT = 12, uint32_t SignificantBitsT = 2>
constexpr uint32_t o2::tpc::zerosupp_link_based::Data< DataBitSizeT, SignificantBitsT >::SignificantBits = SignificantBitsT
staticconstexpr

number of bits used for floating point precision

Definition at line 100 of file ZeroSuppressionLinkBased.h.


The documentation for this struct was generated from the following file: