ATLAS Offline Software
Loading...
Searching...
No Matches
ZdcByteStreamReadV1V2Tool::BitReader Class Reference
Collaboration diagram for ZdcByteStreamReadV1V2Tool::BitReader:

Public Member Functions

 BitReader (const std::vector< uint32_t > &ppBlock)
uint32_t getField (const uint8_t numBits)

Private Attributes

uint32_t m_ppPointer {}
uint32_t m_ppMaxBit {}
const std::vector< uint32_t > & m_ppBlock

Detailed Description

Definition at line 77 of file ZdcByteStreamReadV1V2Tool.h.

Constructor & Destructor Documentation

◆ BitReader()

ZdcByteStreamReadV1V2Tool::BitReader::BitReader ( const std::vector< uint32_t > & ppBlock)
inline

Definition at line 80 of file ZdcByteStreamReadV1V2Tool.h.

81 : m_ppPointer (0),
82 m_ppMaxBit (31 * ppBlock.size()),
83 m_ppBlock (ppBlock)
84 {
85 }
const std::vector< uint32_t > & m_ppBlock

Member Function Documentation

◆ getField()

uint32_t ZdcByteStreamReadV1V2Tool::BitReader::getField ( const uint8_t numBits)

Definition at line 1109 of file ZdcByteStreamReadV1V2Tool.cxx.

1111{
1112 if ((m_ppPointer + numBits) <= m_ppMaxBit) {
1113 uint32_t iWord = m_ppPointer / 31;
1114 uint8_t iBit = m_ppPointer % 31;
1115 m_ppPointer += numBits;
1116
1118 if ((iBit + numBits) <= 31) {
1119 result = ::bitFieldSize(m_ppBlock[iWord], iBit, numBits);
1120 } else {
1121 uint8_t nb1 = 31 - iBit;
1122 uint8_t nb2 = numBits - nb1;
1123 uint32_t field1 = ::bitFieldSize(m_ppBlock[iWord], iBit, nb1);
1124 uint32_t field2 = ::bitFieldSize(m_ppBlock[iWord + 1], 0, nb2);
1125 result = field1 | (field2 << nb1);
1126 }
1127
1128 return result;
1129 }
1130
1131 throw std::out_of_range("Requested too much bits from ppm block");
1132}
setEventNumber uint32_t

Member Data Documentation

◆ m_ppBlock

const std::vector<uint32_t>& ZdcByteStreamReadV1V2Tool::BitReader::m_ppBlock
private

Definition at line 93 of file ZdcByteStreamReadV1V2Tool.h.

◆ m_ppMaxBit

uint32_t ZdcByteStreamReadV1V2Tool::BitReader::m_ppMaxBit {}
private

Definition at line 92 of file ZdcByteStreamReadV1V2Tool.h.

92{};

◆ m_ppPointer

uint32_t ZdcByteStreamReadV1V2Tool::BitReader::m_ppPointer {}
private

Definition at line 91 of file ZdcByteStreamReadV1V2Tool.h.

91{};

The documentation for this class was generated from the following files: