ATLAS Offline Software
L1CaloSubBlock.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRIGT1CALOBYTESTREAM_L1CALOSUBBLOCK_H
6 #define TRIGT1CALOBYTESTREAM_L1CALOSUBBLOCK_H
7 
8 #include <stdint.h>
9 #include <vector>
10 
12 
13 #include "L1CaloSrcIdMap.h"
14 
15 namespace LVL1BS {
16 
25 
26  public:
30  // Errors detected before unpacking
37  // Errors detected during unpacking
43 
46 
48  void clear();
49 
51  int dataWords() const;
52 
54  void setHeader(int wordId, int version, int format, int seqno, int crate,
55  int module, int slices2, int slices1);
56 
57  // Return unpacked header data
58  int wordId() const;
59  int version() const;
60  int format() const;
61  int seqno() const;
62  int slice() const;
63  int crate() const;
64  int module() const;
65  int slices2() const;
66  int slices1() const;
67 
68  // Return unpacked error status data
69  uint32_t failingBCN() const;
70  bool glinkTimeout() const;
71  bool glinkDown() const;
72  bool upstreamError() const;
73  bool daqOverflow() const;
74  bool bcnMismatch() const;
75  bool glinkProtocol() const;
76  bool glinkParity() const;
77 
79  uint32_t subStatus() const;
80 
82  void setBunchCrossing(int bc);
84  int bunchCrossing() const;
85 
87  // (OFFLINE_FRAGMENTS_NAMESPACE::PointerType = uint32_t*)
91 
93  // (FullEventAssembler<L1CaloSrcIdMap>::RODDATA = vector<uint32_t>)
95 
98  bool upstreamError, bool daqOverflow, bool bcnMismatch,
99  bool glinkProtocol, bool glinkParity);
100 
102  void setDaqOverflow(int bit = 1);
104  void setGlinkParity(int bit = 1);
105 
107  static SubBlockWordType wordType(uint32_t word);
109  static int wordId(uint32_t word);
111  static int version(uint32_t word);
113  static int format(uint32_t word);
115  static int seqno(uint32_t word);
117  static int module(uint32_t word);
118 
119  // Unpacking error code. Set by derived classes
121  void setUnpackErrorCode(int code);
123  int unpackErrorCode() const;
125  std::string unpackErrorMsg() const;
126 
127  // Packing utilities
129  int minBits(uint32_t datum) const;
131  int parityBit(int init, uint32_t datum, int nbits) const;
133  void packer(uint32_t datum, int nbits);
135  void packerFlush();
137  void setStreamed();
139  uint32_t unpacker(int nbits);
140  uint32_t unpacker(int nbits, int align);
142  void unpackerInit();
144  bool unpackerSuccess() const;
145 
146  // Neutral format packing utilities
148  void packerNeutral(int pin, uint32_t datum, int nbits);
150  void packerNeutralParity(int pin);
152  uint32_t unpackerNeutral(int pin, int nbits);
154  bool unpackerNeutralParityError(int pin);
156  int currentPinBit(int pin) const;
157 
158  private:
159  // Constants.
160  // Header and status ID
161  static const int s_headerBit = 30;
162  static const int s_statusBit = 28;
163  static const uint32_t s_headerMask = 0x3;
164  static const uint32_t s_statusMask = 0x1;
165  static const uint32_t s_headerVal = 0x3;
166  static const uint32_t s_statusVal = 0x1;
167  // First non-PPM crate
168  static const int s_ppmCrates = 8;
169  // Header word data positions and masks
170  static const int s_wordIdBit = 28;
171  static const int s_versionBit = 25;
172  static const int s_formatBit = 22;
173  static const int s_seqnoBit = 16;
174  static const int s_crateBit = 12;
175  static const int s_moduleBit = 8;
176  static const int s_slices2Bit = 3;
177  static const int s_slices1Bit = 0;
178  static const uint32_t s_wordIdMask = 0xf;
179  static const uint32_t s_versionMask = 0x7;
180  static const uint32_t s_formatMask = 0x7;
181  static const uint32_t s_seqnoMask = 0x3f;
182  static const uint32_t s_crateMask = 0xf;
183  static const uint32_t s_moduleMask = 0xf;
184  static const uint32_t s_slices2Mask = 0x1f;
185  static const uint32_t s_slices1Mask = 0x7;
186  // Status word data positions and masks
187  static const int s_failingBcnBit = 22;
188  static const int s_glinkTimeoutBit = 7;
189  static const int s_glinkDownBit = 6;
190  static const int s_upstreamErrorBit = 4;
191  static const int s_daqOverflowBit = 3;
192  static const int s_bcnMismatchBit = 2;
193  static const int s_glinkProtocolBit = 1;
194  static const int s_glinkParityBit = 0;
195  static const uint32_t s_failingBcnMask = 0x3f;
196  // Packing word sizes and masks
197  static const int s_maxWordBits = 32;
198  static const int s_maxStreamedBits = 31;
199  static const uint32_t s_maxWordMask = 0xffffffff;
200  static const uint32_t s_maxStreamedMask = 0x7fffffff;
201  // Neutral packing
202  static const int s_maxPins = 20;
203  static const uint32_t s_glinkDavSet = 0x400000;
204 
213  // Used for bit-packing
219  std::vector<uint32_t>::const_iterator m_dataPos;
220  std::vector<uint32_t>::const_iterator m_dataPosEnd;
221  // Used for neutral bit packing
222  std::vector<int> m_currentPinBit;
223  std::vector<int> m_oddParity;
227  std::vector<uint32_t> m_data;
229  std::vector<uint32_t> m_unpackingMasks;
230 
231 };
232 
233 inline int L1CaloSubBlock::dataWords() const
234 {
235  return m_dataWords;
236 }
237 
238 inline int L1CaloSubBlock::wordId() const
239 {
240  return (m_header >> s_wordIdBit) & s_wordIdMask;
241 }
242 
243 inline int L1CaloSubBlock::version() const
244 {
245  return (m_header >> s_versionBit) & s_versionMask;
246 }
247 
248 inline int L1CaloSubBlock::format() const
249 {
250  return (m_header >> s_formatBit) & s_formatMask;
251 }
252 
253 inline int L1CaloSubBlock::seqno() const
254 {
255  return (m_header >> s_seqnoBit) & s_seqnoMask;
256 }
257 
258 inline int L1CaloSubBlock::slice() const
259 {
260  return seqno();
261 }
262 
263 inline int L1CaloSubBlock::crate() const
264 {
265  return (m_header >> s_crateBit) & s_crateMask;
266 }
267 
268 inline int L1CaloSubBlock::module() const
269 {
270  return (m_header >> s_moduleBit) & s_moduleMask;
271 }
272 
273 inline int L1CaloSubBlock::slices2() const
274 {
275  return (m_header >> s_slices2Bit) & s_slices2Mask;
276 }
277 
278 inline int L1CaloSubBlock::slices1() const
279 {
280  return (m_header >> s_slices1Bit) & s_slices1Mask;
281 }
282 
284 {
286 }
287 
288 inline bool L1CaloSubBlock::glinkTimeout() const
289 {
290  return m_trailer & (0x1 << s_glinkTimeoutBit);
291 }
292 
293 inline bool L1CaloSubBlock::glinkDown() const
294 {
295  return m_trailer & (0x1 << s_glinkDownBit);
296 }
297 
298 inline bool L1CaloSubBlock::upstreamError() const
299 {
300  return m_trailer & (0x1 << s_upstreamErrorBit);
301 }
302 
303 inline bool L1CaloSubBlock::daqOverflow() const
304 {
305  return m_trailer & (0x1 << s_daqOverflowBit);
306 }
307 
308 inline bool L1CaloSubBlock::bcnMismatch() const
309 {
310  return m_trailer & (0x1 << s_bcnMismatchBit);
311 }
312 
313 inline bool L1CaloSubBlock::glinkProtocol() const
314 {
315  return m_trailer & (0x1 << s_glinkProtocolBit);
316 }
317 
318 inline bool L1CaloSubBlock::glinkParity() const
319 {
320  return m_trailer & (0x1 << s_glinkParityBit);
321 }
322 
324 {
325  return m_trailer;
326 }
327 
328 inline void L1CaloSubBlock::setBunchCrossing(const int bc)
329 {
330  if (bc) m_bunchCrossing = bc;
331 }
332 
334 {
335  return m_bunchCrossing;
336 }
337 
339 {
341 }
342 
344 {
345  return m_unpackError;
346 }
347 
349 {
352 }
353 
355 {
356  return m_unpackerFlag;
357 }
358 
359 inline int L1CaloSubBlock::currentPinBit(int pin) const
360 {
361  return m_currentPinBit[pin];
362 }
363 
364 } // end namespace
365 
366 #endif
LVL1BS::L1CaloSubBlock::setBunchCrossing
void setBunchCrossing(int bc)
Set the Bunch Crossing number (neutral format only)
Definition: L1CaloSubBlock.h:328
LVL1BS::L1CaloSubBlock::s_moduleBit
static const int s_moduleBit
Definition: L1CaloSubBlock.h:175
LVL1BS::L1CaloSubBlock::s_bcnMismatchBit
static const int s_bcnMismatchBit
Definition: L1CaloSubBlock.h:192
LVL1BS::L1CaloSubBlock::s_daqOverflowBit
static const int s_daqOverflowBit
Definition: L1CaloSubBlock.h:191
LVL1BS::L1CaloSubBlock::ERROR_MISSING_HEADER
@ ERROR_MISSING_HEADER
Definition: L1CaloSubBlock.h:33
LVL1BS::L1CaloSubBlock::UNPACK_COMPRESSION_VERSION
@ UNPACK_COMPRESSION_VERSION
Definition: L1CaloSubBlock.h:39
LVL1BS::L1CaloSubBlock::unpackErrorCode
int unpackErrorCode() const
Return the unpacking error code.
Definition: L1CaloSubBlock.h:343
LVL1BS::L1CaloSubBlock::clear
void clear()
Clear all data.
Definition: L1CaloSubBlock.cxx:82
LVL1BS::L1CaloSubBlock::s_wordIdMask
static const uint32_t s_wordIdMask
Definition: L1CaloSubBlock.h:178
LVL1BS::L1CaloSubBlock::packerNeutral
void packerNeutral(int pin, uint32_t datum, int nbits)
Pack given neutral data from given pin.
Definition: L1CaloSubBlock.cxx:413
LVL1BS::L1CaloSubBlock::s_failingBcnBit
static const int s_failingBcnBit
Definition: L1CaloSubBlock.h:187
LVL1BS::L1CaloSubBlock::m_maxBits
int m_maxBits
Definition: L1CaloSubBlock.h:216
LVL1BS::L1CaloSubBlock::m_dataPosEnd
std::vector< uint32_t >::const_iterator m_dataPosEnd
Definition: L1CaloSubBlock.h:220
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
LVL1BS::L1CaloSubBlock::s_formatBit
static const int s_formatBit
Definition: L1CaloSubBlock.h:172
LVL1BS::L1CaloSubBlock::unpacker
uint32_t unpacker(int nbits, int align)
LVL1BS::L1CaloSubBlock::ERROR_DUPLICATE_ROB
@ ERROR_DUPLICATE_ROB
Definition: L1CaloSubBlock.h:31
LVL1BS::L1CaloSubBlock::setStreamed
void setStreamed()
Set continuous bit streaming for compressed formats.
Definition: L1CaloSubBlock.h:348
LVL1BS::L1CaloSubBlock::s_glinkParityBit
static const int s_glinkParityBit
Definition: L1CaloSubBlock.h:194
LVL1BS::L1CaloSubBlock::SUPERCOMPRESSED
@ SUPERCOMPRESSED
Definition: L1CaloSubBlock.h:29
LVL1BS::L1CaloSubBlock::s_glinkDavSet
static const uint32_t s_glinkDavSet
Definition: L1CaloSubBlock.h:203
LVL1BS::L1CaloSubBlock::DATA
@ DATA
Definition: L1CaloSubBlock.h:27
LVL1BS::L1CaloSubBlock::setGlinkParity
void setGlinkParity(int bit=1)
Set G-Link Parity bit in Sub-status word.
Definition: L1CaloSubBlock.cxx:217
LVL1BS::L1CaloSubBlock::unpackerInit
void unpackerInit()
Initialise unpacker.
Definition: L1CaloSubBlock.cxx:393
LVL1BS::L1CaloSubBlock::minBits
int minBits(uint32_t datum) const
Return the minimum number of bits needed for given data.
Definition: L1CaloSubBlock.cxx:274
LVL1BS::L1CaloSubBlock::s_glinkDownBit
static const int s_glinkDownBit
Definition: L1CaloSubBlock.h:189
LVL1BS::L1CaloSubBlock::write
void write(FullEventAssembler< L1CaloSrcIdMap >::RODDATA *theROD) const
Output complete packed sub-block to ROD vector.
Definition: L1CaloSubBlock.cxx:165
LVL1BS::L1CaloSubBlock::s_slices1Mask
static const uint32_t s_slices1Mask
Definition: L1CaloSubBlock.h:185
LVL1BS::L1CaloSubBlock::DataErrorType
DataErrorType
Definition: L1CaloSubBlock.h:31
LVL1BS::L1CaloSubBlock::s_failingBcnMask
static const uint32_t s_failingBcnMask
Definition: L1CaloSubBlock.h:195
LVL1BS::L1CaloSubBlock::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: L1CaloSubBlock.cxx:118
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::UNPACK_SOURCE_ID
@ UNPACK_SOURCE_ID
Definition: L1CaloSubBlock.h:41
LVL1BS::L1CaloSubBlock::s_headerVal
static const uint32_t s_headerVal
Definition: L1CaloSubBlock.h:165
LVL1BS::L1CaloSubBlock::wordId
int wordId() const
Definition: L1CaloSubBlock.h:238
LVL1BS::L1CaloSubBlock::s_slices2Mask
static const uint32_t s_slices2Mask
Definition: L1CaloSubBlock.h:184
LVL1BS::L1CaloSubBlock::s_statusVal
static const uint32_t s_statusVal
Definition: L1CaloSubBlock.h:166
LVL1BS::L1CaloSubBlock::DataFormats
DataFormats
Definition: L1CaloSubBlock.h:28
LVL1BS::L1CaloSubBlock::~L1CaloSubBlock
~L1CaloSubBlock()
Definition: L1CaloSubBlock.cxx:76
LVL1BS::L1CaloSubBlock::slices2
int slices2() const
Definition: L1CaloSubBlock.h:273
LVL1BS::L1CaloSubBlock::slice
int slice() const
Definition: L1CaloSubBlock.h:258
LVL1BS::L1CaloSubBlock::packerFlush
void packerFlush()
Flush the current data word padded with zeros.
Definition: L1CaloSubBlock.cxx:331
LVL1BS::L1CaloSubBlock::ERROR_ROD_NSTATUS
@ ERROR_ROD_NSTATUS
Definition: L1CaloSubBlock.h:32
LVL1BS::L1CaloSubBlock::bunchCrossing
int bunchCrossing() const
Return the Bunch Crossing number (neutral format only)
Definition: L1CaloSubBlock.h:333
LVL1BS::L1CaloSubBlock::upstreamError
bool upstreamError() const
Definition: L1CaloSubBlock.h:298
LVL1BS::L1CaloSubBlock::HEADER
@ HEADER
Definition: L1CaloSubBlock.h:27
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
LVL1BS::L1CaloSubBlock::crate
int crate() const
Definition: L1CaloSubBlock.h:263
LVL1BS::L1CaloSubBlock::s_seqnoMask
static const uint32_t s_seqnoMask
Definition: L1CaloSubBlock.h:181
LVL1BS::L1CaloSubBlock::s_moduleMask
static const uint32_t s_moduleMask
Definition: L1CaloSubBlock.h:183
OFFLINE_FRAGMENTS_NAMESPACE::PointerType
const DataType * PointerType
Definition: RawEvent.h:25
LVL1BS::L1CaloSubBlock::s_upstreamErrorBit
static const int s_upstreamErrorBit
Definition: L1CaloSubBlock.h:190
LVL1BS::L1CaloSubBlock::packer
void packer(uint32_t datum, int nbits)
Pack given data into given number of bits.
Definition: L1CaloSubBlock.cxx:302
LVL1BS::L1CaloSubBlock::failingBCN
uint32_t failingBCN() const
Definition: L1CaloSubBlock.h:283
LVL1BS::L1CaloSubBlock::m_data
std::vector< uint32_t > m_data
Sub-Block data.
Definition: L1CaloSubBlock.h:227
LVL1BS::L1CaloSubBlock::UNPACK_COMPRESSION_SLICES
@ UNPACK_COMPRESSION_SLICES
Definition: L1CaloSubBlock.h:40
LVL1BS::L1CaloSubBlock::ERROR_ROD_ID
@ ERROR_ROD_ID
Definition: L1CaloSubBlock.h:31
LVL1BS::L1CaloSubBlock::m_currentBit
int m_currentBit
Definition: L1CaloSubBlock.h:215
LVL1BS::L1CaloSubBlock::ERROR_CRATE_NUMBER
@ ERROR_CRATE_NUMBER
Definition: L1CaloSubBlock.h:34
LVL1BS::L1CaloSubBlock::glinkTimeout
bool glinkTimeout() const
Definition: L1CaloSubBlock.h:288
LVL1BS::L1CaloSubBlock::UNPACK_DATA_TRUNCATED
@ UNPACK_DATA_TRUNCATED
Definition: L1CaloSubBlock.h:40
LVL1BS::L1CaloSubBlock::s_statusBit
static const int s_statusBit
Definition: L1CaloSubBlock.h:162
LVL1BS::L1CaloSubBlock::s_ppmCrates
static const int s_ppmCrates
Definition: L1CaloSubBlock.h:168
LVL1BS::L1CaloSubBlock::setDaqOverflow
void setDaqOverflow(int bit=1)
Set DAQ FIFO Overflow bit in Sub-status word.
Definition: L1CaloSubBlock.cxx:206
LVL1BS::L1CaloSubBlock::ERROR_DUPLICATE_DATA
@ ERROR_DUPLICATE_DATA
Definition: L1CaloSubBlock.h:35
LVL1BS::L1CaloSubBlock::m_currentPinBit
std::vector< int > m_currentPinBit
Definition: L1CaloSubBlock.h:222
LVL1BS::L1CaloSubBlock::UnpackErrorType
UnpackErrorType
Definition: L1CaloSubBlock.h:38
LVL1BS::L1CaloSubBlock::UNPACK_EXCESS_TOBS
@ UNPACK_EXCESS_TOBS
Definition: L1CaloSubBlock.h:42
LVL1BS::L1CaloSubBlock::unpackerNeutralParityError
bool unpackerNeutralParityError(int pin)
Unpack and test G-Link parity bit for given pin.
Definition: L1CaloSubBlock.cxx:464
LVL1BS::L1CaloSubBlock::m_unpackError
int m_unpackError
Unpacking error code.
Definition: L1CaloSubBlock.h:212
LVL1BS::L1CaloSubBlock::format
int format() const
Definition: L1CaloSubBlock.h:248
LVL1BS::L1CaloSubBlock::m_bunchCrossing
int m_bunchCrossing
Bunch Crossing number (neutral format only)
Definition: L1CaloSubBlock.h:210
LVL1BS::L1CaloSubBlock::unpacker
uint32_t unpacker(int nbits)
Unpack given number of bits of data.
Definition: L1CaloSubBlock.cxx:345
LVL1BS::L1CaloSubBlock::s_maxStreamedMask
static const uint32_t s_maxStreamedMask
Definition: L1CaloSubBlock.h:200
LVL1BS::L1CaloSubBlock::s_maxWordBits
static const int s_maxWordBits
Definition: L1CaloSubBlock.h:197
LVL1BS::L1CaloSubBlock::daqOverflow
bool daqOverflow() const
Definition: L1CaloSubBlock.h:303
LVL1BS::L1CaloSubBlock::UNPACK_VERSION
@ UNPACK_VERSION
Definition: L1CaloSubBlock.h:38
LVL1BS::L1CaloSubBlock::ERROR_NONE
@ ERROR_NONE
Definition: L1CaloSubBlock.h:31
LVL1BS::L1CaloSubBlock::glinkProtocol
bool glinkProtocol() const
Definition: L1CaloSubBlock.h:313
LVL1BS::L1CaloSubBlock::wordType
static SubBlockWordType wordType(uint32_t word)
Word identification.
Definition: L1CaloSubBlock.cxx:479
FullEventAssembler.h
LVL1BS::L1CaloSubBlock::m_bitword
uint32_t m_bitword
Definition: L1CaloSubBlock.h:214
LVL1BS::L1CaloSubBlock::COMPRESSED
@ COMPRESSED
Definition: L1CaloSubBlock.h:28
LVL1BS::L1CaloSubBlock::m_oddParity
std::vector< int > m_oddParity
Definition: L1CaloSubBlock.h:223
LVL1BS::L1CaloSubBlock::unpackErrorMsg
std::string unpackErrorMsg() const
Return the unpacking error message for printing.
Definition: L1CaloSubBlock.cxx:228
LVL1BS::L1CaloSubBlock::s_glinkProtocolBit
static const int s_glinkProtocolBit
Definition: L1CaloSubBlock.h:193
LVL1BS::L1CaloSubBlock::version
int version() const
Definition: L1CaloSubBlock.h:243
pmontree.code
code
Definition: pmontree.py:443
WriteBchToCool.beg
beg
Definition: WriteBchToCool.py:69
LVL1BS::L1CaloSubBlock::unpackerSuccess
bool unpackerSuccess() const
Return unpacker success flag.
Definition: L1CaloSubBlock.h:354
LVL1BS::L1CaloSubBlock::s_versionMask
static const uint32_t s_versionMask
Definition: L1CaloSubBlock.h:179
LVL1BS::L1CaloSubBlock::s_maxWordMask
static const uint32_t s_maxWordMask
Definition: L1CaloSubBlock.h:199
LVL1BS::L1CaloSubBlock::s_slices1Bit
static const int s_slices1Bit
Definition: L1CaloSubBlock.h:177
LVL1BS::L1CaloSubBlock::slices1
int slices1() const
Definition: L1CaloSubBlock.h:278
LVL1BS::L1CaloSubBlock::dataWords
int dataWords() const
Return number of data words.
Definition: L1CaloSubBlock.h:233
LVL1BS::L1CaloSubBlock::s_formatMask
static const uint32_t s_formatMask
Definition: L1CaloSubBlock.h:180
LVL1BS::L1CaloSubBlock::subStatus
uint32_t subStatus() const
Return Sub-status word.
Definition: L1CaloSubBlock.h:323
LVL1BS::L1CaloSubBlock::ERROR_MAX
@ ERROR_MAX
Definition: L1CaloSubBlock.h:36
LVL1BS::L1CaloSubBlock::m_trailer
uint32_t m_trailer
Sub-Block Status Trailer.
Definition: L1CaloSubBlock.h:208
LVL1BS::L1CaloSubBlock::s_seqnoBit
static const int s_seqnoBit
Definition: L1CaloSubBlock.h:173
LVL1BS::L1CaloSubBlock::m_dataPos
std::vector< uint32_t >::const_iterator m_dataPos
Definition: L1CaloSubBlock.h:219
LVL1BS::L1CaloSubBlock::s_headerBit
static const int s_headerBit
Definition: L1CaloSubBlock.h:161
LVL1BS::L1CaloSubBlock::m_header
uint32_t m_header
Sub-Block Header.
Definition: L1CaloSubBlock.h:206
LVL1BS::L1CaloSubBlock::s_maxPins
static const int s_maxPins
Definition: L1CaloSubBlock.h:202
python.PyKernel.init
def init(v_theApp, v_rootStream=None)
Definition: PyKernel.py:45
LVL1BS::L1CaloSubBlock::UNPACK_EXCESS_DATA
@ UNPACK_EXCESS_DATA
Definition: L1CaloSubBlock.h:41
LVL1BS::L1CaloSubBlock::s_statusMask
static const uint32_t s_statusMask
Definition: L1CaloSubBlock.h:164
LVL1BS::L1CaloSubBlock::module
int module() const
Definition: L1CaloSubBlock.h:268
LVL1BS::L1CaloSubBlock::ERROR_MISSING_SUBBLOCK
@ ERROR_MISSING_SUBBLOCK
Definition: L1CaloSubBlock.h:33
LVL1BS::L1CaloSubBlock
L1Calo Sub-Block base class.
Definition: L1CaloSubBlock.h:24
LVL1BS::L1CaloSubBlock::m_unpackerFlag
bool m_unpackerFlag
Definition: L1CaloSubBlock.h:218
LVL1BS::L1CaloSubBlock::ERROR_SLICES
@ ERROR_SLICES
Definition: L1CaloSubBlock.h:35
LVL1BS::L1CaloSubBlock::glinkDown
bool glinkDown() const
Definition: L1CaloSubBlock.h:293
LVL1BS::L1CaloSubBlock::SubBlockWordType
SubBlockWordType
Definition: L1CaloSubBlock.h:27
LVL1BS
Definition: ZdcByteStreamReadV1V2Tool.h:47
LVL1BS::L1CaloSubBlock::s_maxStreamedBits
static const int s_maxStreamedBits
Definition: L1CaloSubBlock.h:198
LVL1BS::L1CaloSubBlock::s_headerMask
static const uint32_t s_headerMask
Definition: L1CaloSubBlock.h:163
LVL1BS::L1CaloSubBlock::ERROR_MODULE_NUMBER
@ ERROR_MODULE_NUMBER
Definition: L1CaloSubBlock.h:34
LVL1BS::L1CaloSubBlock::setUnpackErrorCode
void setUnpackErrorCode(int code)
Set the unpacking error code.
Definition: L1CaloSubBlock.h:338
LVL1BS::L1CaloSubBlock::m_unpackingMasks
std::vector< uint32_t > m_unpackingMasks
Unpacking masks.
Definition: L1CaloSubBlock.h:229
LVL1BS::L1CaloSubBlock::parityBit
int parityBit(int init, uint32_t datum, int nbits) const
Return the parity bit for given data.
Definition: L1CaloSubBlock.cxx:291
LVL1BS::L1CaloSubBlock::s_wordIdBit
static const int s_wordIdBit
Definition: L1CaloSubBlock.h:170
LVL1BS::L1CaloSubBlock::ERROR_ROI_TYPE
@ ERROR_ROI_TYPE
Definition: L1CaloSubBlock.h:36
L1CaloSrcIdMap.h
LVL1BS::L1CaloSubBlock::s_crateBit
static const int s_crateBit
Definition: L1CaloSubBlock.h:174
FullEventAssembler::RODDATA
std::vector< uint32_t > RODDATA
ROD data as a vector of unsigned int.
Definition: FullEventAssembler.h:54
LVL1BS::L1CaloSubBlock::STATUS
@ STATUS
Definition: L1CaloSubBlock.h:27
LVL1BS::L1CaloSubBlock::m_maxMask
uint32_t m_maxMask
Definition: L1CaloSubBlock.h:217
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
LVL1BS::L1CaloSubBlock::seqno
int seqno() const
Definition: L1CaloSubBlock.h:253
LVL1BS::L1CaloSubBlock::s_slices2Bit
static const int s_slices2Bit
Definition: L1CaloSubBlock.h:176
LVL1BS::L1CaloSubBlock::UNPACK_DATA_ID
@ UNPACK_DATA_ID
Definition: L1CaloSubBlock.h:42
LVL1BS::L1CaloSubBlock::s_crateMask
static const uint32_t s_crateMask
Definition: L1CaloSubBlock.h:182
LVL1BS::L1CaloSubBlock::L1CaloSubBlock
L1CaloSubBlock()
Definition: L1CaloSubBlock.cxx:57
LVL1BS::L1CaloSubBlock::glinkParity
bool glinkParity() const
Definition: L1CaloSubBlock.h:318
LVL1BS::L1CaloSubBlock::UNPACK_NONE
@ UNPACK_NONE
Definition: L1CaloSubBlock.h:38
LVL1BS::L1CaloSubBlock::m_dataWords
int m_dataWords
Current number of data words.
Definition: L1CaloSubBlock.h:225
LVL1BS::L1CaloSubBlock::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: L1CaloSubBlock.cxx:179
LVL1BS::L1CaloSubBlock::ERROR_USER_HEADER
@ ERROR_USER_HEADER
Definition: L1CaloSubBlock.h:32
LVL1BS::L1CaloSubBlock::s_versionBit
static const int s_versionBit
Definition: L1CaloSubBlock.h:171
LVL1BS::L1CaloSubBlock::currentPinBit
int currentPinBit(int pin) const
Return current pin bit for given pin.
Definition: L1CaloSubBlock.h:359
LVL1BS::L1CaloSubBlock::UNCOMPRESSED
@ UNCOMPRESSED
Definition: L1CaloSubBlock.h:28
LVL1BS::L1CaloSubBlock::bcnMismatch
bool bcnMismatch() const
Definition: L1CaloSubBlock.h:308
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
LVL1BS::L1CaloSubBlock::s_glinkTimeoutBit
static const int s_glinkTimeoutBit
Definition: L1CaloSubBlock.h:188