5#ifndef TRIGT1CALOBYTESTREAM_ZDCL1CALOSUBBLOCK_H
6#define TRIGT1CALOBYTESTREAM_ZDCL1CALOSUBBLOCK_H
133 int parityBit(
int init, uint32_t datum,
int nbits)
const;
uint32_t unpacker(int nbits)
Unpack given number of bits of data.
static const int s_crateBit
static SubBlockWordType wordType(uint32_t word)
Word identification.
bool unpackerNeutralParityError(int pin)
Unpack and test G-Link parity bit for given pin.
std::vector< uint32_t >::const_iterator m_dataPosEnd
void packer(uint32_t datum, int nbits)
Pack given data into given number of bits.
OFFLINE_FRAGMENTS_NAMESPACE::PointerType read(const OFFLINE_FRAGMENTS_NAMESPACE::PointerType beg, const OFFLINE_FRAGMENTS_NAMESPACE::PointerType end)
Input complete packed sub-block from ROD array.
uint32_t m_trailer
Sub-Block Status Trailer.
static int seqno(uint32_t word)
Return seqno field from given header word.
static const uint32_t s_formatMask
@ UNPACK_COMPRESSION_VERSION
@ UNPACK_COMPRESSION_SLICES
std::vector< uint32_t > m_data
Sub-Block data.
static const int s_maxStreamedBits
int bunchCrossing() const
Return the Bunch Crossing number (neutral format only)
void setBunchCrossing(int bc)
Set the Bunch Crossing number (neutral format only)
static const uint32_t s_maxWordMask
static int wordId(uint32_t word)
Return wordID field from given header word.
void setUnpackErrorCode(int code)
Set the unpacking error code.
static const int s_formatBit
void packerNeutral(int pin, uint32_t datum, int nbits)
Pack given neutral data from given pin.
static const uint32_t s_glinkDavSet
void setStreamed()
Set continuous bit streaming for compressed formats.
static const uint32_t s_moduleMask
void unpackerInit()
Initialise unpacker.
static const int s_slices1Bit
static const uint32_t s_statusMask
static const uint32_t s_headerMask
static const int s_slices2Bit
static const uint32_t s_crateMask
std::vector< int > m_oddParity
static const int s_glinkTimeoutBit
int m_bunchCrossing
Bunch Crossing number (neutral format only)
static const int s_statusBit
static const int s_bcnMismatchBit
std::string unpackErrorMsg() const
Return the unpacking error message for printing.
int parityBit(int init, uint32_t datum, int nbits) const
Return the parity bit for given data.
static const int s_maxWordBits
static const uint32_t s_seqnoMask
static const int s_headerBit
static const int s_daqOverflowBit
static int format(uint32_t word)
Return data format from given header word.
static const int s_glinkParityBit
static const int s_ppmCrates
static const int s_seqnoBit
int unpackErrorCode() const
Return the unpacking error code.
bool unpackerSuccess() const
Return unpacker success flag.
int m_dataWords
Current number of data words.
static const int s_glinkProtocolBit
static const uint32_t s_headerVal
static const int s_failingBcnBit
int minBits(uint32_t datum) const
Return the minimum number of bits needed for given data.
static int version(uint32_t word)
Return version number from given header word.
void packerFlush()
Flush the current data word padded with zeros.
static const uint32_t s_wordIdMask
std::vector< int > m_currentPinBit
static const int s_moduleBit
void setGlinkParity(int bit=1)
Set G-Link Parity bit in Sub-status word.
static const int s_upstreamErrorBit
static const uint32_t s_slices2Mask
static const uint32_t s_maxStreamedMask
bool glinkTimeout() const
static const uint32_t s_versionMask
static const int s_maxPins
std::vector< uint32_t >::const_iterator m_dataPos
static int module(uint32_t word)
Return module field from given header word.
uint32_t unpacker(int nbits, int align)
void clear()
Clear all data.
uint32_t failingBCN() const
void setHeader(int wordId, int version, int format, int seqno, int crate, int module, int slices2, int slices1)
Store header data.
uint32_t unpackerNeutral(int pin, int nbits)
Unpack given number of bits of neutral data for given pin.
int m_unpackError
Unpacking error code.
int dataWords() const
Return number of data words.
uint32_t m_header
Sub-Block Header.
bool upstreamError() const
static const int s_versionBit
static const int s_wordIdBit
std::vector< uint32_t > m_unpackingMasks
Unpacking masks.
static const uint32_t s_failingBcnMask
bool glinkProtocol() const
void setDaqOverflow(int bit=1)
Set DAQ FIFO Overflow bit in Sub-status word.
void packerNeutralParity(int pin)
Pack current G-Link parity bit for given pin.
int currentPinBit(int pin) const
Return current pin bit for given pin.
uint32_t subStatus() const
Return Sub-status word.
static const uint32_t s_slices1Mask
void setStatus(uint32_t failingBCN, bool glinkTimeout, bool glinkDown, bool upstreamError, bool daqOverflow, bool bcnMismatch, bool glinkProtocol, bool glinkParity)
Output complete packed sub-block to ROD vector.
static const int s_glinkDownBit
static const uint32_t s_statusVal
const DataType * PointerType