75 const int em,
const int had,
76 const int emErr,
const int hadErr)
78 if (channel <
m_channels && (em || emErr || had || hadErr)) {
82 for (
int pinOffset = 0; pinOffset < 2; ++pinOffset) {
89 if (channel % 2 == 0) {
113 const unsigned int hit1)
118 unsigned int hits = hit0;
119 for (
int indicator = 0; indicator < 2; ++indicator) {
181 if (slices == 0) slices = 1;
236 const int offset)
const
246 if (channel % 2 == 0) {
256 const int offset)
const
266 if (channel % 2 == 0) {
281 unsigned int hit = 0;
319 for (
int i = 0; i < 2; ++i) {
351 std::vector<uint32_t>::const_iterator pos;
372 unsigned int hit0 = 0;
373 unsigned int hit1 = 0;
378 for (
int i = 0; i < 2; ++i) {
427 const int id =
dataId(word);
434 const int pin = ix/4;
435 const int pair = ix%4;
std::vector< size_t > vec
char data[hepevt_bytes_allocation_ATLAS]
static const int s_parityBBit
static const int s_linkDownBBit
unsigned int hits0(int slice) const
Return e/gamma hit counts.
bool packUncompressed()
Pack uncompressed data.
void setHits(int slice, unsigned int hit0, unsigned int hit1)
Store hit counts.
static const int s_pairBit
unsigned int hits1(int slice) const
Return tau hit counts.
static const int s_glinkBitsPerSlice
int dataId(uint32_t word) const
Return data WordID.
unsigned int hits(int slice, int offset) const
Return hit counts with given offset.
static const int s_dataIdBit
int index(int slice) const
Return data index appropriate to format.
int emData(int slice, int channel) const
Return Em data for given channel.
static const int s_ttDataBBit
static const uint32_t s_threshWordId
static const int s_hitBits
static const int s_wordsPerPin
std::vector< uint32_t > m_hitData
Hit counts.
static const uint32_t s_threshMask
static const uint32_t s_pairPinMask
void clear()
Clear all data.
static const int s_ttWordId
static const int s_fpgaBit
static const uint32_t s_dataIdMask
int emError(int slice, int channel) const
Return Em error for given channel.
int data(int slice, int channel, int offset) const
Return data for given channel and pin offset.
void setCpmHeader(int version, int format, int slice, int crate, int module, int timeslices)
Store CPM header.
void resize(std::vector< uint32_t > &vec, int channels)
Resize a data vector according to format.
std::vector< uint32_t > m_ttData
Trigger tower data.
void fillTowerData(int slice, int channel, int em, int had, int emErr, int hadErr)
Store trigger tower data.
int hadError(int slice, int channel) const
Return Had error for given channel.
bool packNeutral()
Pack neutral data.
int timeslices() const
Return number of timeslices.
int error(int slice, int channel, int offset) const
Return error for given channel and pin offset.
static const int s_ttDataABit
static const int s_ttBits
static const int s_parityABit
bool unpack()
Unpack data.
static const uint32_t s_ttDataMask
int m_channels
Number of Trigger tower channels per module.
static const int s_pairsPerPin
static const int s_hitWords
bool unpackNeutral()
Unpack neutral data.
static const int s_errBits
static const int s_indicatorBit
int hadData(int slice, int channel) const
Return Had data for given channel.
std::vector< int > m_chanPresent
Channel present flags vector.
static const int s_linkDownABit
static const int s_wordLength
Data word length.
bool unpackUncompressed()
Unpack uncompressed data.
static const int s_wordIdVal
CPM header word ID.
static const int s_glinkPins
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)