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]
bool unpack()
Unpack data.
int timeslices() const
Return number of timeslices.
static const int s_ttBits
static const int s_fpgaBit
static const int s_parityABit
static const int s_wordIdVal
CPM header word ID.
static const uint32_t s_threshMask
static const int s_ttWordId
void setCpmHeader(int version, int format, int slice, int crate, int module, int timeslices)
Store CPM header.
int data(int slice, int channel, int offset) const
Return data for given channel and pin offset.
static const int s_pairsPerPin
static const int s_ttDataABit
static const int s_pairBit
static const int s_errBits
static const int s_wordsPerPin
static const int s_wordLength
Data word length.
int error(int slice, int channel, int offset) const
Return error for given channel and pin offset.
static const int s_indicatorBit
int emData(int slice, int channel) const
Return Em data for given channel.
static const int s_ttDataBBit
std::vector< uint32_t > m_ttData
Trigger tower data.
static const uint32_t s_dataIdMask
static const int s_hitWords
static const int s_linkDownABit
int emError(int slice, int channel) const
Return Em error for given channel.
bool packUncompressed()
Pack uncompressed data.
bool packNeutral()
Pack neutral data.
static const uint32_t s_threshWordId
static const int s_glinkPins
void clear()
Clear all data.
std::vector< uint32_t > m_hitData
Hit counts.
bool unpackNeutral()
Unpack neutral data.
int hadError(int slice, int channel) const
Return Had error for given channel.
static const uint32_t s_pairPinMask
static const int s_hitBits
std::vector< int > m_chanPresent
Channel present flags vector.
static const int s_linkDownBBit
static const int s_glinkBitsPerSlice
static const int s_parityBBit
unsigned int hits(int slice, int offset) const
Return hit counts with given offset.
bool unpackUncompressed()
Unpack uncompressed data.
int m_channels
Number of Trigger tower channels per module.
unsigned int hits0(int slice) const
Return e/gamma hit counts.
int index(int slice) const
Return data index appropriate to format.
unsigned int hits1(int slice) const
Return tau hit counts.
static const uint32_t s_ttDataMask
void resize(std::vector< uint32_t > &vec, int channels)
Resize a data vector according to format.
static const int s_dataIdBit
int hadData(int slice, int channel) const
Return Had data for given channel.
int dataId(uint32_t word) const
Return data WordID.
void setHits(int slice, unsigned int hit0, unsigned int hit1)
Store hit counts.
void fillTowerData(int slice, int channel, int em, int had, int emErr, int hadErr)
Store trigger tower data.
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)