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::CpmRoiByteStreamV1Tool Class Reference

Tool to perform ROB fragments to CPM RoI and CPM RoI to raw data conversions. More...

#include <CpmRoiByteStreamV1Tool.h>

Inheritance diagram for LVL1BS::CpmRoiByteStreamV1Tool:
Collaboration diagram for LVL1BS::CpmRoiByteStreamV1Tool:

Public Member Functions

 CpmRoiByteStreamV1Tool (const std::string &type, const std::string &name, const IInterface *parent)
 
virtual ~CpmRoiByteStreamV1Tool ()
 
virtual StatusCode initialize () override
 
StatusCode convert (const IROBDataProviderSvc::VROBFRAG &robFrags, DataVector< LVL1::CPMRoI > *roiCollection) const
 Convert ROB fragments to CPM RoIs. More...
 
StatusCode convert (const DataVector< LVL1::CPMRoI > *roiCollection) const
 Convert CPM RoI 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::CPMRoICpmRoiCollection
 
typedef std::map< uint32_t, const LVL1::CPMRoI * > CpmRoiMap
 
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

std::vector< uint32_t > makeSourceIDs (bool roiDaq) const
 
void setupCpmRoiMap (const CpmRoiCollection *roiCollection, CpmRoiMap &roiMap) const
 Set up CPM RoI map. 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< ByteStreamCnvSvcm_byteStreamCnvSvc { this, "ByteStreamCnvSvc", "ByteStreamCnvSvc" }
 
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 CPM modules per crate. 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 CPM RoI and CPM RoI to raw data conversions.

Based on ROD document version 1_09h.

Author
Peter Faulkner

Definition at line 47 of file CpmRoiByteStreamV1Tool.h.

Member Typedef Documentation

◆ CpmRoiCollection

Definition at line 73 of file CpmRoiByteStreamV1Tool.h.

◆ CpmRoiMap

typedef std::map<uint32_t, const LVL1::CPMRoI*> LVL1BS::CpmRoiByteStreamV1Tool::CpmRoiMap
private

Definition at line 74 of file CpmRoiByteStreamV1Tool.h.

◆ ROBIterator

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

Definition at line 75 of file CpmRoiByteStreamV1Tool.h.

◆ ROBPointer

Definition at line 76 of file CpmRoiByteStreamV1Tool.h.

◆ RODPointer

Definition at line 77 of file CpmRoiByteStreamV1Tool.h.

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ CpmRoiByteStreamV1Tool()

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

Definition at line 38 of file CpmRoiByteStreamV1Tool.cxx.

42  m_errorTool("LVL1BS::L1CaloErrorByteStreamTool/L1CaloErrorByteStreamTool"),
43  m_crates(4), m_modules(14),
44  m_subDetector (eformat::TDAQ_CALO_CLUSTER_PROC_ROI)
45 {
46  declareInterface<CpmRoiByteStreamV1Tool>(this);
47 
48  declareProperty("ErrorTool", m_errorTool,
49  "Tool to collect errors for monitoring");
50  declareProperty("CrateOffsetHw", m_crateOffsetHw = 8,
51  "Offset of CP crate numbers in bytestream");
52  declareProperty("CrateOffsetSw", m_crateOffsetSw = 0,
53  "Offset of CP crate numbers in RDOs");
54 
55  // Properties for reading bytestream only
56  declareProperty("ROBSourceIDs", m_sourceIDsProp,
57  "ROB fragment source identifiers");
58  declareProperty("ROBSourceIDsRoIB", m_sourceIDsRoIBProp,
59  "ROB fragment source identifiers for RoIBs");
60 
61  // Properties for writing bytestream only
62  declareProperty("DataVersion", m_version = 1,
63  "Format version number in sub-block header");
64  declareProperty("DataFormat", m_dataFormat = 1,
65  "Format identifier (0-1) in sub-block header");
66  declareProperty("SlinksPerCrate", m_slinks = 1,
67  "The number of S-Links per crate");
68  declareProperty("CrateMin", m_crateMin = 0,
69  "Minimum crate number, allows partial output");
70  declareProperty("CrateMax", m_crateMax = m_crates-1,
71  "Maximum crate number, allows partial output");
72 
73 }

