ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
LVL1BS::JepRoiByteStreamV2Tool Class Reference

Tool to perform ROB fragments to JEM RoI and CMX RoI, and JEP RoI container to raw data conversions. More...

#include <JepRoiByteStreamV2Tool.h>

Inheritance diagram for LVL1BS::JepRoiByteStreamV2Tool:
Collaboration diagram for LVL1BS::JepRoiByteStreamV2Tool:

Public Member Functions

 JepRoiByteStreamV2Tool (const std::string &type, const std::string &name, const IInterface *parent)
 
virtual ~JepRoiByteStreamV2Tool ()
 
virtual StatusCode initialize () override
 
virtual StatusCode finalize () override
 
StatusCode convert (const std::string &name, DataVector< LVL1::JEMTobRoI > *jeCollection) const
 Convert ROB fragments to JEM RoIs. More...
 
StatusCode convert (const IROBDataProviderSvc::VROBFRAG &robFrags, DataVector< LVL1::JEMTobRoI > *jeCollection) const
 
StatusCode convert (const std::string &name, LVL1::CMXRoI *cmCollection) const
 Convert ROB fragments to CMX RoIs. More...
 
StatusCode convert (const IROBDataProviderSvc::VROBFRAG &robFrags, LVL1::CMXRoI *cmCollection) const
 
StatusCode convert (const LVL1::JEPRoIBSCollectionV2 *jep) const
 Convert JEP RoI Container to bytestream. More...
 
const std::vector< uint32_t > & sourceIDs (const std::string &sgKey) const
 Return reference to vector with all possible Source Identifiers. More...
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 AlgTool InterfaceID. More...
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

typedef DataVector< LVL1::JEMTobRoIJemRoiCollection
 
typedef DataVector< LVL1::CMXEtSumsCmxSumsCollection
 
typedef std::map< uint32_t, const LVL1::JEMTobRoI * > JemRoiMap
 
typedef std::map< int, const LVL1::CMXEtSums * > CmxSumsMap
 
typedef IROBDataProviderSvc::VROBFRAG::const_iterator ROBIterator
 
typedef OFFLINE_FRAGMENTS_NAMESPACE::PointerType ROBPointer
 
typedef OFFLINE_FRAGMENTS_NAMESPACE::PointerType RODPointer
 
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

StatusCode convertBs (const IROBDataProviderSvc::VROBFRAG &robFrags, DataVector< LVL1::JEMTobRoI > *jeCollection, LVL1::CMXRoI *cmCollection) const
 Convert bytestream to given container type. More...
 
const LVL1::CMXEtSumsfindCmxSums (int crate, int source, const CmxSumsMap &cmxEtMap) const
 Find CMX energy sums for given crate, source. More...
 
std::vector< uint32_t > makeSourceIDs (bool roiDaq) const
 
void setupJemRoiMap (const JemRoiCollection *jeCollection, JemRoiMap &roiMap) const
 Set up JEM RoIs map. More...
 
void setupCmxEtMap (const CmxSumsCollection *enCollection, CmxSumsMap &cmxEtMap) const
 Set up CMX energy sums map. More...
 
void energySubBlockTypes (int source, CmxEnergySubBlock::SourceType &srcType, CmxEnergySubBlock::SumType &sumType, CmxEnergySubBlock::HitsType &hitType) const
 Get energy subBlock types from CMXEtSums source type. More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

ServiceHandle< IByteStreamCnvSvcm_byteStreamCnvSvc { this, "ByteStreamCnvSvc", "ByteStreamCnvSvc" }
 
ServiceHandle< IROBDataProviderSvcm_robDataProvider
 
ToolHandle< LVL1BS::L1CaloErrorByteStreamToolm_errorTool
 Property: Error collection tool. More...
 
int m_crateOffsetHw
 Property: Hardware crate number offset. More...
 
int m_crateOffsetSw
 Property: Software crate number offset. More...
 
int m_version
 Property: Sub_block header version. More...
 
int m_dataFormat
 Property: Data compression format. More...
 
const int m_crates
 Number of crates. More...
 
const int m_modules
 Number of JEM modules per crate. More...
 
const int m_frames
 Number of RoI frames. More...
 
const int m_maxRoiWords
 Number of CMX energy RoI words. More...
 
int m_slinks
 Property: Number of slinks per crate when writing out bytestream. More...
 
int m_crateMin
 Property: Minimum crate number when writing out bytestream. More...
 
int m_crateMax
 Property: Maximum crate number when writing out bytestream. More...
 
std::vector< uint32_t > m_sourceIDsProp
 Property: ROB source IDs. More...
 
