ATLAS Offline Software
ZdcSubBlock.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
20 
21 
22 // Static constant definitions
23 
24 const int ZdcSubBlock::s_headerBit;
25 const int ZdcSubBlock::s_statusBit;
30 
31 const int ZdcSubBlock::s_wordIdBit;
33 const int ZdcSubBlock::s_formatBit;
34 const int ZdcSubBlock::s_seqnoBit;
35 const int ZdcSubBlock::s_crateBit;
36 const int ZdcSubBlock::s_moduleBit;
47 
57 
62 
63 const int ZdcSubBlock::s_maxPins;
65 
66 ZdcSubBlock::ZdcSubBlock() : m_header(0), m_trailer(0),
67  m_bunchCrossing(0),
68  m_unpackError(UNPACK_NONE),
69  m_bitword(0), m_currentBit(0),
70  m_maxBits(s_maxWordBits),
71  m_maxMask(s_maxWordMask),
72  m_unpackerFlag(false),
73  m_currentPinBit(s_maxPins),
74  m_oddParity(s_maxPins, 1),
75  m_dataWords(0)
76 {
77 }
78 
80 {
81 }
82 
83 // Clear all data
84 
86 {
87  m_header = 0;
88  m_trailer = 0;
89  m_bunchCrossing = 0;
91  m_bitword = 0;
92  m_currentBit = 0;
93  m_unpackerFlag = false;
94  m_currentPinBit.assign(s_maxPins, 0);
95  m_oddParity.assign(s_maxPins, 1);
96  m_dataWords = 0;
97  m_data.clear();
98 }
99 
100 // Store header data
101 
102 void ZdcSubBlock::setHeader(const int wordId, const int version,
103  const int format, const int seqno,
104  const int crate, const int module,
105  const int slices2, const int slices1)
106 {
107  uint32_t word = 0;
108  word |= (wordId & s_wordIdMask) << s_wordIdBit;
109  word |= (version & s_versionMask) << s_versionBit;
110  word |= (format & s_formatMask) << s_formatBit;
111  word |= (seqno & s_seqnoMask) << s_seqnoBit;
112  word |= (crate & s_crateMask) << s_crateBit;
113  word |= (module & s_moduleMask) << s_moduleBit;
114  word |= (slices2 & s_slices2Mask) << s_slices2Bit;
115  word |= (slices1 & s_slices1Mask) << s_slices1Bit;
116  m_header = word;
117 }
118 
119 // Input complete packed sub-block from ROD vector
120 
124 {
125  m_dataWords = 0;
126  m_unpackerFlag = true;
129  for (; pos != pose; ++pos) {
130  const uint32_t word = *pos;
131  const SubBlockWordType type = wordType(word);
132  if (type == HEADER) {
133  if (m_header) return pos;
134  m_header = word;
135  }
136  else if (type == STATUS) m_trailer = word;
137  else {
138  m_data.push_back(word);
139  ++m_dataWords;
140  }
141  }
142  return pose;
143 }
144 
145 // Output complete packed sub-block to ROD vector
146 
148  FullEventAssembler<ZdcSrcIdMap>::RODDATA* const theROD) const
149 {
150  theROD->push_back(m_header);
151  std::vector<uint32_t>::const_iterator pos;
152  for (pos = m_data.begin(); pos != m_data.end(); ++pos) {
153  theROD->push_back(*pos);
154  }
155  if (m_trailer) theROD->push_back(m_trailer);
156 }
157 
158 // Store error status trailer
159 
160 void ZdcSubBlock::setStatus(const uint32_t failingBCN,
161  const bool glinkTimeout, const bool glinkDown, const bool upstreamError,
162  const bool daqOverflow, const bool bcnMismatch,
163  const bool glinkProtocol, const bool glinkParity)
164 {
165  uint32_t word = 0;
167  word |= glinkTimeout << s_glinkTimeoutBit;
168  word |= glinkDown << s_glinkDownBit;
170  word |= daqOverflow << s_daqOverflowBit;
171  word |= bcnMismatch << s_bcnMismatchBit;
173  word |= glinkParity << s_glinkParityBit;
174  if (word) {
175  word |= (wordId() & s_wordIdMask) << s_wordIdBit;
176  word |= (s_statusVal & s_statusMask) << s_statusBit;
177  word |= (seqno() & s_seqnoMask) << s_seqnoBit;
178  word |= (crate() & s_crateMask) << s_crateBit;
179  word |= (module() & s_moduleMask) << s_moduleBit;
180  }
181  m_trailer = word;
182 }
183 
184 // Set DAQ FIFO Overflow bit in Sub-status word
185 
186 void ZdcSubBlock::setDaqOverflow(const int bit)
187 {
188  if (bit) {
189  if (m_trailer) m_trailer |= (1 << s_daqOverflowBit);
190  else setStatus(0, false, false, false, true, false, false, false);
191  }
192 }
193 
194 // Set G-Link Parity bit in Sub-status word
195 
196 void ZdcSubBlock::setGlinkParity(const int bit)
197 {
198  if (bit) {
199  if (m_trailer) m_trailer |= (1 << s_glinkParityBit);
200  else setStatus(0, false, false, false, false, false, false, true);
201  }
202 }
203 
204 // Return the unpacking error message for printing
205 
206 std::string ZdcSubBlock::unpackErrorMsg() const
207 {
208  std::string msg;
209  switch (m_unpackError) {
210  case UNPACK_NONE:
211  msg = "No error";
212  break;
213  case UNPACK_VERSION:
214  msg = "Unsupported Data Version";
215  break;
216  case UNPACK_FORMAT:
217  msg = "Unsupported Data Format";
218  break;
220  msg = "Unsupported Compression Version";
221  break;
223  msg = "Unsupported Number of Slices for Compression Version";
224  break;
226  msg = "Premature End of Sub-block Data";
227  break;
228  case UNPACK_SOURCE_ID:
229  msg = "Invalid Source ID in Sub-block Data";
230  break;
231  case UNPACK_WORD_ID:
232  msg = "Invalid Word ID in Sub-block Data";
233  break;
234  default:
235  msg = "Unknown Error Code";
236  break;
237  }
238  return msg;
239 }
240 
241 // Packing utilities
242 
243 // Return the minimum number of bits needed for given data
244 
246 {
247  const int maxBits = 32;
248  int nbits = maxBits;
249  for (int i = 0; i < maxBits; ++i) {
250  if ( !(datum >> i)) {
251  nbits = i;
252  break;
253  }
254  }
255  return nbits;
256 }
257 
258 // Return the parity bit for given data
259 
260 int ZdcSubBlock::parityBit(const int init, const uint32_t datum,
261  const int nbits)
262 {
263  // set init to 0/1 for even/odd parity
264  int parity = init;
265  for (int bit = 0; bit < nbits; ++bit) parity ^= (datum >> bit) & 0x1;
266  return parity;
267 }
268 
269 // Pack given data into given number of bits
270 
271 void ZdcSubBlock::packer(const uint32_t datum, const int nbits)
272 {
273  if (nbits > 0) {
274  uint32_t mask = 0x1;
275  for (int i = 1; i < nbits; ++i) mask |= (mask << 1);
276  m_bitword |= (datum & mask) << m_currentBit;
277  m_currentBit += nbits;
278  if (m_currentBit >= m_maxBits) {
279  m_bitword &= m_maxMask;
280  m_data.push_back(m_bitword);
281  ++m_dataWords;
282  const int bitsLeft = m_currentBit - m_maxBits;
283  if (bitsLeft > 0) {
284  m_bitword = (datum & mask) >> (nbits - bitsLeft);
285  m_currentBit = bitsLeft;
286  } else {
287  m_bitword = 0;
288  m_currentBit = 0;
289  }
290  }
291  }
292 }
293 
294 // Flush the current data word padded with zeros
295 
297 {
298  if (m_currentBit > 0) {
299  m_bitword &= m_maxMask;
300  m_data.push_back(m_bitword);
301  ++m_dataWords;
302  m_bitword = 0;
303  m_currentBit = 0;
304  }
305 }
306 
307 // Unpack given number of bits of data
308 
310 {
311  uint32_t word = 0;
312  if (nbits > 0) {
313  if (m_dataPos == m_dataPosEnd) {
314  m_unpackerFlag = false;
315  return 0;
316  }
317  int nbitsDone = nbits;
318  if (nbitsDone > m_maxBits - m_currentBit) {
319  nbitsDone = m_maxBits - m_currentBit;
320  }
321  uint32_t mask = 0x1;
322  for (int i = 1; i < nbitsDone; ++i) mask |= (mask << 1);
323  word = (m_bitword >> m_currentBit) & mask;
324  m_currentBit += nbits;
325  if (m_currentBit >= m_maxBits) {
326  m_bitword = 0;
327  if (m_dataPos != m_dataPosEnd) {
328  ++m_dataPos;
329  if (m_dataPos != m_dataPosEnd) {
330  m_bitword = *m_dataPos;
331  }
332  }
333  m_currentBit = 0;
334  const int bitsLeft = nbits - nbitsDone;
335  if (bitsLeft > 0) {
336  if (m_dataPos == m_dataPosEnd) {
337  m_unpackerFlag = false;
338  return word;
339  }
340  mask = 0x1;
341  for (int i = 1; i < bitsLeft; ++i) mask |= (mask << 1);
342  word |= (m_bitword & mask) << nbitsDone;
343  m_currentBit = bitsLeft;
344  }
345  }
346  }
347  return word;
348 }
349 
350 // Initialise unpacker
351 
353 {
354  m_bitword = 0;
355  m_currentBit = 0;
356  m_unpackerFlag = true;
357  m_dataPos = m_data.begin();
358  m_dataPosEnd = m_data.end();
360 }
361 
362 // Pack given neutral data from given pin
363 
364 void ZdcSubBlock::packerNeutral(const int pin, const uint32_t datum,
365  const int nbits)
366 {
367  if (pin >= 0 && pin < s_maxPins && nbits > 0) {
368  if (m_currentPinBit[pin] + nbits > m_dataWords) {
369  m_dataWords = m_currentPinBit[pin] + nbits;
371  }
372  for (int bit = 0; bit < nbits; ++bit) {
373  m_data[m_currentPinBit[pin] + bit] |= ((datum >> bit) & 0x1) << pin;
374  }
375  m_currentPinBit[pin] += nbits;
376  m_oddParity[pin] = parityBit(m_oddParity[pin], datum, nbits);
377  }
378 }
379 
380 // Pack current G-Link parity bit for given pin
381 
383 {
384  if (pin >= 0 && pin < s_maxPins) {
385  packerNeutral(pin, m_oddParity[pin], 1);
386  m_oddParity[pin] = 1;
387  }
388 }
389 
390 // Unpack given number of bits of neutral data for given pin
391 
392 uint32_t ZdcSubBlock::unpackerNeutral(const int pin, const int nbits)
393 {
394  uint32_t word = 0;
395  if (pin >= 0 && pin < s_maxPins && nbits > 0
396  && m_currentPinBit[pin] + nbits <= m_dataWords) {
397  for (int bit = 0; bit < nbits; ++bit) {
398  word |= ((m_data[m_currentPinBit[pin] + bit] >> pin) & 0x1) << bit;
399  }
400  m_currentPinBit[pin] += nbits;
401  m_oddParity[pin] = parityBit(m_oddParity[pin], word, nbits);
402  } else m_unpackerFlag = false;
403  return word;
404 }
405 
406 // Unpack and test G-Link parity bit for given pin
407 
409 {
410  bool error = true;
411  if (pin >= 0 && pin < s_maxPins) {
412  int parity = m_oddParity[pin];
413  int bit = unpackerNeutral(pin, 1);
414  m_oddParity[pin] = 1;
415  error = !(bit == parity);
416  }
417  return error;
418 }
419 
420 // Static function to determine word type
421 
423 {
425  if (((word >> s_headerBit) & s_headerMask) == s_headerVal) {
426  if (((word >> s_statusBit) & s_statusMask) == s_statusVal) type = STATUS;
427  else type = HEADER;
428  }
429  return type;
430 }
431 
432 // Return wordID field from given header word
433 
435 {
436  return (word >> s_wordIdBit) & s_wordIdMask;
437 }
438 
439 // Return data format from given header word
440 
442 {
443  return (word >> s_formatBit) & s_formatMask;
444 }
445 
446 // Return seqno field from given header word
447 
449 {
450  return (word >> s_seqnoBit) & s_seqnoMask;
451 }
452 
453 // Return module field from given header word
454 
456 {
457  return (word >> s_moduleBit) & s_moduleMask;
458 }
459 
ZdcSubBlock::m_trailer
uint32_t m_trailer
Sub-Block Status Trailer.
Definition: ZdcSubBlock.h:212
ZdcSubBlock::glinkTimeout
bool glinkTimeout() const
Definition: ZdcSubBlock.h:290
ZdcSubBlock::unpackerInit
void unpackerInit()
Initialise unpacker.
Definition: ZdcSubBlock.cxx:352
ZdcSubBlock::m_data
std::vector< uint32_t > m_data
Sub-Block data.
Definition: ZdcSubBlock.h:231
ZdcSubBlock::DATA
@ DATA
Definition: ZdcSubBlock.h:38
ZdcSubBlock::setDaqOverflow
void setDaqOverflow(int bit=1)
Set DAQ FIFO Overflow bit in Sub-status word.
Definition: ZdcSubBlock.cxx:186
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
ZdcSubBlock::bcnMismatch
bool bcnMismatch() const
Definition: ZdcSubBlock.h:310
ZdcSubBlock::glinkProtocol
bool glinkProtocol() const
Definition: ZdcSubBlock.h:315
ZdcSubBlock::m_dataPosEnd
std::vector< uint32_t >::const_iterator m_dataPosEnd
Definition: ZdcSubBlock.h:224
ZdcSubBlock::s_seqnoMask
static const uint32_t s_seqnoMask
Definition: ZdcSubBlock.h:185
ZdcSubBlock::write
void write(FullEventAssembler< ZdcSrcIdMap >::RODDATA *theROD) const
Output complete packed sub-block to ROD vector.
Definition: ZdcSubBlock.cxx:147
ZdcSubBlock::s_glinkDavSet
static const uint32_t s_glinkDavSet
Definition: ZdcSubBlock.h:207
ZdcSubBlock::s_wordIdBit
static const int s_wordIdBit
Definition: ZdcSubBlock.h:174
ZdcSubBlock::unpackerNeutral
uint32_t unpackerNeutral(int pin, int nbits)
Unpack given number of bits of neutral data for given pin.
Definition: ZdcSubBlock.cxx:392
ZdcSubBlock::m_bunchCrossing
int m_bunchCrossing
Bunch Crossing number (neutral format only)
Definition: ZdcSubBlock.h:214
vtune_athena.format
format
Definition: vtune_athena.py:14
ZdcSubBlock::UNPACK_DATA_TRUNCATED
@ UNPACK_DATA_TRUNCATED
Definition: ZdcSubBlock.h:51
ZdcSubBlock::wordId
int wordId() const
Definition: ZdcSubBlock.h:240
ZdcSubBlock::s_formatBit
static const int s_formatBit
Definition: ZdcSubBlock.h:176
ZdcSubBlock::s_maxStreamedBits
static const int s_maxStreamedBits
Definition: ZdcSubBlock.h:202
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
ZdcSubBlock::m_maxBits
int m_maxBits
Definition: ZdcSubBlock.h:220
ZdcSubBlock::s_maxStreamedMask
static const uint32_t s_maxStreamedMask
Definition: ZdcSubBlock.h:204
ZdcSubBlock::s_upstreamErrorBit
static const int s_upstreamErrorBit
Definition: ZdcSubBlock.h:194
ZdcSubBlock::s_maxWordMask
static const uint32_t s_maxWordMask
Definition: ZdcSubBlock.h:203
ZdcSubBlock::setHeader
void setHeader(int wordId, int version, int format, int seqno, int crate, int module, int slices2, int slices1)
Store header data.
Definition: ZdcSubBlock.cxx:102
ZdcSubBlock::m_currentBit
int m_currentBit
Definition: ZdcSubBlock.h:219
ZdcSubBlock::UNPACK_FORMAT
@ UNPACK_FORMAT
Definition: ZdcSubBlock.h:48
ZdcSubBlock::upstreamError
bool upstreamError() const
Definition: ZdcSubBlock.h:300
ZdcSubBlock::slices1
int slices1() const
Definition: ZdcSubBlock.h:280
ZdcSubBlock::glinkParity
bool glinkParity() const
Definition: ZdcSubBlock.h:320
ZdcSubBlock::minBits
static int minBits(uint32_t datum)
Return the minimum number of bits needed for given data.
Definition: ZdcSubBlock.cxx:245
ZdcSubBlock::s_statusMask
static const uint32_t s_statusMask
Definition: ZdcSubBlock.h:170
ZdcSubBlock::s_statusBit
static const int s_statusBit
Definition: ZdcSubBlock.h:168
ZdcSubBlock::m_oddParity
std::vector< int > m_oddParity
Definition: ZdcSubBlock.h:227
ZdcSubBlock::s_glinkTimeoutBit
static const int s_glinkTimeoutBit
Definition: ZdcSubBlock.h:192
ZdcSubBlock::m_dataWords
int m_dataWords
Current number of data words.
Definition: ZdcSubBlock.h:229
ZdcSubBlock::seqno
int seqno() const
Definition: ZdcSubBlock.h:255
ZdcSubBlock::m_currentPinBit
std::vector< int > m_currentPinBit
Definition: ZdcSubBlock.h:226
ZdcSubBlock::s_glinkParityBit
static const int s_glinkParityBit
Definition: ZdcSubBlock.h:198
ZdcSubBlock::UNPACK_WORD_ID
@ UNPACK_WORD_ID
Definition: ZdcSubBlock.h:53
ZdcSubBlock::unpackerNeutralParityError
bool unpackerNeutralParityError(int pin)
Unpack and test G-Link parity bit for given pin.
Definition: ZdcSubBlock.cxx:408
ZdcSubBlock::packerFlush
void packerFlush()
Flush the current data word padded with zeros.
Definition: ZdcSubBlock.cxx:296
python.utils.AtlRunQueryLookup.mask
string mask
Definition: AtlRunQueryLookup.py:460
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
ZdcSubBlock::~ZdcSubBlock
~ZdcSubBlock()
Definition: ZdcSubBlock.cxx:79
ZdcSubBlock::m_bitword
uint32_t m_bitword
Definition: ZdcSubBlock.h:218
ZdcSubBlock::wordType
static SubBlockWordType wordType(uint32_t word)
Word identification.
Definition: ZdcSubBlock.cxx:422
ZdcSubBlock::s_slices1Bit
static const int s_slices1Bit
Definition: ZdcSubBlock.h:181
ZdcSubBlock::crate
int crate() const
Definition: ZdcSubBlock.h:265
ZdcSubBlock::STATUS
@ STATUS
Definition: ZdcSubBlock.h:39
ZdcSubBlock::s_crateMask
static const uint32_t s_crateMask
Definition: ZdcSubBlock.h:186
ZdcSubBlock::version
int version() const
Definition: ZdcSubBlock.h:245
ZdcSubBlock::s_versionMask
static const uint32_t s_versionMask
Definition: ZdcSubBlock.h:183
ZdcSubBlock::s_versionBit
static const int s_versionBit
Definition: ZdcSubBlock.h:175
python.PyAthena.module
module
Definition: PyAthena.py:131
OFFLINE_FRAGMENTS_NAMESPACE::PointerType
const DataType * PointerType
Definition: RawEvent.h:25
ZdcSubBlock::s_failingBcnMask
static const uint32_t s_failingBcnMask
Definition: ZdcSubBlock.h:199
ZdcSubBlock::m_header
uint32_t m_header
Sub-Block Header.
Definition: ZdcSubBlock.h:210
ZdcSubBlock::ZdcSubBlock
ZdcSubBlock()
Definition: ZdcSubBlock.cxx:66
ZdcSubBlock::format
int format() const
Definition: ZdcSubBlock.h:250
lumiFormat.i
int i
Definition: lumiFormat.py:85
ZdcSubBlock::UNPACK_COMPRESSION_VERSION
@ UNPACK_COMPRESSION_VERSION
Definition: ZdcSubBlock.h:49
ZdcSubBlock::HEADER
@ HEADER
Definition: ZdcSubBlock.h:37
ZdcSubBlock::s_headerVal
static const uint32_t s_headerVal
Definition: ZdcSubBlock.h:171
ZdcSubBlock::s_bcnMismatchBit
static const int s_bcnMismatchBit
Definition: ZdcSubBlock.h:196
ZdcSubBlock::m_maxMask
uint32_t m_maxMask
Definition: ZdcSubBlock.h:221
ZdcSubBlock::setStatus
void setStatus(uint32_t failingBCN, bool glinkTimeout, bool glinkDown, bool upstreamError, bool daqOverflow, bool bcnMismatch, bool glinkProtocol, bool glinkParity)
Store error status trailer.
Definition: ZdcSubBlock.cxx:160
ZdcSubBlock::packerNeutralParity
void packerNeutralParity(int pin)
Pack current G-Link parity bit for given pin.
Definition: ZdcSubBlock.cxx:382
ZdcSubBlock::s_statusVal
static const uint32_t s_statusVal
Definition: ZdcSubBlock.h:172
ZdcSubBlock::m_unpackError
int m_unpackError
Unpacking error code.
Definition: ZdcSubBlock.h:216
ZdcSubBlock::UNPACK_COMPRESSION_SLICES
@ UNPACK_COMPRESSION_SLICES
Definition: ZdcSubBlock.h:50
ZdcSubBlock::s_slices2Bit
static const int s_slices2Bit
Definition: ZdcSubBlock.h:180
ZdcSubBlock::s_glinkProtocolBit
static const int s_glinkProtocolBit
Definition: ZdcSubBlock.h:197
ZdcSubBlock::slices2
int slices2() const
Definition: ZdcSubBlock.h:275
ZdcSubBlock::daqOverflow
bool daqOverflow() const
Definition: ZdcSubBlock.h:305
ZdcSubBlock::s_crateBit
static const int s_crateBit
Definition: ZdcSubBlock.h:178
ZdcSubBlock::s_maxPins
static const int s_maxPins
Definition: ZdcSubBlock.h:206
ZdcSubBlock::UNPACK_VERSION
@ UNPACK_VERSION
Definition: ZdcSubBlock.h:47
WriteBchToCool.beg
beg
Definition: WriteBchToCool.py:69
ZdcSubBlock::packerNeutral
void packerNeutral(int pin, uint32_t datum, int nbits)
Pack given neutral data from given pin.
Definition: ZdcSubBlock.cxx:364
ZdcSubBlock::SubBlockWordType
SubBlockWordType
Definition: ZdcSubBlock.h:37
ZdcSubBlock::failingBCN
uint32_t failingBCN() const
Definition: ZdcSubBlock.h:285
python.PyKernel.init
def init(v_theApp, v_rootStream=None)
Definition: PyKernel.py:45
ZdcSubBlock::unpacker
uint32_t unpacker(int nbits)
Unpack given number of bits of data.
Definition: ZdcSubBlock.cxx:309
ZdcSubBlock::UNPACK_SOURCE_ID
@ UNPACK_SOURCE_ID
Definition: ZdcSubBlock.h:52
ZdcSubBlock::packer
void packer(uint32_t datum, int nbits)
Pack given data into given number of bits.
Definition: ZdcSubBlock.cxx:271
ZdcSubBlock::UNPACK_NONE
@ UNPACK_NONE
Definition: ZdcSubBlock.h:46
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
ZdcSubBlock::s_headerBit
static const int s_headerBit
ZdcSubBlock.cxx this is a base class derived (copyed) from LVL1 I do not think we need this this way;...
Definition: ZdcSubBlock.h:167
get_generator_info.version
version
Definition: get_generator_info.py:33
ZdcSubBlock::s_daqOverflowBit
static const int s_daqOverflowBit
Definition: ZdcSubBlock.h:195
ZdcSubBlock.h
ZdcSubBlock::module
int module() const
Definition: ZdcSubBlock.h:270
ZdcSubBlock::read
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.
Definition: ZdcSubBlock.cxx:121
ZdcSubBlock::s_slices2Mask
static const uint32_t s_slices2Mask
Definition: ZdcSubBlock.h:188
ZdcSubBlock::glinkDown
bool glinkDown() const
Definition: ZdcSubBlock.h:295
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
ZdcSubBlock::s_moduleMask
static const uint32_t s_moduleMask
Definition: ZdcSubBlock.h:187
ZdcSubBlock::s_maxWordBits
static const int s_maxWordBits
Definition: ZdcSubBlock.h:201
ZdcSubBlock::setGlinkParity
void setGlinkParity(int bit=1)
Set G-Link Parity bit in Sub-status word.
Definition: ZdcSubBlock.cxx:196
ZdcSubBlock::s_slices1Mask
static const uint32_t s_slices1Mask
Definition: ZdcSubBlock.h:189
ZdcSubBlock::s_moduleBit
static const int s_moduleBit
Definition: ZdcSubBlock.h:179
FullEventAssembler::RODDATA
std::vector< uint32_t > RODDATA
ROD data as a vector of unsigned int.
Definition: FullEventAssembler.h:54
ZdcSubBlock::m_dataPos
std::vector< uint32_t >::const_iterator m_dataPos
Definition: ZdcSubBlock.h:223
ZdcSubBlock::s_glinkDownBit
static const int s_glinkDownBit
Definition: ZdcSubBlock.h:193
ZdcSubBlock::m_unpackerFlag
bool m_unpackerFlag
Definition: ZdcSubBlock.h:222
get_generator_info.error
error
Definition: get_generator_info.py:40
ZdcSubBlock::parityBit
static int parityBit(int init, uint32_t datum, int nbits)
Return the parity bit for given data.
Definition: ZdcSubBlock.cxx:260
ZdcSubBlock::s_formatMask
static const uint32_t s_formatMask
Definition: ZdcSubBlock.h:184
ZdcSubBlock::s_seqnoBit
static const int s_seqnoBit
Definition: ZdcSubBlock.h:177
error
Definition: IImpactPoint3dEstimator.h:70
ZdcSubBlock::s_wordIdMask
static const uint32_t s_wordIdMask
Definition: ZdcSubBlock.h:182
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
ZdcSubBlock::s_failingBcnBit
static const int s_failingBcnBit
Definition: ZdcSubBlock.h:191
ZdcSubBlock::s_headerMask
static const uint32_t s_headerMask
Definition: ZdcSubBlock.h:169
ZdcSubBlock::clear
void clear()
Clear all data.
Definition: ZdcSubBlock.cxx:85
ZdcSubBlock::unpackErrorMsg
std::string unpackErrorMsg() const
Return the unpacking error message for printing.
Definition: ZdcSubBlock.cxx:206