◆ ~CpmRoiByteStreamV1Tool()

LVL1BS::CpmRoiByteStreamV1Tool::~CpmRoiByteStreamV1Tool ( )
virtual

Definition at line 77 of file CpmRoiByteStreamV1Tool.cxx.

78 {
79 }

Member Function Documentation

◆ convert() [1/2]

StatusCode LVL1BS::CpmRoiByteStreamV1Tool::convert ( const DataVector< LVL1::CPMRoI > *  roiCollection) const

Convert CPM RoI to bytestream.

Definition at line 272 of file CpmRoiByteStreamV1Tool.cxx.

274 {
275  const bool debug = msgLvl(MSG::DEBUG);
276  if (debug) msg(MSG::DEBUG);
277 
278  // Get the event assembler
279 
280  FullEventAssembler<L1CaloSrcIdMap>* fea = nullptr;
281  ATH_CHECK( m_byteStreamCnvSvc->getFullEventAssembler (fea,
282  "CpmRoiByteStreamV1") );
283  uint16_t minorVersion = m_srcIdMap.minorVersionPreLS1();
284  fea->setRodMinorVersion(minorVersion);
285 
286  // Pointer to ROD data vector
287 
289 
290  // Sub-block for neutral format
291  CpmRoiSubBlockV1 subBlock;
292 
293  // Set up the container map
294 
295  // CPM RoI map
296  CpmRoiMap roiMap;
297  setupCpmRoiMap(roiCollection, roiMap);
298  CpmRoiMap::const_iterator mapIter = roiMap.begin();
299  CpmRoiMap::const_iterator mapIterEnd = roiMap.end();
300 
301  // Loop over data
302 
303  const bool neutralFormat = m_dataFormat == L1CaloSubBlock::NEUTRAL;
304  const int modulesPerSlink = m_modules / m_slinks;
305  for (int crate = m_crateMin; crate <= m_crateMax; ++crate) {
306  const int hwCrate = crate + m_crateOffsetHw;
307 
308  // CPM modules are numbered 1 to m_modules
309  for (int module=1; module <= m_modules; ++module) {
310  const int mod = module - 1;
311 
312  // Pack required number of modules per slink
313 
314  if (mod%modulesPerSlink == 0) {
315  const int daqOrRoi = 1;
316  const int slink = (m_slinks == 2) ? 2*(mod/modulesPerSlink)
317  : mod/modulesPerSlink;
318  if (debug) {
319  msg() << "Treating crate " << hwCrate
320  << " slink " << slink << endmsg
321  << "Data Version/Format: " << m_version
322  << " " << m_dataFormat << endmsg;
323  }
324  const uint32_t rodIdCpm = m_srcIdMap.getRodID(hwCrate, slink, daqOrRoi,
325  m_subDetector);
326  theROD = fea->getRodData(rodIdCpm);
327  if (neutralFormat) {
328  const L1CaloUserHeader userHeader;
329  theROD->push_back(userHeader.header());
330  }
331  }
332  if (debug) msg() << "Module " << module << endmsg;
333 
334  // Create a sub-block (Neutral format only)
335 
336  if (neutralFormat) {
337  subBlock.clear();
338  subBlock.setRoiHeader(m_version, hwCrate, module);
339  }
340 
341  // Find CPM RoIs for this module
342 
343  for (; mapIter != mapIterEnd; ++mapIter) {
344  const LVL1::CPMRoI* const roi = mapIter->second;
345  if (roi->crate() < crate) continue;
346  if (roi->crate() > crate) break;
347  if (roi->cpm() < module) continue;
348  if (roi->cpm() > module) break;
349  if (roi->hits() || roi->error()) {
350  if (neutralFormat) subBlock.fillRoi(*roi);
351  else theROD->push_back(roi->roiWord());
352  }
353  }
354 
355  // Pack and write the sub-block
356 
357  if (neutralFormat) {
358  if ( !subBlock.pack()) {
359  msg(MSG::ERROR) << "CPMRoI sub-block packing failed" << endmsg;
360  return StatusCode::FAILURE;
361  }
362  if (debug) {
363  msg() << "CPMRoI sub-block data words: "
364  << subBlock.dataWords() << endmsg;
365  }
366  subBlock.write(theROD);
367  }
368  }
369  }
370 
371  return StatusCode::SUCCESS;
372 }