std::vector< uint32_t > m_sourceIDsRoIBProp
 Property: ROB source IDs for RoIB. More...
 
const eformat::SubDetector m_subDetector
 Sub-detector type. More...
 
const L1CaloSrcIdMap m_srcIdMap
 Source ID converter. More...
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Tool to perform ROB fragments to JEM RoI and CMX RoI, and JEP RoI container to raw data conversions.

Based on ROD document version X_xxx. <<== CHECK

Author
Peter Faulkner

Definition at line 50 of file JepRoiByteStreamV2Tool.h.

Member Typedef Documentation

◆ CmxSumsCollection

Definition at line 86 of file JepRoiByteStreamV2Tool.h.

◆ CmxSumsMap

Definition at line 88 of file JepRoiByteStreamV2Tool.h.

◆ JemRoiCollection

Definition at line 85 of file JepRoiByteStreamV2Tool.h.

◆ JemRoiMap

typedef std::map<uint32_t, const LVL1::JEMTobRoI*> LVL1BS::JepRoiByteStreamV2Tool::JemRoiMap
private

Definition at line 87 of file JepRoiByteStreamV2Tool.h.

◆ ROBIterator

typedef IROBDataProviderSvc::VROBFRAG::const_iterator LVL1BS::JepRoiByteStreamV2Tool::ROBIterator
private

Definition at line 89 of file JepRoiByteStreamV2Tool.h.

◆ ROBPointer

Definition at line 90 of file JepRoiByteStreamV2Tool.h.

◆ RODPointer

Definition at line 91 of file JepRoiByteStreamV2Tool.h.

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ JepRoiByteStreamV2Tool()

LVL1BS::JepRoiByteStreamV2Tool::JepRoiByteStreamV2Tool ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 44 of file JepRoiByteStreamV2Tool.cxx.

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 }

◆ ~JepRoiByteStreamV2Tool()

LVL1BS::JepRoiByteStreamV2Tool::~JepRoiByteStreamV2Tool ( )
virtual

Definition at line 84 of file JepRoiByteStreamV2Tool.cxx.

85 {
86 }

Member Function Documentation

◆ convert() [1/5]

StatusCode LVL1BS::JepRoiByteStreamV2Tool::convert ( const IROBDataProviderSvc::VROBFRAG robFrags,
DataVector< LVL1::JEMTobRoI > *  jeCollection 
) const

Definition at line 122 of file JepRoiByteStreamV2Tool.cxx.

125 {
126  return convertBs(robFrags, jeCollection, nullptr);
127 }

◆ convert() [2/5]

StatusCode LVL1BS::JepRoiByteStreamV2Tool::convert ( const IROBDataProviderSvc::VROBFRAG robFrags,
LVL1::CMXRoI cmCollection 
) const

Definition at line 143 of file JepRoiByteStreamV2Tool.cxx.

146 {
147  return convertBs(robFrags, nullptr, cmCollection);
148 }

◆ convert() [3/5]

StatusCode LVL1BS::JepRoiByteStreamV2Tool::convert ( const LVL1::JEPRoIBSCollectionV2 jep) const

Convert JEP RoI Container to bytestream.

Definition at line 152 of file JepRoiByteStreamV2Tool.cxx.

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 }

◆ convert() [4/5]

StatusCode LVL1BS::JepRoiByteStreamV2Tool::convert ( const std::string &  name,
DataVector< LVL1::JEMTobRoI > *  jeCollection 
) const

Convert ROB fragments to JEM RoIs.

Definition at line 110 of file JepRoiByteStreamV2Tool.cxx.

113 {
114  const std::vector<uint32_t>& vID(sourceIDs(sgKey));
115  // // get ROB fragments
117  m_robDataProvider->getROBData(Gaudi::Hive::currentContext(), vID, robFrags, "JepRoiByteStreamV2Tool");
118  ATH_MSG_DEBUG("Number of ROB fragments:" << robFrags.size());
119  return convert(robFrags, collection);
120 }

◆ convert() [5/5]

StatusCode LVL1BS::JepRoiByteStreamV2Tool::convert ( const std::string &  name,
LVL1::CMXRoI cmCollection 
) const

Convert ROB fragments to CMX RoIs.

Definition at line 131 of file JepRoiByteStreamV2Tool.cxx.

134 {
135  const std::vector<uint32_t>& vID(sourceIDs(sgKey));
136  // // get ROB fragments
138  m_robDataProvider->getROBData(Gaudi::Hive::currentContext(), vID, robFrags, "JepRoiByteStreamV2Tool");
139  ATH_MSG_DEBUG("Number of ROB fragments:" << robFrags.size());
140  return convert(robFrags, cmCollection);
141 }

