ATLAS Offline Software
JepRoiByteStreamV2Tool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
6 #include <numeric>
7 #include <set>
8 #include <utility>
9 
10 #include "GaudiKernel/IInterface.h"
11 #include "GaudiKernel/MsgStream.h"
12 #include "GaudiKernel/StatusCode.h"
13 
15 
17 #include "TrigT1CaloEvent/CMXRoI.h"
20 
21 #include "CmxSubBlock.h"
22 #include "JemRoiSubBlockV2.h"
24 #include "L1CaloSrcIdMap.h"
25 #include "L1CaloSubBlock.h"
26 #include "L1CaloUserHeader.h"
27 
28 #include "JepRoiByteStreamV2Tool.h"
29 
30 namespace LVL1BS {
31 
32 // Interface ID
33 
34 static const InterfaceID IID_IJepRoiByteStreamV2Tool("JepRoiByteStreamV2Tool",
35  1, 1);
36 
38 {
39  return IID_IJepRoiByteStreamV2Tool;
40 }
41 
42 // Constructor
43 
45  const std::string& name,
46  const IInterface* parent)
48  m_robDataProvider("ROBDataProviderSvc", name),
49  m_errorTool("LVL1BS::L1CaloErrorByteStreamTool/L1CaloErrorByteStreamTool"),
50  m_crates(2), m_modules(16), m_frames(8), m_maxRoiWords(6),
51  m_subDetector (eformat::TDAQ_CALO_JET_PROC_ROI)
52 {
53  declareInterface<JepRoiByteStreamV2Tool>(this);
54 
55  declareProperty("ErrorTool", m_errorTool,
56  "Tool to collect errors for monitoring");
57  declareProperty("CrateOffsetHw", m_crateOffsetHw = 12,
58  "Offset of JEP crate numbers in bytestream");
59  declareProperty("CrateOffsetSw", m_crateOffsetSw = 0,
60  "Offset of JEP crate numbers in RDOs");
61 
62  // Properties for reading bytestream only
63  declareProperty("ROBSourceIDs", m_sourceIDsProp,
64  "ROB fragment source identifiers");
65  declareProperty("ROBSourceIDsRoIB", m_sourceIDsRoIBProp,
66  "ROB fragment source identifiers");
67 
68  // Properties for writing bytestream only
69  declareProperty("DataVersion", m_version = 2, //<<== CHECK
70  "Format version number in sub-block header");
71  declareProperty("DataFormat", m_dataFormat = 1,
72  "Format identifier (0-1) in sub-block header");
73  declareProperty("SlinksPerCrate", m_slinks = 1,
74  "The number of S-Links per crate");
75  declareProperty("CrateMin", m_crateMin = 0,
76  "Minimum crate number, allows partial output");
77  declareProperty("CrateMax", m_crateMax = m_crates - 1,
78  "Maximum crate number, allows partial output");
79 
80 }
81 
82 // Destructor
83 
85 {
86 }
87 
88 // Initialize
89 
90 
92 {
93  ATH_MSG_INFO ("Initializing " << name());
94 
95  ATH_CHECK( m_errorTool.retrieve() );
96  ATH_CHECK( m_byteStreamCnvSvc.retrieve() );
97 
98  return StatusCode::SUCCESS;
99 }
100 
101 // Finalize
102 
104 {
105  return StatusCode::SUCCESS;
106 }
107 
108 // Conversion bytestream to JEM RoI
109 
111  const std::string& sgKey,
112  DataVector<LVL1::JEMTobRoI> *const collection) const
113 {
114  const std::vector<uint32_t>& vID(sourceIDs(sgKey));
115  // // get ROB fragments
117  m_robDataProvider->getROBData(vID, robFrags, "JepRoiByteStreamV2Tool");
118  ATH_MSG_DEBUG("Number of ROB fragments:" << robFrags.size());
119  return convert(robFrags, collection);
120 }
121 
123  const IROBDataProviderSvc::VROBFRAG& robFrags,
124  DataVector<LVL1::JEMTobRoI>* const jeCollection) const
125 {
126  return convertBs(robFrags, jeCollection, nullptr);
127 }
128 
129 // Conversion bytestream to CMX RoI
130 
132  const std::string& sgKey,
133  LVL1::CMXRoI* cmCollection) const
134 {
135  const std::vector<uint32_t>& vID(sourceIDs(sgKey));
136  // // get ROB fragments
138  m_robDataProvider->getROBData(vID, robFrags, "JepRoiByteStreamV2Tool");
139  ATH_MSG_DEBUG("Number of ROB fragments:" << robFrags.size());
140  return convert(robFrags, cmCollection);
141 }
142 
144  const IROBDataProviderSvc::VROBFRAG& robFrags,
145  LVL1::CMXRoI* cmCollection) const
146 {
147  return convertBs(robFrags, nullptr, cmCollection);
148 }
149 
150 // Conversion of JEP container to bytestream
151 
153  const LVL1::JEPRoIBSCollectionV2* const jep) const
154 {
155  const bool debug = msgLvl(MSG::DEBUG);
156  if (debug) msg(MSG::DEBUG);
157 
158  // Get the event assembler
159  FullEventAssembler<L1CaloSrcIdMap>* fea = nullptr;
160  ATH_CHECK( m_byteStreamCnvSvc->getFullEventAssembler (fea,
161  "JepRoiByteStreamV2") );
162  const uint16_t minorVersion = m_srcIdMap.minorVersion();
163  fea->setRodMinorVersion(minorVersion);
164 
165  // Pointer to ROD data vector
166 
168 
169  // Sub-block for neutral format
170  JemRoiSubBlockV2 subBlock;
171 
172  // Set up the container maps
173 
174  const bool neutralFormat = m_dataFormat == L1CaloSubBlock::NEUTRAL;
175 
176  // JEM RoI map
177  JemRoiMap roiMap;
178  setupJemRoiMap(jep->JemRoi(), roiMap);
179  JemRoiMap::const_iterator mapIter = roiMap.begin();
180  JemRoiMap::const_iterator mapIterEnd = roiMap.end();
181 
182  // CMX energy sums map
183  CmxSumsMap cmxEtMap;
184  if (neutralFormat) {
185  setupCmxEtMap(jep->CmxSums(), cmxEtMap);
186  }
187 
188  // Loop over JEM RoI data
189 
190  const int modulesPerSlink = m_modules / m_slinks;
191  for (int crate = m_crateMin; crate <= m_crateMax; ++crate) {
192  const int hwCrate = crate + m_crateOffsetHw;
193 
194  for (int module = 0; module < m_modules; ++module) {
195 
196  // Pack required number of modules per slink
197 
198  if (module % modulesPerSlink == 0) {
199  const int daqOrRoi = 1;
200  const int slink = module / modulesPerSlink;
201  if (debug) {
202  msg() << "Treating crate " << hwCrate
203  << " slink " << slink << endmsg
204  << "Data Version/Format: " << m_version
205  << " " << m_dataFormat << endmsg;
206  }
207  const uint32_t rodIdJem = m_srcIdMap.getRodID(hwCrate, slink, daqOrRoi,
208  m_subDetector);
209  theROD = fea->getRodData(rodIdJem);
210  if (neutralFormat) {
211  const L1CaloUserHeader userHeader;
212  theROD->push_back(userHeader.header());
213  }
214  }
215  if (debug) msg() << "JEM Module " << module << endmsg;
216  if (!theROD) break; // for coverity, shouldn't happen
217 
218  // Create a sub-block (Neutral format only)
219 
220  if (neutralFormat) {
221  subBlock.clear();
222  subBlock.setRoiHeader(m_version, hwCrate, module);
223  }
224 
225  // Find JEM RoIs for this module
226 
227  for (; mapIter != mapIterEnd; ++mapIter) {
228  const LVL1::JEMTobRoI* const roi = mapIter->second;
229  if (roi->crate() < crate) continue;
230  if (roi->crate() > crate) break;
231  if (roi->jem() < module) continue;
232  if (roi->jem() > module) break;
233  if (roi->energyLarge() || roi->energySmall()) {
234  if (neutralFormat) subBlock.fillRoi(*roi);
235  else theROD->push_back(roi->roiWord());
236  }
237  }
238 
239  // Pack and write the sub-block
240 
241  if (neutralFormat) {
242  if ( !subBlock.pack()) {
243  msg(MSG::ERROR) << "JEM RoI sub-block packing failed" << endmsg;
244  return StatusCode::FAILURE;
245  }
246  if (debug) {
247  msg() << "JEM RoI sub-block data words: "
248  << subBlock.dataWords() << endmsg;
249  }
250  subBlock.write(theROD);
251  }
252  }
253  if (!theROD) break; // for coverity, shouldn't happen
254 
255  // Append CMX RoIs to last S-Link of the system crate
256 
257  if (crate != m_crates - 1) continue;
258 
259  // Create sub-blocks for Neutral format
260 
261  if (neutralFormat) {
262  const int timeslices = 1;
263  const int slice = 0;
264 
265  // CMX-Energy
266 
267  CmxEnergySubBlock subBlock;
268  const int cmxEnergyVersion = 3; //<<== CHECK
269  subBlock.setCmxHeader(cmxEnergyVersion, m_dataFormat, slice, hwCrate,
271  CmxSubBlock::LEFT, timeslices);
272  int maxSource = static_cast<int>(LVL1::CMXEtSums::MAX_SOURCE);
273  for (int source = 0; source < maxSource; ++source) {
274  const LVL1::CMXEtSums* const sums = findCmxSums(crate, source, cmxEtMap);
275  if ( sums ) {
276  const unsigned int ex = sums->Ex();
277  const unsigned int ey = sums->Ey();
278  const unsigned int et = sums->Et();
279  const int exErr = sums->ExError();
280  const int eyErr = sums->EyError();
281  const int etErr = sums->EtError();
282  if (source < m_modules) {
283  subBlock.setSubsums(slice, source, ex, ey, et, exErr, eyErr, etErr);
284  } else {
288  energySubBlockTypes(source, srcType, sumType, hitType);
289  if (srcType != CmxEnergySubBlock::MAX_SOURCE_TYPE) {
290  subBlock.setSubsums(slice, srcType, sumType, ex, ey, et,
291  exErr, eyErr, etErr);
292  } else if (hitType != CmxEnergySubBlock::MAX_HITS_TYPE) {
293  subBlock.setEtHits(slice, hitType, sumType, et);
294  }
295  }
296  }
297  }
298  if ( !subBlock.pack()) {
299  msg(MSG::ERROR) << "CMX-Energy sub-block packing failed" << endmsg;
300  return StatusCode::FAILURE;
301  }
302  if (debug) {
303  msg() << "CMX-Energy sub-block data words: "
304  << subBlock.dataWords() << endmsg;
305  }
306  subBlock.write(theROD);
307 
308  } else {
309 
310  // Standard format
311 
312  const LVL1::CMXRoI* const roi = jep->CmxRoi();
313  if ( roi ) {
314  // CMX-Energy RoIs are not zero-supressed unless all are zero
315  for (int word = 0; word < m_maxRoiWords; ++word) {
316  theROD->push_back(roi->roiWord(word));
317  }
318  }
319  }
320  }
321 
322  return StatusCode::SUCCESS;
323 }
324 
325 // Return reference to vector with all possible Source Identifiers
326 
327 std::vector<uint32_t> JepRoiByteStreamV2Tool::makeSourceIDs (bool roiDaq) const
328 {
329  std::vector<uint32_t> sourceIDs;
330 
331  if (roiDaq) {
333  }
334  else {
336  }
337 
338  if (sourceIDs.empty()) {
339  const int maxCrates = m_crates + m_crateOffsetHw;
340  const int maxSlinks = m_srcIdMap.maxSlinks();
341  for (int hwCrate = m_crateOffsetHw; hwCrate < maxCrates; ++hwCrate)
342  {
343  for (int slink = 0; slink < maxSlinks; ++slink)
344  {
345  const int daqOrRoi = 1;
346  const uint32_t rodId = m_srcIdMap.getRodID(hwCrate, slink, daqOrRoi,
347  m_subDetector);
348  const uint32_t robId = m_srcIdMap.getRobID(rodId);
349  if (roiDaq)
350  {
351  if (slink < 2) sourceIDs.push_back(robId);
352  }
353  else if (slink >= 2) sourceIDs.push_back(robId);
354  }
355  }
356 
357  }
358  return sourceIDs;
359 }
360 
361 const std::vector<uint32_t>& JepRoiByteStreamV2Tool::sourceIDs(
362  const std::string& sgKey) const
363 {
364  const std::string flag("RoIB");
365  const std::string::size_type pos = sgKey.find(flag);
366  const bool roiDaq =
367  (pos == std::string::npos || pos != sgKey.length() - flag.length());
368 
369  if (roiDaq) {
370  static const std::vector<uint32_t> sourceIDs = makeSourceIDs(roiDaq);
371  return sourceIDs;
372  }
373  else {
374  static const std::vector<uint32_t> sourceIDsRoIB = makeSourceIDs(roiDaq);
375  return sourceIDsRoIB;
376  }
377 }
378 
379 // Convert bytestream to given container type
380 
382  const IROBDataProviderSvc::VROBFRAG& robFrags,
383  DataVector<LVL1::JEMTobRoI>* jeCollection,
384  LVL1::CMXRoI* cmCollection) const
385 {
386  const bool debug = msgLvl(MSG::DEBUG);
387  if (debug) msg(MSG::DEBUG);
388 
389  // Loop over ROB fragments
390 
391  int robCount = 0;
392  std::set<uint32_t> dupCheck;
393  std::set<uint32_t> dupRoiCheck;
394  ROBIterator rob = robFrags.begin();
395  ROBIterator robEnd = robFrags.end();
396  for (; rob != robEnd; ++rob) {
397 
398  if (debug) {
399  ++robCount;
400  msg() << "Treating ROB fragment " << robCount << endmsg;
401  }
402 
403  // Skip fragments with ROB status errors
404 
405  uint32_t robid = (*rob)->source_id();
406  if ((*rob)->nstatus() > 0) {
407  ROBPointer robData;
408  (*rob)->status(robData);
409  if (*robData != 0) {
410  m_errorTool->robError(robid, *robData);
411  if (debug) msg() << "ROB status error - skipping fragment" << endmsg;
412  continue;
413  }
414  }
415 
416  // Skip duplicate fragments
417 
418  if (!dupCheck.insert(robid).second) {
420  if (debug) msg() << "Skipping duplicate ROB fragment" << endmsg;
421  continue;
422  }
423 
424  // Unpack ROD data (slinks)
425 
426  RODPointer payloadBeg;
428  RODPointer payloadEnd;
429  (*rob)->rod_data(payloadBeg);
430  payloadEnd = payloadBeg + (*rob)->rod_ndata();
431  payload = payloadBeg;
432  if (payload == payloadEnd) {
433  if (debug) msg() << "ROB fragment empty" << endmsg;
434  continue;
435  }
436 
437  // Check identifier
438  const uint32_t sourceID = (*rob)->rod_source_id();
439  if (m_srcIdMap.getRobID(sourceID) != robid ||
440  m_srcIdMap.subDet(sourceID) != m_subDetector ||
441  m_srcIdMap.daqOrRoi(sourceID) != 1 ||
442  (m_srcIdMap.slink(sourceID) != 0 && m_srcIdMap.slink(sourceID) != 2) ||
443  m_srcIdMap.crate(sourceID) < m_crateOffsetHw ||
444  m_srcIdMap.crate(sourceID) >= m_crateOffsetHw + m_crates) {
445  m_errorTool->rodError(robid, L1CaloSubBlock::ERROR_ROD_ID);
446  if (debug) {
447  msg() << "Wrong source identifier in data: "
448  << MSG::hex << sourceID << MSG::dec << endmsg;
449  }
450  continue;
451  }
452 
453  // Check minor version
454  const int minorVersion = (*rob)->rod_version() & 0xffff;
455  if (minorVersion <= m_srcIdMap.minorVersionPreLS1()) {
456  if (debug) msg() << "Skipping pre-LS1 data" << endmsg;
457  continue;
458  }
459  const int rodCrate = m_srcIdMap.crate(sourceID);
460  if (debug) {
461  msg() << "Treating crate " << rodCrate
462  << " slink " << m_srcIdMap.slink(sourceID) << endmsg;
463  }
464 
465  // First word may be User Header
467  L1CaloUserHeader userHeader(*payload);
468  userHeader.setVersion(minorVersion);
469  const int headerWords = userHeader.words();
470  if (headerWords != 1) {
472  if (debug) msg() << "Unexpected number of user header words: "
473  << headerWords << endmsg;
474  continue;
475  }
476  for (int i = 0; i < headerWords; ++i) ++payload;
477  }
478 
479  // Loop over sub-blocks if there are any
480 
481  unsigned int rodErr = L1CaloSubBlock::ERROR_NONE;
482  while (payload != payloadEnd) {
483 
485  const int slice = 0;
487  // CMXs
489  CmxEnergySubBlock subBlock;
490  payload = subBlock.read(payload, payloadEnd);
491  if (cmCollection != nullptr) {
492  if (subBlock.dataWords() && !subBlock.unpack()) {
493  if (debug) {
494  std::string errMsg(subBlock.unpackErrorMsg());
495  msg() << "CMX-Energy sub-block unpacking failed: "
496  << errMsg << endmsg;
497  }
498  rodErr = subBlock.unpackErrorCode();
499  break;
500  }
501  const LVL1::CMXRoI roi(
548  for (int word = 0; word < m_maxRoiWords; ++word) {
549  cmCollection->setRoiWord(roi.roiWord(word));
550  }
551  }
552  }
553  } else {
554  // JEM RoI
555  JemRoiSubBlockV2 subBlock;
556  payload = subBlock.read(payload, payloadEnd);
557  if (jeCollection != nullptr) {
558  if (subBlock.dataWords() && !subBlock.unpack()) {
559  if (debug) {
560  std::string errMsg(subBlock.unpackErrorMsg());
561  msg() << "JEM RoI sub-block unpacking failed: "
562  << errMsg << endmsg;
563  }
564  rodErr = subBlock.unpackErrorCode();
565  break;
566  }
567  for (int frame = 0; frame < m_frames; ++frame) {
568  const LVL1::JEMTobRoI roi = subBlock.roi(frame);
569  if (roi.energyLarge() || roi.energySmall()) {
570  jeCollection->push_back(new LVL1::JEMTobRoI(roi));
571  }
572  }
573  }
574  }
575  } else {
576  // Just RoI word
577  LVL1::JEMTobRoI jroi;
578  LVL1::CMXRoI croi;
579  if (jroi.setRoiWord(*payload)) {
580  if (jeCollection != nullptr) {
581  if (jroi.crate() != rodCrate - m_crateOffsetHw) {
582  if (debug) msg() << "Inconsistent RoI crate number: "
583  << jroi.crate() << endmsg;
585  break;
586  }
587  const uint32_t location = (*payload) & 0xfff80000;
588  if (dupRoiCheck.insert(location).second) {
589  if (jroi.energyLarge() || jroi.energySmall()) {
590  jeCollection->push_back(new LVL1::JEMTobRoI(*payload));
591  }
592  } else {
593  if (debug) msg() << "Duplicate RoI word "
594  << MSG::hex << *payload << MSG::dec << endmsg;
596  break;
597  }
598  }
599  } else if (croi.setRoiWord(*payload)) {
600  if (cmCollection != nullptr) {
601  const uint32_t roiType = (*payload) & 0xfc000000;
602 
603  if (dupRoiCheck.insert(roiType).second) {
604  cmCollection->setRoiWord(*payload);
605  } else {
606  if (debug) msg() << "Duplicate RoI word "
607  << MSG::hex << *payload << MSG::dec << endmsg;
609  break;
610  }
611  }
612  } else {
613  if (debug) msg() << "Invalid RoI word "
614  << MSG::hex << *payload << MSG::dec << endmsg;
616  break;
617  }
618  ++payload;
619  }
620  }
621  if (rodErr != L1CaloSubBlock::ERROR_NONE)
622  m_errorTool->rodError(robid, rodErr);
623  }
624 
625  return StatusCode::SUCCESS;
626 }
627 
628 // Find CMX energy sums for given crate, source
629 
631  const int source,
632  const CmxSumsMap& cmxEtMap) const
633 {
634  const LVL1::CMXEtSums* sums = 0;
635  CmxSumsMap::const_iterator mapIter;
636  mapIter = cmxEtMap.find(crate * 100 + source);
637  if (mapIter != cmxEtMap.end()) sums = mapIter->second;
638  return sums;
639 }
640 
641 // Set up JEM RoIs map
642 
644  const jeCollection,
645  JemRoiMap& roiMap) const
646 {
647  roiMap.clear();
648  if (jeCollection) {
649  JemRoiCollection::const_iterator pos = jeCollection->begin();
650  JemRoiCollection::const_iterator pose = jeCollection->end();
651  for (; pos != pose; ++pos) {
652  const LVL1::JEMTobRoI* const roi = *pos;
653  const uint32_t key = roi->roiWord();
654  roiMap.insert(std::make_pair(key, roi));
655  }
656  }
657 }
658 
659 // Set up CMX energy sums map
660 
662  const etCollection,
663  CmxSumsMap& cmxEtMap) const
664 {
665  cmxEtMap.clear();
666  if (etCollection) {
667  CmxSumsCollection::const_iterator pos = etCollection->begin();
668  CmxSumsCollection::const_iterator pose = etCollection->end();
669  for (; pos != pose; ++pos) {
670  const LVL1::CMXEtSums* const sums = *pos;
671  const int crate = sums->crate() - m_crateOffsetSw;
672  const int key = crate * 100 + sums->source();
673  cmxEtMap.insert(std::make_pair(key, sums));
674  }
675  }
676 }
677 
678 // Get energy subBlock types from CMXEtSums source type
679 
683  CmxEnergySubBlock::HitsType& hitType) const
684 {
685  switch (source) {
687  srcType = CmxEnergySubBlock::REMOTE;
688  sumType = CmxEnergySubBlock::STANDARD;
689  break;
691  srcType = CmxEnergySubBlock::REMOTE;
693  break;
695  srcType = CmxEnergySubBlock::LOCAL;
696  sumType = CmxEnergySubBlock::STANDARD;
697  break;
699  srcType = CmxEnergySubBlock::LOCAL;
701  break;
703  srcType = CmxEnergySubBlock::TOTAL;
704  sumType = CmxEnergySubBlock::STANDARD;
705  break;
707  srcType = CmxEnergySubBlock::TOTAL;
709  break;
711  hitType = CmxEnergySubBlock::SUM_ET;
712  sumType = CmxEnergySubBlock::STANDARD;
713  break;
715  hitType = CmxEnergySubBlock::SUM_ET;
717  break;
720  sumType = CmxEnergySubBlock::STANDARD;
721  break;
725  break;
728  sumType = CmxEnergySubBlock::STANDARD;
729  break;
730  default:
731  break;
732  }
733 }
734 
735 } // end namespace
eformat
Definition: L1CaloBsDecoderUtil.h:11
LVL1::JEPRoIBSCollectionV2::CmxRoi
const CMXRoI * CmxRoi() const
Return pointer to CMX RoIs.
Definition: JEPRoIBSCollectionV2.h:54
LVL1BS::JemRoiSubBlockV2::fillRoi
void fillRoi(LVL1::JEMTobRoI roi)
Store RoI.
Definition: JemRoiSubBlockV2.cxx:52
LVL1BS::CmxEnergySubBlock::STANDARD
@ STANDARD
Definition: CmxEnergySubBlock.h:30
LVL1BS::L1CaloSrcIdMap::minorVersionPreLS1
uint16_t minorVersionPreLS1() const
Return last ROD header minor version for pre-LS1 data.
Definition: L1CaloSrcIdMap.h:59
LVL1::CMXEtSums::Ey
unsigned int Ey() const
returns module Ey sum for peak sample
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:115
LVL1BS::L1CaloSrcIdMap::slink
int slink(uint32_t code) const
Return slink from unpacked moduleID.
Definition: L1CaloSrcIdMap.cxx:68
LVL1BS::CmxSubBlock::CMX_ENERGY
@ CMX_ENERGY
Definition: CmxSubBlock.h:25
et
Extra patterns decribing particle interation process.
LVL1BS::L1CaloUserHeader
L1Calo User Header class.
Definition: L1CaloUserHeader.h:20
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
LVL1BS::CmxEnergySubBlock::setEtHits
void setEtHits(int slice, HitsType hType, SumType sType, unsigned int map)
Store hits map for given hits type and sum type.
Definition: CmxEnergySubBlock.cxx:226
LVL1BS::JepRoiByteStreamV2Tool::setupJemRoiMap
void setupJemRoiMap(const JemRoiCollection *jeCollection, JemRoiMap &roiMap) const
Set up JEM RoIs map.
Definition: JepRoiByteStreamV2Tool.cxx:643
LVL1BS::JepRoiByteStreamV2Tool::m_dataFormat
int m_dataFormat
Property: Data compression format.
Definition: JepRoiByteStreamV2Tool.h:128
LVL1BS::L1CaloSubBlock::unpackErrorCode
int unpackErrorCode() const
Return the unpacking error code.
Definition: L1CaloSubBlock.h:343
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
LVL1BS::JepRoiByteStreamV2Tool::m_sourceIDsProp
std::vector< uint32_t > m_sourceIDsProp
Property: ROB source IDs.
Definition: JepRoiByteStreamV2Tool.h:144
FullEventAssembler
Template class for assembling a full atlas raw event from subfragments.
Definition: FullEventAssembler.h:40
LVL1BS::JepRoiByteStreamV2Tool::m_sourceIDsRoIBProp
std::vector< uint32_t > m_sourceIDsRoIBProp
Property: ROB source IDs for RoIB.
Definition: JepRoiByteStreamV2Tool.h:146
LVL1BS::JepRoiByteStreamV2Tool::RODPointer
OFFLINE_FRAGMENTS_NAMESPACE::PointerType RODPointer
Definition: JepRoiByteStreamV2Tool.h:91
LVL1::CMXEtSums::source
int source() const
returns data source
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:100
LVL1BS::JemRoiSubBlockV2::clear
void clear()
Clear all data.
Definition: JemRoiSubBlockV2.cxx:36
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
LVL1::JEPRoIBSCollectionV2::CmxSums
const DataVector< CMXEtSums > * CmxSums() const
Return pointer to CMX energy sums collection.
Definition: JEPRoIBSCollectionV2.h:59
LVL1::CMXEtSums::LOCAL_RESTRICTED
@ LOCAL_RESTRICTED
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:31
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
LVL1BS::L1CaloSubBlock::ERROR_DUPLICATE_ROB
@ ERROR_DUPLICATE_ROB
Definition: L1CaloSubBlock.h:31
LVL1BS::CmxEnergySubBlock::SourceType
SourceType
Definition: CmxEnergySubBlock.h:29
LVL1BS::CmxEnergySubBlock::ENERGY_ET
@ ENERGY_ET
Definition: CmxEnergySubBlock.h:27
L1CaloUserHeader.h
LVL1::CMXRoI
CMX RoI data.
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXRoI.h:22
LVL1BS::L1CaloUserHeader::header
uint32_t header() const
Return packed header.
Definition: L1CaloUserHeader.h:89
LVL1BS::JepRoiByteStreamV2Tool::m_crateMax
int m_crateMax
Property: Maximum crate number when writing out bytestream.
Definition: JepRoiByteStreamV2Tool.h:142
LVL1BS::JepRoiByteStreamV2Tool::~JepRoiByteStreamV2Tool
virtual ~JepRoiByteStreamV2Tool()
Definition: JepRoiByteStreamV2Tool.cxx:84
LVL1BS::JepRoiByteStreamV2Tool::m_byteStreamCnvSvc
ServiceHandle< ByteStreamCnvSvc > m_byteStreamCnvSvc
Definition: JepRoiByteStreamV2Tool.h:83
LVL1BS::JepRoiByteStreamV2Tool::m_errorTool
ToolHandle< LVL1BS::L1CaloErrorByteStreamTool > m_errorTool
Property: Error collection tool.
Definition: JepRoiByteStreamV2Tool.h:100
LVL1BS::L1CaloSubBlock::write
void write(FullEventAssembler< L1CaloSrcIdMap >::RODDATA *theROD) const
Output complete packed sub-block to ROD vector.
Definition: L1CaloSubBlock.cxx:165
LVL1::CMXEtSums::SUM_ET_RESTRICTED
@ SUM_ET_RESTRICTED
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:33
LVL1BS::JepRoiByteStreamV2Tool::finalize
virtual StatusCode finalize() override
Definition: JepRoiByteStreamV2Tool.cxx:103
LVL1BS::JemRoiSubBlockV2
Sub-Block class for JEM RoI data (neutral format) post-LS1.
Definition: JemRoiSubBlockV2.h:26
LVL1::JEMTobRoI::setRoiWord
bool setRoiWord(uint32_t roiWord)
Set RoI word with ID check.
Definition: JEMTobRoI.cxx:55
AthCommonMsg< AlgTool >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
LVL1::JEPRoIBSCollectionV2
Jet/Energy Processor RoI container for writing bytestream post-LS1.
Definition: JEPRoIBSCollectionV2.h:24
LVL1BS::L1CaloSrcIdMap::getRobID
uint32_t getRobID(uint32_t rod_id) const
Make a ROB Source ID from a ROD source ID.
Definition: L1CaloSrcIdMap.cxx:27
LVL1BS::JepRoiByteStreamV2Tool::JepRoiByteStreamV2Tool
JepRoiByteStreamV2Tool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: JepRoiByteStreamV2Tool.cxx:44
LVL1BS::CmxEnergySubBlock::MAX_SOURCE_TYPE
@ MAX_SOURCE_TYPE
Definition: CmxEnergySubBlock.h:29
LVL1BS::JepRoiByteStreamV2Tool::setupCmxEtMap
void setupCmxEtMap(const CmxSumsCollection *enCollection, CmxSumsMap &cmxEtMap) const
Set up CMX energy sums map.
Definition: JepRoiByteStreamV2Tool.cxx:661
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
JepRoiByteStreamV2Tool.h
LVL1::CMXEtSums::EyError
int EyError() const
returns module Ey sum error for peak sample
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:130
CMXEtSums.h
LVL1BS::JepRoiByteStreamV2Tool::m_subDetector
const eformat::SubDetector m_subDetector
Sub-detector type.
Definition: JepRoiByteStreamV2Tool.h:148
LVL1BS::CmxEnergySubBlock::SUM_ET
@ SUM_ET
Definition: CmxEnergySubBlock.h:28
LVL1BS::CmxEnergySubBlock::pack
bool pack()
Pack data.
Definition: CmxEnergySubBlock.cxx:245
LVL1BS::CmxSubBlock::LEFT
@ LEFT
Definition: CmxSubBlock.h:28
LVL1BS::CmxSubBlock::cmxBlock
static bool cmxBlock(uint32_t word)
Determine if header word corresponds to CMX.
Definition: CmxSubBlock.cxx:84
LVL1BS::L1CaloSubBlock::HEADER
@ HEADER
Definition: L1CaloSubBlock.h:27
LVL1BS::JepRoiByteStreamV2Tool::m_frames
const int m_frames
Number of RoI frames.
Definition: JepRoiByteStreamV2Tool.h:134
LVL1BS::CmxEnergySubBlock::MISSING_ET
@ MISSING_ET
Definition: CmxEnergySubBlock.h:28
LVL1::CMXEtSums::Et
unsigned int Et() const
For triggered time slice.
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:105
LVL1::JEMTobRoI::roiWord
uint32_t roiWord() const
Return packed RoI word.
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/JEMTobRoI.h:104
LVL1::CMXEtSums::REMOTE_RESTRICTED
@ REMOTE_RESTRICTED
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:30
python.PyAthena.module
module
Definition: PyAthena.py:134
LVL1BS::CmxEnergySubBlock::HitsType
HitsType
Definition: CmxEnergySubBlock.h:28
LVL1BS::L1CaloSubBlock::ERROR_ROD_ID
@ ERROR_ROD_ID
Definition: L1CaloSubBlock.h:31
LVL1BS::CmxEnergySubBlock::unpack
bool unpack()
Unpack data.
Definition: CmxEnergySubBlock.cxx:267
LVL1BS::L1CaloSubBlock::ERROR_CRATE_NUMBER
@ ERROR_CRATE_NUMBER
Definition: L1CaloSubBlock.h:34
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
perfmonmt-refit.slice
slice
Definition: perfmonmt-refit.py:52
lumiFormat.i
int i
Definition: lumiFormat.py:92
L1CaloSubBlock.h
LVL1BS::L1CaloSubBlock::ERROR_DUPLICATE_DATA
@ ERROR_DUPLICATE_DATA
Definition: L1CaloSubBlock.h:35
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
LVL1::CMXEtSums::TOTAL_RESTRICTED
@ TOTAL_RESTRICTED
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
python.sizes.location
string location
Definition: sizes.py:11
LVL1::CMXEtSums::Ex
unsigned int Ex() const
returns module Ex sum for peak sample
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:110
LVL1BS::JepRoiByteStreamV2Tool::m_crateMin
int m_crateMin
Property: Minimum crate number when writing out bytestream.
Definition: JepRoiByteStreamV2Tool.h:140
LVL1BS::L1CaloSrcIdMap::crate
int crate(uint32_t code) const
Return crate from unpacked moduleID.
Definition: L1CaloSrcIdMap.cxx:52
master.flag
bool flag
Definition: master.py:29
LVL1::CMXEtSums::SUM_ET_STANDARD
@ SUM_ET_STANDARD
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:33
LVL1::CMXEtSums::TOTAL_STANDARD
@ TOTAL_STANDARD
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:32
CmxSubBlock.h
LVL1BS::CmxEnergySubBlock::setSubsums
void setSubsums(int slice, int jem, unsigned int ex, unsigned int ey, unsigned int et, int exError, int eyError, int etError)
Store energy subsums and errors for given JEM.
Definition: CmxEnergySubBlock.cxx:142
test_pyathena.parent
parent
Definition: test_pyathena.py:15
LVL1BS::CmxSubBlock::SYSTEM
@ SYSTEM
Definition: CmxSubBlock.h:27
LVL1::CMXEtSums::ExError
int ExError() const
returns module Ex sum error for peak sample
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:125
JEMTobRoI.h
LVL1BS::JepRoiByteStreamV2Tool::m_maxRoiWords
const int m_maxRoiWords
Number of CMX energy RoI words.
Definition: JepRoiByteStreamV2Tool.h:136
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
LVL1BS::L1CaloUserHeader::setVersion
void setVersion(int minorVersion)
Set version flag.
Definition: L1CaloUserHeader.h:176
IROBDataProviderSvc::VROBFRAG
std::vector< const ROBF * > VROBFRAG
Definition: IROBDataProviderSvc.h:29
LVL1BS::JemRoiSubBlockV2::roi
LVL1::JEMTobRoI roi(int frame) const
Return RoI for given frame.
Definition: JemRoiSubBlockV2.cxx:64
LVL1BS::L1CaloSubBlock::ERROR_NONE
@ ERROR_NONE
Definition: L1CaloSubBlock.h:31
DataVector< LVL1::JEMTobRoI >
LVL1BS::L1CaloSubBlock::wordType
static SubBlockWordType wordType(uint32_t word)
Word identification.
Definition: L1CaloSubBlock.cxx:479
FullEventAssembler.h
LVL1BS::JepRoiByteStreamV2Tool::m_modules
const int m_modules
Number of JEM modules per crate.
Definition: JepRoiByteStreamV2Tool.h:132
LVL1BS::L1CaloSubBlock::unpackErrorMsg
std::string unpackErrorMsg() const
Return the unpacking error message for printing.
Definition: L1CaloSubBlock.cxx:228
LVL1::JEMTobRoI::energySmall
int energySmall() const
Return energy small window size.
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/JEMTobRoI.h:99
CMXRoI.h
LVL1::JEMTobRoI
JEM RoI data.
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/JEMTobRoI.h:19
LVL1::CMXEtSums::MISSING_ET_SIG_STANDARD
@ MISSING_ET_SIG_STANDARD
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:35
LVL1BS::L1CaloSrcIdMap::minorVersion
uint16_t minorVersion() const
Return ROD header minor version to use when writing BS.
Definition: L1CaloSrcIdMap.h:56
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
debug
const bool debug
Definition: MakeUncertaintyPlots.cxx:53
LVL1::CMXEtSums::LOCAL_STANDARD
@ LOCAL_STANDARD
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:31
LVL1BS::JepRoiByteStreamV2Tool::m_crates
const int m_crates
Number of crates.
Definition: JepRoiByteStreamV2Tool.h:130
LVL1::JEPRoIBSCollectionV2::JemRoi
const DataVector< JEMTobRoI > * JemRoi() const
Return pointer to JEM RoI collection.
Definition: JEPRoIBSCollectionV2.h:49
L1CaloErrorByteStreamTool.h
LVL1BS::CmxEnergySubBlock::REMOTE
@ REMOTE
Definition: CmxEnergySubBlock.h:29
LVL1BS::L1CaloSubBlock::dataWords
int dataWords() const
Return number of data words.
Definition: L1CaloSubBlock.h:233
LVL1BS::JepRoiByteStreamV2Tool::energySubBlockTypes
void energySubBlockTypes(int source, CmxEnergySubBlock::SourceType &srcType, CmxEnergySubBlock::SumType &sumType, CmxEnergySubBlock::HitsType &hitType) const
Get energy subBlock types from CMXEtSums source type.
Definition: JepRoiByteStreamV2Tool.cxx:680
LVL1BS::JepRoiByteStreamV2Tool::m_crateOffsetHw
int m_crateOffsetHw
Property: Hardware crate number offset.
Definition: JepRoiByteStreamV2Tool.h:122
LVL1BS::JepRoiByteStreamV2Tool::ROBPointer
OFFLINE_FRAGMENTS_NAMESPACE::PointerType ROBPointer
Definition: JepRoiByteStreamV2Tool.h:90
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
LVL1::CMXEtSums
CMXEtSums object stores Et sums from the Energy CMXs.
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:27
LVL1BS::CmxEnergySubBlock::ENERGY_EX
@ ENERGY_EX
Definition: CmxEnergySubBlock.h:27
LVL1BS::JepRoiByteStreamV2Tool::m_crateOffsetSw
int m_crateOffsetSw
Property: Software crate number offset.
Definition: JepRoiByteStreamV2Tool.h:124
LVL1BS::L1CaloUserHeader::words
int words() const
Return number of header words (should be one)
Definition: L1CaloUserHeader.h:94
PixelModuleFeMask_create_db.payload
string payload
Definition: PixelModuleFeMask_create_db.py:69
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
LVL1BS::CmxSubBlock::cmxType
static CmxFirmwareCode cmxType(uint32_t word)
CMX differentiation (CMX_CP, CMX_JET, or CMX_ENERGY)
Definition: CmxSubBlock.cxx:60
LVL1BS::JepRoiByteStreamV2Tool::initialize
virtual StatusCode initialize() override
Definition: JepRoiByteStreamV2Tool.cxx:91
LVL1BS::JepRoiByteStreamV2Tool::sourceIDs
const std::vector< uint32_t > & sourceIDs(const std::string &sgKey) const
Return reference to vector with all possible Source Identifiers.
Definition: JepRoiByteStreamV2Tool.cxx:361
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
LVL1BS::L1CaloSrcIdMap::subDet
eformat::SubDetector subDet(uint32_t code) const
Return sub-detector for given ID.
Definition: L1CaloSrcIdMap.cxx:84
JemRoiSubBlockV2.h
LVL1BS::CmxSubBlock::setCmxHeader
void setCmxHeader(int version, int format, int slice, int crate, int summing, int firmware, int position, int timeslices)
Store CMX header.
Definition: CmxSubBlock.cxx:33
LVL1BS::JepRoiByteStreamV2Tool::convert
StatusCode convert(const std::string &name, DataVector< LVL1::JEMTobRoI > *jeCollection) const
Convert ROB fragments to JEM RoIs.
Definition: JepRoiByteStreamV2Tool.cxx:110
LVL1::CMXRoI::setRoiWord
bool setRoiWord(uint32_t roiWord)
Set RoI word with ID check.
Definition: CMXRoI.cxx:115
LVL1BS::CmxEnergySubBlock::RESTRICTED_WEIGHTED
@ RESTRICTED_WEIGHTED
Definition: CmxEnergySubBlock.h:30
LVL1BS::CmxEnergySubBlock::SumType
SumType
Definition: CmxEnergySubBlock.h:30
LVL1::CMXEtSums::EtError
int EtError() const
returns module ET sum error for peak sample
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:120
LVL1BS::CmxEnergySubBlock::ENERGY_EY
@ ENERGY_EY
Definition: CmxEnergySubBlock.h:27
FullEventAssembler::setRodMinorVersion
void setRodMinorVersion(uint16_t m)
change the ROD minor version
LVL1BS::CmxEnergySubBlock::MISSING_ET_SIG
@ MISSING_ET_SIG
Definition: CmxEnergySubBlock.h:28
LVL1BS::JepRoiByteStreamV2Tool::JemRoiMap
std::map< uint32_t, const LVL1::JEMTobRoI * > JemRoiMap
Definition: JepRoiByteStreamV2Tool.h:87
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
JEPRoIBSCollectionV2.h
DEBUG
#define DEBUG
Definition: page_access.h:11
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
LVL1BS::JepRoiByteStreamV2Tool::findCmxSums
const LVL1::CMXEtSums * findCmxSums(int crate, int source, const CmxSumsMap &cmxEtMap) const
Find CMX energy sums for given crate, source.
Definition: JepRoiByteStreamV2Tool.cxx:630
LVL1BS
Definition: ZdcByteStreamReadV1V2Tool.h:47
LVL1::JEMTobRoI::jem
int jem() const
Return JEM number (0-15)
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/JEMTobRoI.h:79
LVL1BS::CmxEnergySubBlock::energy
unsigned int energy(int slice, int jem, EnergyType eType) const
Return energy subsum for given JEM and energy type.
Definition: CmxEnergySubBlock.cxx:65
LVL1BS::CmxEnergySubBlock::MAX_SUM_TYPE
@ MAX_SUM_TYPE
Definition: CmxEnergySubBlock.h:30
LVL1BS::CmxEnergySubBlock::hits
unsigned int hits(int slice, HitsType hType, SumType sType) const
Return hits map for given hits type and sum type.
Definition: CmxEnergySubBlock.cxx:127
LVL1::CMXEtSums::MISSING_ET_RESTRICTED
@ MISSING_ET_RESTRICTED
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:34
LVL1BS::JepRoiByteStreamV2Tool::m_slinks
int m_slinks
Property: Number of slinks per crate when writing out bytestream.
Definition: JepRoiByteStreamV2Tool.h:138
LVL1::JEMTobRoI::energyLarge
int energyLarge() const
Return energy large window size.
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/JEMTobRoI.h:94
LVL1BS::L1CaloSrcIdMap::getRodID
uint32_t getRodID(int crate, int slink, int daqOrRoi, eformat::SubDetector subdet) const
Make a ROD Source ID.
Definition: L1CaloSrcIdMap.cxx:16
LVL1BS::JepRoiByteStreamV2Tool::ROBIterator
IROBDataProviderSvc::VROBFRAG::const_iterator ROBIterator
Definition: JepRoiByteStreamV2Tool.h:89
LVL1BS::JepRoiByteStreamV2Tool::m_version
int m_version
Property: Sub_block header version.
Definition: JepRoiByteStreamV2Tool.h:126
LVL1BS::L1CaloSubBlock::ERROR_ROI_TYPE
@ ERROR_ROI_TYPE
Definition: L1CaloSubBlock.h:36
L1CaloSrcIdMap.h
LVL1::CMXEtSums::crate
int crate() const
Data accessors.
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:95
LVL1::CMXEtSums::MAX_SOURCE
@ MAX_SOURCE
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:35
LVL1BS::JepRoiByteStreamV2Tool::makeSourceIDs
std::vector< uint32_t > makeSourceIDs(bool roiDaq) const
Definition: JepRoiByteStreamV2Tool.cxx:327
FullEventAssembler::RODDATA
std::vector< uint32_t > RODDATA
ROD data as a vector of unsigned int.
Definition: FullEventAssembler.h:54
LVL1::JEMTobRoI::crate
int crate() const
Return crate number (0-1)
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/JEMTobRoI.h:74
LVL1BS::JemRoiSubBlockV2::setRoiHeader
void setRoiHeader(int version, int crate, int module)
Store header.
Definition: JemRoiSubBlockV2.cxx:44
AthAlgTool
Definition: AthAlgTool.h:26
LVL1BS::L1CaloSrcIdMap::maxSlinks
int maxSlinks() const
Return the maximum possible number of slinks.
Definition: L1CaloSrcIdMap.cxx:77
LVL1BS::CmxEnergySubBlock::MAX_HITS_TYPE
@ MAX_HITS_TYPE
Definition: CmxEnergySubBlock.h:28
LVL1BS::JepRoiByteStreamV2Tool::m_robDataProvider
ServiceHandle< IROBDataProviderSvc > m_robDataProvider
Definition: JepRoiByteStreamV2Tool.h:98
LVL1BS::CmxEnergySubBlock
Sub-Block class for CMX-Energy data post LS1.
Definition: CmxEnergySubBlock.h:23
LVL1BS::JepRoiByteStreamV2Tool::interfaceID
static const InterfaceID & interfaceID()
AlgTool InterfaceID.
Definition: JepRoiByteStreamV2Tool.cxx:37
LVL1BS::L1CaloUserHeader::isValid
static bool isValid(uint32_t word)
Test for valid header word.
Definition: L1CaloUserHeader.cxx:36
LVL1::CMXRoI::roiWord
uint32_t roiWord(int word) const
Return packed Energy RoI word (0-5)
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXRoI.h:149
LVL1BS::JepRoiByteStreamV2Tool::CmxSumsMap
std::map< int, const LVL1::CMXEtSums * > CmxSumsMap
Definition: JepRoiByteStreamV2Tool.h:88
LVL1BS::CmxEnergySubBlock::LOCAL
@ LOCAL
Definition: CmxEnergySubBlock.h:29
LVL1BS::L1CaloSrcIdMap::daqOrRoi
int daqOrRoi(uint32_t code) const
Return daqOrRoi from unpacked moduleID.
Definition: L1CaloSrcIdMap.cxx:60
LVL1BS::CmxEnergySubBlock::error
int error(int slice, int jem, EnergyType eType) const
Return energy subsum error for given JEM and energy type.
Definition: CmxEnergySubBlock.cxx:79
LVL1BS::L1CaloSubBlock::ERROR_USER_HEADER
@ ERROR_USER_HEADER
Definition: L1CaloSubBlock.h:32
LVL1BS::JepRoiByteStreamV2Tool::m_srcIdMap
const L1CaloSrcIdMap m_srcIdMap
Source ID converter.
Definition: JepRoiByteStreamV2Tool.h:150
FullEventAssembler::getRodData
RODDATA * getRodData(uint32_t id)
get a block of ROD data
LVL1::CMXEtSums::MISSING_ET_STANDARD
@ MISSING_ET_STANDARD
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:34
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
LVL1BS::JepRoiByteStreamV2Tool::convertBs
StatusCode convertBs(const IROBDataProviderSvc::VROBFRAG &robFrags, DataVector< LVL1::JEMTobRoI > *jeCollection, LVL1::CMXRoI *cmCollection) const
Convert bytestream to given container type.
Definition: JepRoiByteStreamV2Tool.cxx:381
LVL1BS::JemRoiSubBlockV2::pack
bool pack()
Pack data.
Definition: JemRoiSubBlockV2.cxx:73
LVL1BS::JemRoiSubBlockV2::unpack
bool unpack()
Unpack data.
Definition: JemRoiSubBlockV2.cxx:92
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
LVL1BS::CmxEnergySubBlock::TOTAL
@ TOTAL
Definition: CmxEnergySubBlock.h:29
LVL1::CMXEtSums::REMOTE_STANDARD
@ REMOTE_STANDARD
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:30