◆ convert() [2/2]

StatusCode LVL1BS::CpmRoiByteStreamV1Tool::convert ( const IROBDataProviderSvc::VROBFRAG robFrags,
DataVector< LVL1::CPMRoI > *  roiCollection 
) const

Convert ROB fragments to CPM RoIs.

Definition at line 96 of file CpmRoiByteStreamV1Tool.cxx.

99 {
100  const bool debug = msgLvl(MSG::DEBUG);
101  if (debug) msg(MSG::DEBUG);
102 
103  // Sub-block for neutral format
104  CpmRoiSubBlockV1 subBlock;
105 
106  // Loop over ROB fragments
107 
108  int robCount = 0;
109  std::set<uint32_t> dupCheck;
110  std::set<uint32_t> dupRoiCheck;
111  ROBIterator rob = robFrags.begin();
112  ROBIterator robEnd = robFrags.end();
113  for (; rob != robEnd; ++rob) {
114 
115  if (debug) {
116  ++robCount;
117  msg() << "Treating ROB fragment " << robCount << endmsg;
118  }
119 
120  // Skip fragments with ROB status errors
121 
122  uint32_t robid = (*rob)->source_id();
123  if ((*rob)->nstatus() > 0) {
124  ROBPointer robData;
125  (*rob)->status(robData);
126  if (*robData != 0) {
127  m_errorTool->robError(robid, *robData);
128  if (debug) msg() << "ROB status error - skipping fragment" << endmsg;
129  continue;
130  }
131  }
132 
133  // Skip duplicate fragments
134 
135  if (!dupCheck.insert(robid).second) {
137  if (debug) msg() << "Skipping duplicate ROB fragment" << endmsg;
138  continue;
139  }
140 
141  // Unpack ROD data (slinks)
142 
143  RODPointer payloadBeg;
145  RODPointer payloadEnd;
146  (*rob)->rod_data(payloadBeg);
147  payloadEnd = payloadBeg + (*rob)->rod_ndata();
148  payload = payloadBeg;
149  if (payload == payloadEnd) {
150  if (debug) msg() << "ROB fragment empty" << endmsg;
151  continue;
152  }
153 
154  // Check identifier
155  const uint32_t sourceID = (*rob)->rod_source_id();
156  if (m_srcIdMap.getRobID(sourceID) != robid ||
157  m_srcIdMap.subDet(sourceID) != m_subDetector ||
158  m_srcIdMap.daqOrRoi(sourceID) != 1 ||
159  (m_srcIdMap.slink(sourceID) != 0 && m_srcIdMap.slink(sourceID) != 2) ||
160  m_srcIdMap.crate(sourceID) < m_crateOffsetHw ||
161  m_srcIdMap.crate(sourceID) >= m_crateOffsetHw + m_crates) {
162  m_errorTool->rodError(robid, L1CaloSubBlock::ERROR_ROD_ID);
163  if (debug) {
164  msg() << "Wrong source identifier in data: "
165  << MSG::hex << sourceID << MSG::dec << endmsg;
166  }
167  continue;
168  }
169 
170  // Check minor version
171  const int minorVersion = (*rob)->rod_version() & 0xffff;
172  if (minorVersion > m_srcIdMap.minorVersionPreLS1()) {
173  if (debug) msg() << "Skipping post-LS1 data" << endmsg;
174  continue;
175  }
176  const int rodCrate = m_srcIdMap.crate(sourceID);
177  if (debug) {
178  msg() << "Treating crate " << rodCrate
179  << " slink " << m_srcIdMap.slink(sourceID) << endmsg;
180  }
181 
182  // First word may be User Header
184  L1CaloUserHeader userHeader(*payload);
185  userHeader.setVersion(minorVersion);
186  const int headerWords = userHeader.words();
187  if (headerWords != 1 ) {
189  if (debug) msg() << "Unexpected number of user header words: "
190  << headerWords << endmsg;
191  continue;
192  }
193  for (int i = 0; i < headerWords; ++i) ++payload;
194  }
195 
196  // Loop over sub-blocks if there are any
197 
198  unsigned int rodErr = L1CaloSubBlock::ERROR_NONE;
199  while (payload != payloadEnd) {
200 
202  subBlock.clear();
203  payload = subBlock.read(payload, payloadEnd);
204  if (debug) {
205  msg() << "CPM RoI sub-block: Crate " << subBlock.crate()
206  << " Module " << subBlock.module() << endmsg;
207  }
208  // Unpack sub-block
209  if (subBlock.dataWords() && !subBlock.unpack()) {
210  if (debug) {
211  std::string errMsg(subBlock.unpackErrorMsg());
212  msg() << "CPM RoI sub-block unpacking failed: " << errMsg << endmsg;
213  }
214  rodErr = subBlock.unpackErrorCode();
215  break;
216  }
217  const int numChips = 8;
218  const int numLocs = 2;
219  for (int chip = 0; chip < numChips; ++chip) {
220  for (int loc = 0; loc < numLocs; ++loc) {
221  const LVL1::CPMRoI roi = subBlock.roi(chip, loc);
222  if (roi.hits() || roi.error()) {
223  roiCollection->push_back(new LVL1::CPMRoI(roi));
224  }
225  }
226  }
227  } else {
228  // Just RoI word
229  LVL1::CPMRoI roi;
230  if (roi.setRoiWord(*payload)) {
231  if (roi.crate() != rodCrate - m_crateOffsetHw) {
232  if (debug) msg() << "Inconsistent RoI crate number: "
233  << roi.crate() << endmsg;
235  break;
236  }
237  if (roi.cpm() == 0 || roi.cpm() > m_modules) {
238  if (debug) msg() << "Invalid CPM number: "
239  << roi.cpm() << endmsg;
241  break;
242  }
243  const uint32_t location = (*payload) & 0xfffc0000;
244  if (dupRoiCheck.insert(location).second) {
245  if (roi.hits() || roi.error()) {
246  roiCollection->push_back(new LVL1::CPMRoI(*payload));
247  }
248  } else {
249  if (debug) msg() << "Duplicate RoI word "
250  << MSG::hex << *payload << MSG::dec << endmsg;
252  break;
253  }
254  } else {
255  if (debug) msg() << "Invalid RoI word "
256  << MSG::hex << *payload << MSG::dec << endmsg;
258  break;
259  }
260  ++payload;
261  }
262  }
263  if (rodErr != L1CaloSubBlock::ERROR_NONE)
264  m_errorTool->rodError(robid, rodErr);
265  }
266 
267  return StatusCode::SUCCESS;
268 }

