71 const int em,
const int had,
72 const int emErr,
const int hadErr)
74 if (channel <
m_channels && (em || emErr || had || hadErr))
79 for (
int pinOffset = 0; pinOffset < 2; ++pinOffset)
149 if (slices == 0) slices = 1;
204 const int offset)
const
215 if (channel % 2 == 0)
227 const int offset)
const
238 if (channel % 2 == 0)
284 for (
int i = 0; i < 2; ++i)
321 std::vector<uint32_t>::const_iterator pos;
344 for (
int i = 0; i < 2; ++i)
397 const int id =
dataId(word);
406 const int pin = ix / 4;
407 const int pair = ix % 4;
std::vector< size_t > vec
char data[hepevt_bytes_allocation_ATLAS]
int hadData(int slice, int channel) const
Return Had data for given channel.
bool unpackNeutral()
Unpack neutral data.
static const int s_linkDownBBit
static const int s_wordIdVal
CPM header word ID.
int hadError(int slice, int channel) const
Return Had error for given channel.
int dataId(uint32_t word) const
Return data WordID.
static const int s_glinkBitsPerSlice
int error(int slice, int channel, int offset) const
Return error for given channel and pin offset.
int data(int slice, int channel, int offset) const
Return data for given channel and pin offset.
static const int s_bcnBits
static const int s_fpgaBit
int index(int slice) const
Return data index appropriate to format.
int m_channels
Number of Trigger tower channels per module.
static const int s_linkDownABit
bool unpackUncompressed()
Unpack uncompressed data.
int emError(int slice, int channel) const
Return Em error for given channel.
static const int s_pairBit
bool unpack()
Unpack data.
static const uint32_t s_ttDataMask
static const int s_parityABit
void resize(std::vector< uint32_t > &vec, int channels)
Resize a data vector according to format.
int emData(int slice, int channel) const
Return Em data for given channel.
static const int s_wordLength
Data word length.
static const int s_pairsPerPin
void clear()
Clear all data.
int timeslices() const
Return number of timeslices.
static const int s_ttDataBBit
bool packUncompressed()
Pack uncompressed data.
static const uint32_t s_dataIdMask
std::vector< int > m_chanPresent
Channel present flags vector.
static const int s_parityBBit
void fillTowerData(int slice, int channel, int em, int had, int emErr, int hadErr)
Store trigger tower data.
static const int s_ttWordId
static const int s_glinkPins
std::vector< uint32_t > m_ttData
Trigger tower data.
void setCpmHeader(int version, int format, int slice, int crate, int module, int timeslices)
Store CPM header.
static const int s_ttBits
bool packNeutral()
Pack neutral data.
static const uint32_t s_pairPinMask
static const int s_errBits
static const int s_bcnPin
static const int s_wordsPerPin
static const int s_ttDataABit
static const int s_dataIdBit
void packer(uint32_t datum, int nbits)
Pack given data into given number of bits.
uint32_t unpacker(int nbits)
Unpack given number of bits of data.
void setUnpackErrorCode(int code)
Set the unpacking error code.
bool unpackerSuccess() const
Return unpacker success flag.
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.
int dataWords() const
Return number of data words.
void clear()
Clear all data.
void packerNeutralParity(int pin)
Pack current G-Link parity bit for given pin.
void packerFlush()
Flush the current data word padded with zeros.
uint32_t unpackerNeutral(int pin, int nbits)
Unpack given number of bits of neutral data for given pin.
int bunchCrossing() const
Return the Bunch Crossing number (neutral format only)
void unpackerInit()
Initialise unpacker.
void packerNeutral(int pin, uint32_t datum, int nbits)
Pack given neutral data from given pin.
void setBunchCrossing(int bc)
Set the Bunch Crossing number (neutral format only)