ATLAS Offline Software
PpmSubBlockV1.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
6 #include "PpmCompressionV1.h"
7 #include "PpmSubBlockV1.h"
8 
9 namespace LVL1BS {
10 
11 // Constant definitions
12 
15 
16 const int PpmSubBlockV1::s_wordLen;
17 const int PpmSubBlockV1::s_lutBit;
19 const int PpmSubBlockV1::s_fadcBit;
25 
32 
42 
43 PpmSubBlockV1::PpmSubBlockV1() : m_globalError(0),
44  m_lutOffset(-1), m_fadcOffset(-1),
45  m_pedestal(10), m_fadcBaseline(0),
46  m_fadcThreshold(0), m_runNumber(0)
47 {
48 }
49 
51 {
52 }
53 
54 // Clear all data
55 
57 {
59  m_globalError = 0;
60  m_lutOffset = -1;
61  m_fadcOffset = -1;
62  m_datamap.clear();
63  m_errormap.clear();
64 }
65 
66 // Store PPM header
67 
68 void PpmSubBlockV1::setPpmHeader(const int version, const int format,
69  const int seqno, const int crate,
70  const int module, const int slicesFadc,
71  const int slicesLut)
72 {
75 }
76 
77 // Store PPM error block header
78 
80  const int crate, const int module,
81  const int slicesFadc, const int slicesLut)
82 {
85 }
86 
87 // Return the number of FADC slices
88 
90 {
91  int slices = slices2();
92  if (slices == 0 && format() == NEUTRAL) {
94  }
95  if (slices <= 0) slices = 1;
96  return slices;
97 }
98 
99 // Return the number of LUT slices
100 
102 {
103  int slices = slices1();
104  if (slices == 0) slices = 1;
105  return slices;
106 }
107 
108 // Store PPM data for later packing
109 
110 void PpmSubBlockV1::fillPpmData(const int chan, const std::vector<int>& lut,
111  const std::vector<int>& fadc,
112  const std::vector<int>& bcidLut,
113  const std::vector<int>& bcidFadc)
114 {
115  const int sliceL = slicesLut();
116  const int sliceF = slicesFadc();
117  const int slices = sliceL + sliceF;
118  const int chanPerSubBlock = channelsPerSubBlock();
119  int dataSize = m_datamap.size();
120  if (dataSize == 0) {
121  dataSize = slices * chanPerSubBlock;
122  m_datamap.resize(dataSize);
123  }
124  // coverity[divide_by_zero : FALSE]
125  int offset = (chan % chanPerSubBlock) * slices;
126  if (offset + slices <= dataSize) {
127  for (int pos = 0; pos < sliceL; ++pos) {
128  uint32_t datum = (lut[pos] & s_lutMask) << s_lutBit;
129  datum |= (bcidLut[pos] & s_bcidLutMask) << s_bcidLutBit;
130  m_datamap[offset + pos] = datum;
131  }
132  offset += sliceL;
133  for (int pos = 0; pos < sliceF; ++pos) {
134  const int adc = (fadc[pos] > 0) ? fadc[pos] : 0;
135  uint32_t datum = (adc & s_fadcMask) << s_fadcBit;
136  datum |= (bcidFadc[pos] & s_bcidFadcMask) << s_bcidFadcBit;
137  m_datamap[offset + pos] = datum;
138  }
139  }
140 }
141 
142 // Return unpacked data for given channel
143 
144 void PpmSubBlockV1::ppmData(const int chan, std::vector<int>& lut,
145  std::vector<int>& fadc,
146  std::vector<int>& bcidLut,
147  std::vector<int>& bcidFadc)
148 {
149  lut.clear();
150  fadc.clear();
151  bcidLut.clear();
152  bcidFadc.clear();
153  const int sliceL = slicesLut();
154  const int sliceF = slicesFadc();
155  // coverity[divide_by_zero : FALSE]
156  int beg = (chan % channelsPerSubBlock()) * (sliceL + sliceF);
157  int end = beg + sliceL;
158  if (size_t(end + sliceF) <= m_datamap.size()) {
159  for (int pos = beg; pos < end; ++pos) {
160  const uint32_t word = m_datamap[pos];
161  lut.push_back((word >> s_lutBit) & s_lutMask);
162  bcidLut.push_back((word >> s_bcidLutBit) & s_bcidLutMask);
163  }
164  beg += sliceL;
165  end += sliceF;
166  for (int pos = beg; pos < end; ++pos) {
167  const uint32_t word = m_datamap[pos];
168  fadc.push_back((word >> s_fadcBit) & s_fadcMask);
169  bcidFadc.push_back((word >> s_bcidFadcBit) & s_bcidFadcMask);
170  }
171  } else {
172  lut.resize(sliceL);
173  fadc.resize(sliceF);
174  bcidLut.resize(sliceL);
175  bcidFadc.resize(sliceF);
176  }
177 }
178 
179 // Store an error word corresponding to a data channel
180 
181 void PpmSubBlockV1::fillPpmError(const int chan, const int errorWord)
182 {
183  if (m_errormap.empty()) m_errormap.resize(s_glinkPins);
184  // Expand one ASIC channel disabled bit to four
185  const uint32_t chanDisabled = (errorWord & 0x1) << asic(chan);
186  uint32_t word = (((errorWord >> 1) << s_asicChannels)
187  | chanDisabled) & s_errorMask;
188  m_errormap[pin(chan)] |= word;
189  m_globalError |= word;
190 }
191 
192 // Store an error word corresponding to a G-Link pin
193 
194 void PpmSubBlockV1::fillPpmPinError(const int pin, const int errorWord)
195 {
196  if (m_errormap.empty()) m_errormap.resize(s_glinkPins);
197  m_errormap[pin] = errorWord & s_errorMask;
198  m_globalError = 0;
199  for (uint32_t word : m_errormap) {
200  m_globalError |= word;
201  }
202 }
203 
204 // Return the error word for a data channel
205 
206 int PpmSubBlockV1::ppmError(const int chan) const
207 {
208  int err = 0;
209  if ( !m_errormap.empty()) {
210  // Replace the four ASIC channel disabled bits with just the one
211  // corresponding to the data channel
212  err = (((m_errormap[pin(chan)] & s_errorMask) >> s_asicChannels) << 1)
214  }
215  return err;
216 }
217 
218 // Return the error word for a G-Link pin
219 
220 int PpmSubBlockV1::ppmPinError(const int pin) const
221 {
222  int err = 0;
223  if ( !m_errormap.empty()) err = m_errormap[pin] & s_errorMask;
224  return err;
225 }
226 
227 // Return global error bit
228 
229 bool PpmSubBlockV1::errorBit(const int bit) const
230 {
231  return m_globalError & (0x1 << bit);
232 }
233 
234 // Packing/Unpacking routines
235 
237 {
238  bool rc = false;
239  switch (version()) {
240  case 1:
241  switch (format()) {
242  case NEUTRAL:
243  rc = packNeutral();
244  break;
245  case UNCOMPRESSED:
246  switch (seqno()) {
247  case s_errorMarker:
248  rc = packUncompressedErrors();
249  break;
250  default:
251  rc = packUncompressedData();
252  break;
253  }
254  break;
255  case COMPRESSED:
256  case SUPERCOMPRESSED:
257  rc = PpmCompressionV1::pack(*this);
258  break;
259  default:
260  break;
261  }
262  break;
263  default:
264  break;
265  }
266  return rc;
267 }
268 
270 {
271  bool rc = false;
272  switch (version()) {
273  case 1:
274  switch (format()) {
275  case NEUTRAL:
276  rc = unpackNeutral();
277  break;
278  case UNCOMPRESSED:
279  switch (seqno()) {
280  case s_errorMarker:
282  break;
283  default:
284  rc = unpackUncompressedData();
285  break;
286  }
287  break;
288  case COMPRESSED:
289  case SUPERCOMPRESSED:
290  rc = PpmCompressionV1::unpack(*this);
291  break;
292  default:
294  break;
295  }
296  break;
297  default:
299  break;
300  }
301  return rc;
302 }
303 
304 // Pack neutral data
305 
307 {
308  const int slices = slicesLut() + slicesFadc();
309  const int channels = channelsPerSubBlock();
310  if (m_datamap.empty()) m_datamap.resize(slices * channels);
311  // Bunch crossing number
312  for (int pin = 0; pin < s_glinkPins; ++pin) {
313  uint32_t bc = 0;
314  if (pin < s_bunchCrossingBits) bc = (bunchCrossing() >> pin) & 0x1;
315  packerNeutral(pin, bc, 1);
316  }
317  // Data
318  std::vector<uint32_t>::const_iterator pos = m_datamap.begin();
319  for (int asic = 0; asic < s_asicChannels; ++asic) {
320  for (int pin = 0; pin < s_glinkPins; ++pin) {
321  for (int sl = 0; sl < slices; ++sl) {
323  ++pos;
324  }
325  }
326  }
327  // Errors, including GP
328  if (m_errormap.empty()) m_errormap.resize(s_glinkPins);
329  pos = m_errormap.begin();
330  for (int pin = 0; pin < s_glinkPins; ++pin) {
333  ++pos;
334  }
335  return true;
336 }
337 
338 // Pack uncompressed data
339 
341 {
342  const int slices = slicesLut() + slicesFadc();
343  const int channels = channelsPerSubBlock();
344  if (m_datamap.empty()) m_datamap.resize(slices * channels);
345  for (int sl = 0; sl < slices; ++sl) {
346  for (int chan = 0; chan < channels; ++chan) {
348  }
349  }
350  packerFlush();
351  return true;
352 }
353 
354 // Pack uncompressed error data
355 
357 {
358  if (m_errormap.empty()) m_errormap.resize(s_glinkPins);
359  for (int pin = 0; pin < s_glinkPins; ++pin) {
361  }
362  packerFlush();
363  return true;
364 }
365 
366 // Unpack neutral data
367 
369 {
370  const int slices = slicesLut() + slicesFadc();
371  m_datamap.clear();
372  // Bunch Crossing number
373  int bunchCrossing = 0;
374  for (int pin = 0; pin < s_glinkPins; ++pin) {
375  const int bc = unpackerNeutral(pin, 1);
376  if (pin < s_bunchCrossingBits) bunchCrossing |= bc << pin;
377  }
379  // Data
380  for (int asic = 0; asic < s_asicChannels; ++asic) {
381  for (int pin = 0; pin < s_glinkPins; ++pin) {
382  for (int sl = 0; sl < slices; ++sl) {
384  }
385  }
386  }
387  const bool rc = unpackerSuccess();
389  // Errors
390  m_errormap.clear();
391  m_globalError = 0;
392  for (int pin = 0; pin < s_glinkPins; ++pin) {
395  m_errormap.push_back(error);
396  m_globalError |= error;
397  }
398  return rc;
399 }
400 
401 // Unpack uncompressed data
402 
404 {
405  const int slices = slicesLut() + slicesFadc();
406  const int channels = channelsPerSubBlock();
407  m_datamap.resize(slices * channels);
408  unpackerInit();
409  for (int sl = 0; sl < slices; ++sl) {
410  for (int chan = 0; chan < channels; ++chan) {
412  }
413  }
414  bool rc = unpackerSuccess();
416  else {
417  // Check no more non-zero data
418  while (unpackerSuccess()) {
419  if (unpacker(s_wordLen)) {
421  rc = false;
422  break;
423  }
424  }
425  }
426  return rc;
427 }
428 
429 // Unpack uncompressed error data
430 
432 {
433  unpackerInit();
434  m_errormap.clear();
435  m_globalError = 0;
436  for (int pin = 0; pin < s_glinkPins; ++pin) {
437  uint32_t word = unpacker(s_wordLen);
438  m_errormap.push_back(word);
439  m_globalError |= word;
440  }
441  bool rc = unpackerSuccess();
443  else {
444  while (unpackerSuccess()) {
445  if (unpacker(s_wordLen)) {
447  rc = false;
448  break;
449  }
450  }
451  }
452  return rc;
453 }
454 
455 // Return the number of channels per sub-block
456 
458 {
459  int chan = 0;
460  switch (version) {
461  case 1:
462  switch (format) {
463  case UNCOMPRESSED:
465  break;
466  case NEUTRAL:
467  case COMPRESSED:
468  case SUPERCOMPRESSED:
469  chan = s_channels;
470  break;
471  default:
473  break;
474  }
475  break;
476  default:
478  break;
479  }
480  return chan;
481 }
482 
484 {
485  return channelsPerSubBlock(version(), format());
486 }
487 
488 // Check if a header word is for an error block
489 
491 {
492  bool rc = false;
493  if (format(word) == UNCOMPRESSED &&
494  seqno(word) == s_errorMarker) rc = true;
495  return rc;
496 }
497 
498 } // end namespace
LVL1BS::PpmSubBlockV1::s_bcidFadcMask
static const uint32_t s_bcidFadcMask
Definition: PpmSubBlockV1.h:133
LVL1BS::L1CaloSubBlock::setBunchCrossing
void setBunchCrossing(int bc)
Set the Bunch Crossing number (neutral format only)
Definition: L1CaloSubBlock.h:328
LVL1BS::PpmSubBlockV1::fillPpmError
void fillPpmError(int chan, int errorWord)
Store an error word corresponding to a data channel.
Definition: PpmSubBlockV1.cxx:181
LVL1BS::PpmSubBlockV1::s_dataBits
static const int s_dataBits
Definition: PpmSubBlockV1.h:138
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
LVL1BS::PpmSubBlockV1::fillPpmPinError
void fillPpmPinError(int pin, int errorWord)
Store an error word corresponding to a G-Link pin.
Definition: PpmSubBlockV1.cxx:194
LVL1BS::PpmSubBlockV1::s_lutMask
static const uint32_t s_lutMask
Definition: PpmSubBlockV1.h:130
LVL1BS::PpmSubBlockV1::s_channelDisabledBit
static const int s_channelDisabledBit
Definition: PpmSubBlockV1.h:150
LVL1BS::PpmSubBlockV1::ppmPinError
int ppmPinError(int pin) const
Return the error word for a G-Link pin.
Definition: PpmSubBlockV1.cxx:220
LVL1BS::PpmSubBlockV1::packUncompressedData
bool packUncompressedData()
Pack uncompressed data.
Definition: PpmSubBlockV1.cxx:340
LVL1BS::PpmSubBlockV1::s_bunchCrossingBits
static const int s_bunchCrossingBits
Definition: PpmSubBlockV1.h:140
LVL1BS::PpmSubBlockV1::s_wordIdVal
static const uint32_t s_wordIdVal
Definition: PpmSubBlockV1.h:122
LVL1BS::L1CaloSubBlock::clear
void clear()
Clear all data.
Definition: L1CaloSubBlock.cxx:82
vtune_athena.format
format
Definition: vtune_athena.py:14
LVL1BS::PpmSubBlockV1::s_asicChannels
static const int s_asicChannels
Definition: PpmSubBlockV1.h:137
LVL1BS::PpmSubBlockV1::unpackUncompressedData
bool unpackUncompressedData()
Unpack uncompressed data.
Definition: PpmSubBlockV1.cxx:403
LVL1BS::PpmSubBlockV1::s_timeoutBit
static const int s_timeoutBit
Definition: PpmSubBlockV1.h:148
LVL1BS::L1CaloSubBlock::packerNeutral
void packerNeutral(int pin, uint32_t datum, int nbits)
Pack given neutral data from given pin.
Definition: L1CaloSubBlock.cxx:413
LVL1BS::PpmSubBlockV1::s_glinkPinParityBit
static const int s_glinkPinParityBit
Definition: PpmSubBlockV1.h:143
LVL1BS::PpmSubBlockV1::s_asicFullBit
static const int s_asicFullBit
Definition: PpmSubBlockV1.h:147
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
LVL1BS::PpmCompressionV1::pack
static bool pack(PpmSubBlockV1 &subBlock)
Pack data.
Definition: PpmCompressionV1.cxx:33
LVL1BS::PpmSubBlockV1::~PpmSubBlockV1
~PpmSubBlockV1()
Definition: PpmSubBlockV1.cxx:50
LVL1BS::PpmSubBlockV1::asic
int asic(int chan) const
Return the ASIC channel corresponding to a data channel.
Definition: PpmSubBlockV1.h:383
LVL1BS::L1CaloSubBlock::SUPERCOMPRESSED
@ SUPERCOMPRESSED
Definition: L1CaloSubBlock.h:29
LVL1BS::L1CaloSubBlock::unpackerInit
void unpackerInit()
Initialise unpacker.
Definition: L1CaloSubBlock.cxx:393
LVL1BS::PpmSubBlockV1::m_lutOffset
int m_lutOffset
Definition: PpmSubBlockV1.h:180
PpmCompressionV1.h
LVL1BS::PpmSubBlockV1::s_fadcBit
static const int s_fadcBit
Definition: PpmSubBlockV1.h:128
LVL1BS::L1CaloSubBlock::NEUTRAL
@ NEUTRAL
Definition: L1CaloSubBlock.h:28
LVL1BS::L1CaloSubBlock::setHeader
void setHeader(int wordId, int version, int format, int seqno, int crate, int module, int slices2, int slices1)
Store header data.
Definition: L1CaloSubBlock.cxx:99
LVL1BS::L1CaloSubBlock::slices2
int slices2() const
Definition: L1CaloSubBlock.h:273
LVL1BS::L1CaloSubBlock::packerFlush
void packerFlush()
Flush the current data word padded with zeros.
Definition: L1CaloSubBlock.cxx:331
LVL1BS::L1CaloSubBlock::bunchCrossing
int bunchCrossing() const
Return the Bunch Crossing number (neutral format only)
Definition: L1CaloSubBlock.h:333
LVL1BS::PpmSubBlockV1::pack
bool pack()
Pack data.
Definition: PpmSubBlockV1.cxx:236
dq_defect_copy_defect_database.channels
def channels
Definition: dq_defect_copy_defect_database.py:56
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
LVL1BS::L1CaloSubBlock::crate
int crate() const
Definition: L1CaloSubBlock.h:263
LVL1BS::PpmSubBlockV1::m_datamap
std::vector< uint32_t > m_datamap
Vector for intermediate data.
Definition: PpmSubBlockV1.h:191
LVL1BS::PpmSubBlockV1::s_errorBits
static const int s_errorBits
Definition: PpmSubBlockV1.h:139
LVL1BS::PpmSubBlockV1::m_globalError
uint32_t m_globalError
Definition: PpmSubBlockV1.h:177
LVL1BS::PpmSubBlockV1::s_mcmAbsentBit
static const int s_mcmAbsentBit
Definition: PpmSubBlockV1.h:149
python.PyAthena.module
module
Definition: PyAthena.py:134
LVL1BS::PpmSubBlockV1::s_channels
static const int s_channels
Definition: PpmSubBlockV1.h:135
LVL1BS::PpmSubBlockV1::s_bunchMismatchBit
static const int s_bunchMismatchBit
Definition: PpmSubBlockV1.h:145
PpmSubBlockV1.h
LVL1BS::PpmSubBlockV1::setPpmErrorHeader
void setPpmErrorHeader(int version, int format, int crate, int module, int slicesFadc, int slicesLut)
Store PPM error block header.
Definition: PpmSubBlockV1.cxx:79
LVL1BS::PpmSubBlockV1::s_bcidLutMask
static const uint32_t s_bcidLutMask
Definition: PpmSubBlockV1.h:131
LVL1BS::L1CaloSubBlock::packer
void packer(uint32_t datum, int nbits)
Pack given data into given number of bits.
Definition: L1CaloSubBlock.cxx:302
LVL1BS::PpmSubBlockV1::ppmError
int ppmError(int chan) const
Return the error word for a data channel.
Definition: PpmSubBlockV1.cxx:206
dqt_zlumi_pandas.err
err
Definition: dqt_zlumi_pandas.py:193
LVL1BS::L1CaloSubBlock::UNPACK_DATA_TRUNCATED
@ UNPACK_DATA_TRUNCATED
Definition: L1CaloSubBlock.h:40
LVL1BS::PpmSubBlockV1::unpackUncompressedErrors
bool unpackUncompressedErrors()
Unpack uncompressed error data.
Definition: PpmSubBlockV1.cxx:431
ReadCellNoiseFromCool.chan
chan
Definition: ReadCellNoiseFromCool.py:52
LVL1BS::L1CaloSubBlock::unpackerNeutralParityError
bool unpackerNeutralParityError(int pin)
Unpack and test G-Link parity bit for given pin.
Definition: L1CaloSubBlock.cxx:464
LVL1BS::PpmSubBlockV1::s_eventMismatchBit
static const int s_eventMismatchBit
Definition: PpmSubBlockV1.h:146
LVL1BS::PpmSubBlockV1::slicesLut
int slicesLut() const
Definition: PpmSubBlockV1.cxx:101
LVL1BS::PpmSubBlockV1::slicesFadc
int slicesFadc() const
Definition: PpmSubBlockV1.cxx:89
LVL1BS::L1CaloSubBlock::format
int format() const
Definition: L1CaloSubBlock.h:248
LVL1BS::PpmSubBlockV1::unpackNeutral
bool unpackNeutral()
Unpack neutral data.
Definition: PpmSubBlockV1.cxx:368
LVL1BS::PpmSubBlockV1::pin
int pin(int chan) const
Return the G-Link pin corresponding to a data channel.
Definition: PpmSubBlockV1.h:388
LVL1BS::L1CaloSubBlock::unpacker
uint32_t unpacker(int nbits)
Unpack given number of bits of data.
Definition: L1CaloSubBlock.cxx:345
LVL1BS::PpmSubBlockV1::s_wordLen
static const int s_wordLen
Definition: PpmSubBlockV1.h:125
LVL1BS::L1CaloSubBlock::UNPACK_VERSION
@ UNPACK_VERSION
Definition: L1CaloSubBlock.h:38
LVL1BS::PpmSubBlockV1::s_fpgaCorruptBit
static const int s_fpgaCorruptBit
Definition: PpmSubBlockV1.h:144
LVL1BS::PpmSubBlockV1::s_bcidFadcBit
static const int s_bcidFadcBit
Definition: PpmSubBlockV1.h:129
LVL1BS::L1CaloSubBlock::COMPRESSED
@ COMPRESSED
Definition: L1CaloSubBlock.h:28
LVL1BS::PpmSubBlockV1::setPpmHeader
void setPpmHeader(int version, int format, int seqno, int crate, int module, int slicesFadc, int slicesLut)
Store PPM header.
Definition: PpmSubBlockV1.cxx:68
LVL1BS::PpmSubBlockV1::packUncompressedErrors
bool packUncompressedErrors()
Pack uncompressed error data.
Definition: PpmSubBlockV1.cxx:356
LVL1BS::PpmSubBlockV1::s_errorMask
static const uint32_t s_errorMask
Definition: PpmSubBlockV1.h:142
LVL1BS::L1CaloSubBlock::version
int version() const
Definition: L1CaloSubBlock.h:243
LVL1BS::PpmSubBlockV1::packNeutral
bool packNeutral()
Pack neutral data.
Definition: PpmSubBlockV1.cxx:306
LVL1BS::PpmSubBlockV1::clear
void clear()
Clear all data.
Definition: PpmSubBlockV1.cxx:56
WriteBchToCool.beg
beg
Definition: WriteBchToCool.py:69
LVL1BS::PpmSubBlockV1::m_fadcOffset
int m_fadcOffset
Definition: PpmSubBlockV1.h:181
LVL1BS::L1CaloSubBlock::unpackerSuccess
bool unpackerSuccess() const
Return unpacker success flag.
Definition: L1CaloSubBlock.h:354
LVL1BS::PpmSubBlockV1::s_lutBit
static const int s_lutBit
Definition: PpmSubBlockV1.h:126
LVL1BS::PpmSubBlockV1::s_fadcMask
static const uint32_t s_fadcMask
Definition: PpmSubBlockV1.h:132
LVL1BS::L1CaloSubBlock::slices1
int slices1() const
Definition: L1CaloSubBlock.h:278
PayloadHelpers::dataSize
size_t dataSize(TDA::PayloadIterator start)
Size in bytes of the buffer that is needed to decode next fragment data content.
Definition: TriggerEDMDeserialiserAlg.cxx:188
LVL1BS::L1CaloSubBlock::dataWords
int dataWords() const
Return number of data words.
Definition: L1CaloSubBlock.h:233
LVL1BS::PpmSubBlockV1::errorBlock
static bool errorBlock(uint32_t word)
Check if a header word is for an error block.
Definition: PpmSubBlockV1.cxx:490
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
LVL1BS::L1CaloSubBlock::UNPACK_EXCESS_DATA
@ UNPACK_EXCESS_DATA
Definition: L1CaloSubBlock.h:41
LVL1BS::L1CaloSubBlock::module
int module() const
Definition: L1CaloSubBlock.h:268
LVL1BS::PpmCompressionV1::unpack
static bool unpack(PpmSubBlockV1 &subBlock)
Unpack data.
Definition: PpmCompressionV1.cxx:217
get_generator_info.version
version
Definition: get_generator_info.py:33
ReadFloatFromCool.adc
adc
Definition: ReadFloatFromCool.py:48
LVL1BS
Definition: ZdcByteStreamReadV1V2Tool.h:47
LVL1BS::PpmSubBlockV1::ppmData
void ppmData(int chan, std::vector< int > &lut, std::vector< int > &fadc, std::vector< int > &bcidLut, std::vector< int > &bcidFadc)
Return unpacked data for given channel.
Definition: PpmSubBlockV1.cxx:144
LVL1BS::PpmSubBlockV1::channelDisabled
bool channelDisabled(int chan) const
Definition: PpmSubBlockV1.h:233
convertTimingResiduals.offset
offset
Definition: convertTimingResiduals.py:71
LVL1BS::PpmSubBlockV1::unpack
bool unpack()
Unpack data.
Definition: PpmSubBlockV1.cxx:269
LVL1BS::L1CaloSubBlock::setUnpackErrorCode
void setUnpackErrorCode(int code)
Set the unpacking error code.
Definition: L1CaloSubBlock.h:338
LVL1BS::PpmSubBlockV1::errorBit
bool errorBit(int pin, int bit) const
Error bit extraction.
Definition: PpmSubBlockV1.h:393
LVL1BS::PpmSubBlockV1::s_glinkPins
static const int s_glinkPins
Definition: PpmSubBlockV1.h:136
LVL1BS::PpmSubBlockV1::PpmSubBlockV1
PpmSubBlockV1()
Definition: PpmSubBlockV1.cxx:43
LVL1BS::PpmSubBlockV1::fillPpmData
void fillPpmData(int chan, const std::vector< int > &lut, const std::vector< int > &fadc, const std::vector< int > &bcidLut, const std::vector< int > &bcidFadc)
Store PPM data for later packing.
Definition: PpmSubBlockV1.cxx:110
LVL1BS::PpmSubBlockV1::channelsPerSubBlock
int channelsPerSubBlock()
Definition: PpmSubBlockV1.cxx:483
LVL1BS::PpmSubBlockV1::s_bcidLutBit
static const int s_bcidLutBit
Definition: PpmSubBlockV1.h:127
LVL1BS::L1CaloSubBlock::unpackerNeutral
uint32_t unpackerNeutral(int pin, int nbits)
Unpack given number of bits of neutral data for given pin.
Definition: L1CaloSubBlock.cxx:445
get_generator_info.error
error
Definition: get_generator_info.py:40
LVL1BS::L1CaloSubBlock::seqno
int seqno() const
Definition: L1CaloSubBlock.h:253
LVL1BS::PpmSubBlockV1::s_errorMarker
static const int s_errorMarker
Definition: PpmSubBlockV1.h:123
error
Definition: IImpactPoint3dEstimator.h:70
LVL1BS::PpmSubBlockV1::m_errormap
std::vector< uint32_t > m_errormap
Vector for intermediate error data.
Definition: PpmSubBlockV1.h:194
keylayer_zslicemap.slices
slices
Definition: keylayer_zslicemap.py:112
LVL1BS::L1CaloSubBlock::UNCOMPRESSED
@ UNCOMPRESSED
Definition: L1CaloSubBlock.h:28
LVL1BS::L1CaloSubBlock::UNPACK_FORMAT
@ UNPACK_FORMAT
Definition: L1CaloSubBlock.h:39
LVL1BS::L1CaloSubBlock::packerNeutralParity
void packerNeutralParity(int pin)
Pack current G-Link parity bit for given pin.
Definition: L1CaloSubBlock.cxx:434