◆ 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; }

◆ 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

◆ initialize()

StatusCode LVL1BS::CpmRoiByteStreamV1Tool::initialize ( )
overridevirtual

Definition at line 84 of file CpmRoiByteStreamV1Tool.cxx.

85 {
86  ATH_MSG_INFO ("Initializing " << name());
87 
88  ATH_CHECK( m_errorTool.retrieve() );
89  ATH_CHECK( m_byteStreamCnvSvc.retrieve() );
90 
91  return StatusCode::SUCCESS;
92 }

◆ 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::CpmRoiByteStreamV1Tool::interfaceID ( )
static

AlgTool InterfaceID.

Definition at line 31 of file CpmRoiByteStreamV1Tool.cxx.

32 {
33  return IID_ICpmRoiByteStreamV1Tool;
34 }

◆ makeSourceIDs()

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

Definition at line 376 of file CpmRoiByteStreamV1Tool.cxx.

377 {
378  std::vector<uint32_t> sourceIDs;
379 
380  if (roiDaq) {
382  }
383  else {
385  }
386 
387  if (sourceIDs.empty()) {
388  const int maxCrates = m_crates + m_crateOffsetHw;
389  const int maxSlinks = m_srcIdMap.maxSlinks();
390  for (int hwCrate = m_crateOffsetHw; hwCrate < maxCrates; ++hwCrate)
391  {
392  for (int slink = 0; slink < maxSlinks; ++slink)
393  {
394  const int daqOrRoi = 1;
395  const uint32_t rodId = m_srcIdMap.getRodID(hwCrate, slink, daqOrRoi,
396  m_subDetector);
397  const uint32_t robId = m_srcIdMap.getRobID(rodId);
398  if (roiDaq)
399  {
400  if (slink < 2) sourceIDs.push_back(robId);
401  }
402  else if (slink >= 2) sourceIDs.push_back(robId);
403  }
404  }
405 
406  }
407  return sourceIDs;
408 }

