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