◆ convertBs()

StatusCode LVL1BS::JepRoiByteStreamV2Tool::convertBs ( const IROBDataProviderSvc::VROBFRAG robFrags,
DataVector< LVL1::JEMTobRoI > *  jeCollection,
LVL1::CMXRoI cmCollection 
) const
private

Convert bytestream to given container type.

Definition at line 381 of file JepRoiByteStreamV2Tool.cxx.

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(
502  subBlock.energy(slice, CmxEnergySubBlock::TOTAL,
505  subBlock.energy(slice, CmxEnergySubBlock::TOTAL,
508  subBlock.energy(slice, CmxEnergySubBlock::TOTAL,
511  subBlock.error(slice, CmxEnergySubBlock::TOTAL,
514  subBlock.error(slice, CmxEnergySubBlock::TOTAL,
517  subBlock.error(slice, CmxEnergySubBlock::TOTAL,
520  subBlock.hits(slice, CmxEnergySubBlock::SUM_ET,
522  subBlock.hits(slice, CmxEnergySubBlock::MISSING_ET,
526  subBlock.energy(slice, CmxEnergySubBlock::TOTAL,
529  subBlock.energy(slice, CmxEnergySubBlock::TOTAL,
532  subBlock.energy(slice, CmxEnergySubBlock::TOTAL,
535  subBlock.error(slice, CmxEnergySubBlock::TOTAL,
538  subBlock.error(slice, CmxEnergySubBlock::TOTAL,
541  subBlock.error(slice, CmxEnergySubBlock::TOTAL,
544  subBlock.hits(slice, CmxEnergySubBlock::SUM_ET,
546  subBlock.hits(slice, CmxEnergySubBlock::MISSING_ET,
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 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ energySubBlockTypes()

void LVL1BS::JepRoiByteStreamV2Tool::energySubBlockTypes ( int  source,
CmxEnergySubBlock::SourceType srcType,
CmxEnergySubBlock::SumType sumType,
CmxEnergySubBlock::HitsType hitType 
) const
private

Get energy subBlock types from CMXEtSums source type.

Definition at line 680 of file JepRoiByteStreamV2Tool.cxx.

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 }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ finalize()

StatusCode LVL1BS::JepRoiByteStreamV2Tool::finalize ( )
overridevirtual

Definition at line 103 of file JepRoiByteStreamV2Tool.cxx.

104 {
105  return StatusCode::SUCCESS;
106 }

◆ findCmxSums()

const LVL1::CMXEtSums * LVL1BS::JepRoiByteStreamV2Tool::findCmxSums ( int  crate,
int  source,
const CmxSumsMap cmxEtMap 
) const
private

Find CMX energy sums for given crate, source.

Definition at line 630 of file JepRoiByteStreamV2Tool.cxx.

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 }

◆ initialize()

StatusCode LVL1BS::JepRoiByteStreamV2Tool::initialize ( )
overridevirtual

Definition at line 91 of file JepRoiByteStreamV2Tool.cxx.

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 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ interfaceID()

const InterfaceID & LVL1BS::JepRoiByteStreamV2Tool::interfaceID ( )
static

AlgTool InterfaceID.

Definition at line 37 of file JepRoiByteStreamV2Tool.cxx.

38 {
39  return IID_IJepRoiByteStreamV2Tool;
40 }

◆ makeSourceIDs()

std::vector< uint32_t > LVL1BS::JepRoiByteStreamV2Tool::makeSourceIDs ( bool  roiDaq) const
private

Definition at line 327 of file JepRoiByteStreamV2Tool.cxx.

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 }

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ setupCmxEtMap()

void LVL1BS::JepRoiByteStreamV2Tool::setupCmxEtMap ( const CmxSumsCollection enCollection,
CmxSumsMap cmxEtMap 
) const
private

Set up CMX energy sums map.

Definition at line 661 of file JepRoiByteStreamV2Tool.cxx.

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 }

◆ setupJemRoiMap()

void LVL1BS::JepRoiByteStreamV2Tool::setupJemRoiMap ( const JemRoiCollection jeCollection,
JemRoiMap roiMap 
) const
private

Set up JEM RoIs map.

Definition at line 643 of file JepRoiByteStreamV2Tool.cxx.

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 }

◆ sourceIDs()

const std::vector< uint32_t > & LVL1BS::JepRoiByteStreamV2Tool::sourceIDs ( const std::string &  sgKey) const

Return reference to vector with all possible Source Identifiers.

Definition at line 361 of file JepRoiByteStreamV2Tool.cxx.

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 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_byteStreamCnvSvc

ServiceHandle<IByteStreamCnvSvc> LVL1BS::JepRoiByteStreamV2Tool::m_byteStreamCnvSvc { this, "ByteStreamCnvSvc", "ByteStreamCnvSvc" }
private

Definition at line 82 of file JepRoiByteStreamV2Tool.h.

◆ m_crateMax

int LVL1BS::JepRoiByteStreamV2Tool::m_crateMax
private

Property: Maximum crate number when writing out bytestream.

Definition at line 142 of file JepRoiByteStreamV2Tool.h.

◆ m_crateMin

int LVL1BS::JepRoiByteStreamV2Tool::m_crateMin
private

Property: Minimum crate number when writing out bytestream.

Definition at line 140 of file JepRoiByteStreamV2Tool.h.

◆ m_crateOffsetHw

int LVL1BS::JepRoiByteStreamV2Tool::m_crateOffsetHw
private

Property: Hardware crate number offset.

Definition at line 122 of file JepRoiByteStreamV2Tool.h.

◆ m_crateOffsetSw

int LVL1BS::JepRoiByteStreamV2Tool::m_crateOffsetSw
private

Property: Software crate number offset.

Definition at line 124 of file JepRoiByteStreamV2Tool.h.

◆ m_crates

const int LVL1BS::JepRoiByteStreamV2Tool::m_crates
private

Number of crates.

Definition at line 130 of file JepRoiByteStreamV2Tool.h.

◆ m_dataFormat

int LVL1BS::JepRoiByteStreamV2Tool::m_dataFormat
private

Property: Data compression format.

Definition at line 128 of file JepRoiByteStreamV2Tool.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_errorTool

ToolHandle<LVL1BS::L1CaloErrorByteStreamTool> LVL1BS::JepRoiByteStreamV2Tool::m_errorTool
private

Property: Error collection tool.

Definition at line 100 of file JepRoiByteStreamV2Tool.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_frames

const int LVL1BS::JepRoiByteStreamV2Tool::m_frames
private

Number of RoI frames.

Definition at line 134 of file JepRoiByteStreamV2Tool.h.

◆ m_maxRoiWords

const int LVL1BS::JepRoiByteStreamV2Tool::m_maxRoiWords
private

Number of CMX energy RoI words.

Definition at line 136 of file JepRoiByteStreamV2Tool.h.

◆ m_modules

const int LVL1BS::JepRoiByteStreamV2Tool::m_modules
private

Number of JEM modules per crate.

Definition at line 132 of file JepRoiByteStreamV2Tool.h.

◆ m_robDataProvider

ServiceHandle<IROBDataProviderSvc> LVL1BS::JepRoiByteStreamV2Tool::m_robDataProvider
private

Definition at line 98 of file JepRoiByteStreamV2Tool.h.

◆ m_slinks

int LVL1BS::JepRoiByteStreamV2Tool::m_slinks
private

Property: Number of slinks per crate when writing out bytestream.

Definition at line 138 of file JepRoiByteStreamV2Tool.h.

◆ m_sourceIDsProp

std::vector<uint32_t> LVL1BS::JepRoiByteStreamV2Tool::m_sourceIDsProp
private

Property: ROB source IDs.

Definition at line 144 of file JepRoiByteStreamV2Tool.h.

◆ m_sourceIDsRoIBProp

std::vector<uint32_t> LVL1BS::JepRoiByteStreamV2Tool::m_sourceIDsRoIBProp
private

Property: ROB source IDs for RoIB.

Definition at line 146 of file JepRoiByteStreamV2Tool.h.

◆ m_srcIdMap

const L1CaloSrcIdMap LVL1BS::JepRoiByteStreamV2Tool::m_srcIdMap
private

Source ID converter.

Definition at line 150 of file JepRoiByteStreamV2Tool.h.

◆ m_subDetector

const eformat::SubDetector LVL1BS::JepRoiByteStreamV2Tool::m_subDetector
private

Sub-detector type.

Definition at line 148 of file JepRoiByteStreamV2Tool.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_version

int LVL1BS::JepRoiByteStreamV2Tool::m_version
private

Property: Sub_block header version.

Definition at line 126 of file JepRoiByteStreamV2Tool.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
LVL1::JEPRoIBSCollectionV2::CmxRoi
const CMXRoI * CmxRoi() const
Return pointer to CMX RoIs.
Definition: JEPRoIBSCollectionV2.h:54
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:64
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:73
LVL1BS::CmxSubBlock::CMX_ENERGY
@ CMX_ENERGY
Definition: CmxSubBlock.h:25
et
Extra patterns decribing particle interation process.
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
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
DataVector< LVL1::CMXEtSums >::const_iterator
DataModel_detail::const_iterator< DataVector > const_iterator
Standard const_iterator.
Definition: DataVector.h:837
LVL1::CMXEtSums::source
int source() const
returns data source
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:100
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
LVL1::CMXRoI
CMX RoI data.
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXRoI.h:22
LVL1BS::JepRoiByteStreamV2Tool::m_crateMax
int m_crateMax
Property: Maximum crate number when writing out bytestream.
Definition: JepRoiByteStreamV2Tool.h:142
LVL1BS::JepRoiByteStreamV2Tool::m_errorTool
ToolHandle< LVL1BS::L1CaloErrorByteStreamTool > m_errorTool
Property: Error collection tool.
Definition: JepRoiByteStreamV2Tool.h:100
LVL1::CMXEtSums::SUM_ET_RESTRICTED
@ SUM_ET_RESTRICTED
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:33
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
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
LVL1BS::L1CaloSrcIdMap::getRobID
uint32_t getRobID(uint32_t rod_id) const
Make a ROB Source ID from a ROD source ID.
Definition: L1CaloSrcIdMap.cxx:32
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::NEUTRAL
@ NEUTRAL
Definition: L1CaloSubBlock.h:28
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
LVL1::CMXEtSums::EyError
int EyError() const
returns module Ey sum error for peak sample
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMXEtSums.h:130
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::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
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
LVL1BS::JepRoiByteStreamV2Tool::m_frames
const int m_frames
Number of RoI frames.
Definition: JepRoiByteStreamV2Tool.h:134
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:27
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:131
LVL1BS::CmxEnergySubBlock::HitsType
HitsType
Definition: CmxEnergySubBlock.h:28
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
LVL1BS::L1CaloSubBlock::ERROR_ROD_ID
@ ERROR_ROD_ID
Definition: L1CaloSubBlock.h:31
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
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:85
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
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
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:57
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
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
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
IROBDataProviderSvc::VROBFRAG
std::vector< const ROBF * > VROBFRAG
Definition: IROBDataProviderSvc.h:27
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
LVL1BS::L1CaloSubBlock::ERROR_NONE
@ ERROR_NONE
Definition: L1CaloSubBlock.h:31
LVL1BS::L1CaloSubBlock::wordType
static SubBlockWordType wordType(uint32_t word)
Word identification.
Definition: L1CaloSubBlock.cxx:479
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
LVL1BS::JepRoiByteStreamV2Tool::m_modules
const int m_modules
Number of JEM modules per crate.
Definition: JepRoiByteStreamV2Tool.h:132
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
LVL1::JEMTobRoI::energySmall
int energySmall() const
Return energy small window size.
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/JEMTobRoI.h:99
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:61
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
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
LVL1BS::CmxEnergySubBlock::REMOTE
@ REMOTE
Definition: CmxEnergySubBlock.h:29
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
PixelModuleFeMask_create_db.payload
string payload
Definition: PixelModuleFeMask_create_db.py:69
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
LVL1BS::JepRoiByteStreamV2Tool::m_byteStreamCnvSvc
ServiceHandle< IByteStreamCnvSvc > m_byteStreamCnvSvc
Definition: JepRoiByteStreamV2Tool.h:83
LVL1BS::CmxSubBlock::cmxType
static CmxFirmwareCode cmxType(uint32_t word)
CMX differentiation (CMX_CP, CMX_JET, or CMX_ENERGY)
Definition: CmxSubBlock.cxx:60
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
LVL1BS::L1CaloSrcIdMap::subDet
eformat::SubDetector subDet(uint32_t code) const
Return sub-detector for given ID.
Definition: L1CaloSrcIdMap.cxx:89
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
a
TList * a
Definition: liststreamerinfos.cxx:10
LVL1BS::CmxEnergySubBlock::SumType
SumType
Definition: CmxEnergySubBlock.h:30
h
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
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
LVL1::JEMTobRoI::jem
int jem() const
Return JEM number (0-15)
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/JEMTobRoI.h:79
LVL1BS::CmxEnergySubBlock::MAX_SUM_TYPE
@ MAX_SUM_TYPE
Definition: CmxEnergySubBlock.h:30
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
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:18
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
copySelective.source
string source
Definition: copySelective.py:32
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
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
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::L1CaloSrcIdMap::maxSlinks
int maxSlinks() const
Return the maximum possible number of slinks.
Definition: L1CaloSrcIdMap.cxx:82
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::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:65
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
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
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
fitman.k
k
Definition: fitman.py:528
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