◆ 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  }

◆ setupCpmRoiMap()

void LVL1BS::CpmRoiByteStreamV1Tool::setupCpmRoiMap ( const CpmRoiCollection roiCollection,
CpmRoiMap roiMap 
) const
private

Set up CPM RoI map.

Definition at line 430 of file CpmRoiByteStreamV1Tool.cxx.

433 {
434  roiMap.clear();
435  if (roiCollection) {
436  CpmRoiCollection::const_iterator pos = roiCollection->begin();
437  CpmRoiCollection::const_iterator pose = roiCollection->end();
438  for (; pos != pose; ++pos) {
439  const LVL1::CPMRoI* const roi = *pos;
440  const uint32_t key = roi->roiWord();
441  roiMap.insert(std::make_pair(key, roi));
442  }
443  }
444 }

◆ sourceIDs()

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

Return reference to vector with all possible Source Identifiers.

Definition at line 410 of file CpmRoiByteStreamV1Tool.cxx.

412 {
413  const std::string flag("RoIB");
414  const std::string::size_type pos = sgKey.find(flag);
415  const bool roiDaq =
416  (pos == std::string::npos || pos != sgKey.length() - flag.length());
417 
418  if (roiDaq) {
419  static const std::vector<uint32_t> sourceIDs = makeSourceIDs(roiDaq);
420  return sourceIDs;
421  }
422  else {
423  static const std::vector<uint32_t> sourceIDsRoIB = makeSourceIDs(roiDaq);
424  return sourceIDsRoIB;
425  }
426 }

◆ 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<ByteStreamCnvSvc> LVL1BS::CpmRoiByteStreamV1Tool::m_byteStreamCnvSvc { this, "ByteStreamCnvSvc", "ByteStreamCnvSvc" }
private

Definition at line 70 of file CpmRoiByteStreamV1Tool.h.

◆ m_crateMax

int LVL1BS::CpmRoiByteStreamV1Tool::m_crateMax
private

Property: Maximum crate number when writing out bytestream.

Definition at line 105 of file CpmRoiByteStreamV1Tool.h.

◆ m_crateMin

int LVL1BS::CpmRoiByteStreamV1Tool::m_crateMin
private

Property: Minimum crate number when writing out bytestream.

Definition at line 103 of file CpmRoiByteStreamV1Tool.h.

◆ m_crateOffsetHw

int LVL1BS::CpmRoiByteStreamV1Tool::m_crateOffsetHw
private

Property: Hardware crate number offset.

Definition at line 89 of file CpmRoiByteStreamV1Tool.h.

◆ m_crateOffsetSw

int LVL1BS::CpmRoiByteStreamV1Tool::m_crateOffsetSw
private

Property: Software crate number offset.

Definition at line 91 of file CpmRoiByteStreamV1Tool.h.

◆ m_crates

const int LVL1BS::CpmRoiByteStreamV1Tool::m_crates
private

Number of crates.

Definition at line 97 of file CpmRoiByteStreamV1Tool.h.

◆ m_dataFormat

int LVL1BS::CpmRoiByteStreamV1Tool::m_dataFormat
private

Property: Data compression format.

Definition at line 95 of file CpmRoiByteStreamV1Tool.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::CpmRoiByteStreamV1Tool::m_errorTool
private

Property: Error collection tool.

Definition at line 86 of file CpmRoiByteStreamV1Tool.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_modules

const int LVL1BS::CpmRoiByteStreamV1Tool::m_modules
private

Number of CPM modules per crate.

Definition at line 99 of file CpmRoiByteStreamV1Tool.h.

◆ m_slinks

int LVL1BS::CpmRoiByteStreamV1Tool::m_slinks
private

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

Definition at line 101 of file CpmRoiByteStreamV1Tool.h.

◆ m_sourceIDsProp

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

Property: ROB source IDs.

Definition at line 107 of file CpmRoiByteStreamV1Tool.h.

◆ m_sourceIDsRoIBProp

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

Property: ROB source IDs for RoIB.

Definition at line 109 of file CpmRoiByteStreamV1Tool.h.

◆ m_srcIdMap

const L1CaloSrcIdMap LVL1BS::CpmRoiByteStreamV1Tool::m_srcIdMap
private

Source ID converter.

Definition at line 113 of file CpmRoiByteStreamV1Tool.h.

◆ m_subDetector

const eformat::SubDetector LVL1BS::CpmRoiByteStreamV1Tool::m_subDetector
private

Sub-detector type.

Definition at line 111 of file CpmRoiByteStreamV1Tool.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_version

int LVL1BS::CpmRoiByteStreamV1Tool::m_version
private

Property: Sub_block header version.

Definition at line 93 of file CpmRoiByteStreamV1Tool.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:
LVL1BS::L1CaloSrcIdMap::minorVersionPreLS1
uint16_t minorVersionPreLS1() const
Return last ROD header minor version for pre-LS1 data.
Definition: L1CaloSrcIdMap.h:59
LVL1BS::CpmRoiByteStreamV1Tool::RODPointer
OFFLINE_FRAGMENTS_NAMESPACE::PointerType RODPointer
Definition: CpmRoiByteStreamV1Tool.h:77
LVL1BS::L1CaloSrcIdMap::slink
int slink(uint32_t code) const
Return slink from unpacked moduleID.
Definition: L1CaloSrcIdMap.cxx:68
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
LVL1BS::CpmRoiByteStreamV1Tool::CpmRoiMap
std::map< uint32_t, const LVL1::CPMRoI * > CpmRoiMap
Definition: CpmRoiByteStreamV1Tool.h:74
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
FullEventAssembler
Template class for assembling a full atlas raw event from subfragments.
Definition: FullEventAssembler.h:40
DataVector::const_iterator
DataModel_detail::const_iterator< DataVector > const_iterator
Standard const_iterator.
Definition: DataVector.h:837
LVL1BS::CpmRoiByteStreamV1Tool::m_srcIdMap
const L1CaloSrcIdMap m_srcIdMap
Source ID converter.
Definition: CpmRoiByteStreamV1Tool.h:113
LVL1BS::CpmRoiByteStreamV1Tool::m_sourceIDsProp
std::vector< uint32_t > m_sourceIDsProp
Property: ROB source IDs.
Definition: CpmRoiByteStreamV1Tool.h:107
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
LVL1BS::CpmRoiByteStreamV1Tool::m_crateOffsetHw
int m_crateOffsetHw
Property: Hardware crate number offset.
Definition: CpmRoiByteStreamV1Tool.h:89
LVL1BS::L1CaloSubBlock::ERROR_DUPLICATE_ROB
@ ERROR_DUPLICATE_ROB
Definition: L1CaloSubBlock.h:31
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
LVL1BS::CpmRoiByteStreamV1Tool::m_subDetector
const eformat::SubDetector m_subDetector
Sub-detector type.
Definition: CpmRoiByteStreamV1Tool.h:111
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
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:27
LVL1BS::CpmRoiByteStreamV1Tool::m_errorTool
ToolHandle< LVL1BS::L1CaloErrorByteStreamTool > m_errorTool
Property: Error collection tool.
Definition: CpmRoiByteStreamV1Tool.h:86
LVL1BS::L1CaloSubBlock::NEUTRAL
@ NEUTRAL
Definition: L1CaloSubBlock.h:28
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
LVL1::CPMRoI::hits
int hits() const
Return hit thresholds map.
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CPMRoI.h:101
LVL1BS::CpmRoiByteStreamV1Tool::m_dataFormat
int m_dataFormat
Property: Data compression format.
Definition: CpmRoiByteStreamV1Tool.h:95
LVL1BS::CpmRoiByteStreamV1Tool::m_byteStreamCnvSvc
ServiceHandle< ByteStreamCnvSvc > m_byteStreamCnvSvc
Definition: CpmRoiByteStreamV1Tool.h:71
LVL1BS::L1CaloSubBlock::HEADER
@ HEADER
Definition: L1CaloSubBlock.h:27
LVL1BS::CpmRoiByteStreamV1Tool::m_version
int m_version
Property: Sub_block header version.
Definition: CpmRoiByteStreamV1Tool.h:93
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
LVL1BS::CpmRoiByteStreamV1Tool::ROBPointer
OFFLINE_FRAGMENTS_NAMESPACE::PointerType ROBPointer
Definition: CpmRoiByteStreamV1Tool.h:76
python.PyAthena.module
module
Definition: PyAthena.py:134
LVL1BS::L1CaloSubBlock::ERROR_ROD_ID
@ ERROR_ROD_ID
Definition: L1CaloSubBlock.h:31
LVL1::CPMRoI::cpm
int cpm() const
Return CPM number (1-14)
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CPMRoI.h:86
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
maskDeadModules.mod
mod
Definition: maskDeadModules.py:36
LVL1BS::CpmRoiByteStreamV1Tool::sourceIDs
const std::vector< uint32_t > & sourceIDs(const std::string &sgKey) const
Return reference to vector with all possible Source Identifiers.
Definition: CpmRoiByteStreamV1Tool.cxx:410
LVL1BS::L1CaloSubBlock::ERROR_CRATE_NUMBER
@ ERROR_CRATE_NUMBER
Definition: L1CaloSubBlock.h:34
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
lumiFormat.i
int i
Definition: lumiFormat.py:92
LVL1BS::CpmRoiByteStreamV1Tool::m_sourceIDsRoIBProp
std::vector< uint32_t > m_sourceIDsRoIBProp
Property: ROB source IDs for RoIB.
Definition: CpmRoiByteStreamV1Tool.h:109
LVL1BS::L1CaloSubBlock::ERROR_DUPLICATE_DATA
@ ERROR_DUPLICATE_DATA
Definition: L1CaloSubBlock.h:35
LVL1BS::CpmRoiByteStreamV1Tool::m_crateOffsetSw
int m_crateOffsetSw
Property: Software crate number offset.
Definition: CpmRoiByteStreamV1Tool.h:91
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
LVL1BS::CpmRoiByteStreamV1Tool::ROBIterator
IROBDataProviderSvc::VROBFRAG::const_iterator ROBIterator
Definition: CpmRoiByteStreamV1Tool.h:75
python.sizes.location
string location
Definition: sizes.py:11
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::CPMRoI
CPM RoI data.
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CPMRoI.h:20
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
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
LVL1::CPMRoI::error
int error() const
Return error flags (bit 0 Saturation, bit 1 Parity)
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CPMRoI.h:106
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
LVL1::CPMRoI::roiWord
uint32_t roiWord() const
Return packed RoI word.
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CPMRoI.h:111
LVL1BS::CpmRoiByteStreamV1Tool::m_modules
const int m_modules
Number of CPM modules per crate.
Definition: CpmRoiByteStreamV1Tool.h:99
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
debug
const bool debug
Definition: MakeUncertaintyPlots.cxx:53
LVL1BS::CpmRoiByteStreamV1Tool::m_crateMax
int m_crateMax
Property: Maximum crate number when writing out bytestream.
Definition: CpmRoiByteStreamV1Tool.h:105
LVL1::CPMRoI::setRoiWord
bool setRoiWord(uint32_t roiWord)
Set RoI word with ID check.
Definition: CPMRoI.cxx:57
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
PixelModuleFeMask_create_db.payload
string payload
Definition: PixelModuleFeMask_create_db.py:69
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
LVL1BS::L1CaloSrcIdMap::subDet
eformat::SubDetector subDet(uint32_t code) const
Return sub-detector for given ID.
Definition: L1CaloSrcIdMap.cxx:84
a
TList * a
Definition: liststreamerinfos.cxx:10
h
FullEventAssembler::setRodMinorVersion
void setRodMinorVersion(uint16_t m)
change the ROD minor version
LVL1BS::CpmRoiByteStreamV1Tool::m_crates
const int m_crates
Number of crates.
Definition: CpmRoiByteStreamV1Tool.h:97
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::L1CaloSubBlock::ERROR_MODULE_NUMBER
@ ERROR_MODULE_NUMBER
Definition: L1CaloSubBlock.h:34
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
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
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
LVL1BS::L1CaloSubBlock::ERROR_ROI_TYPE
@ ERROR_ROI_TYPE
Definition: L1CaloSubBlock.h:36
LVL1BS::CpmRoiByteStreamV1Tool::setupCpmRoiMap
void setupCpmRoiMap(const CpmRoiCollection *roiCollection, CpmRoiMap &roiMap) const
Set up CPM RoI map.
Definition: CpmRoiByteStreamV1Tool.cxx:430
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
FullEventAssembler::RODDATA
std::vector< uint32_t > RODDATA
ROD data as a vector of unsigned int.
Definition: FullEventAssembler.h:54
LVL1BS::L1CaloSrcIdMap::maxSlinks
int maxSlinks() const
Return the maximum possible number of slinks.
Definition: L1CaloSrcIdMap.cxx:77
LVL1BS::CpmRoiByteStreamV1Tool::makeSourceIDs
std::vector< uint32_t > makeSourceIDs(bool roiDaq) const
Definition: CpmRoiByteStreamV1Tool.cxx:376
LVL1BS::L1CaloUserHeader::isValid
static bool isValid(uint32_t word)
Test for valid header word.
Definition: L1CaloUserHeader.cxx:36
LVL1::CPMRoI::crate
int crate() const
Return crate number (0-1)
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CPMRoI.h:81
LVL1BS::L1CaloSrcIdMap::daqOrRoi
int daqOrRoi(uint32_t code) const
Return daqOrRoi from unpacked moduleID.
Definition: L1CaloSrcIdMap.cxx:60
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::CpmRoiByteStreamV1Tool::m_slinks
int m_slinks
Property: Number of slinks per crate when writing out bytestream.
Definition: CpmRoiByteStreamV1Tool.h:101
LVL1BS::L1CaloSubBlock::ERROR_USER_HEADER
@ ERROR_USER_HEADER
Definition: L1CaloSubBlock.h:32
FullEventAssembler::getRodData
RODDATA * getRodData(uint32_t id)
get a block of ROD data
fitman.k
k
Definition: fitman.py:528
LVL1BS::CpmRoiByteStreamV1Tool::m_crateMin
int m_crateMin
Property: Minimum crate number when writing out bytestream.
Definition: CpmRoiByteStreamV1Tool.h:103
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37