ATLAS Offline Software
Loading...
Searching...
No Matches
LVL1BS::JepRoiByteStreamV1Tool Class Reference

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

#include <JepRoiByteStreamV1Tool.h>

Inheritance diagram for LVL1BS::JepRoiByteStreamV1Tool:
Collaboration diagram for LVL1BS::JepRoiByteStreamV1Tool:

Public Member Functions

 JepRoiByteStreamV1Tool (const std::string &type, const std::string &name, const IInterface *parent)
virtual ~JepRoiByteStreamV1Tool ()
virtual StatusCode initialize () override
virtual StatusCode finalize () override
StatusCode convert (const IROBDataProviderSvc::VROBFRAG &robFrags, DataVector< LVL1::JEMRoI > *jeCollection) const
 Convert ROB fragments to JEM RoIs.
StatusCode convert (const IROBDataProviderSvc::VROBFRAG &robFrags, LVL1::CMMRoI *cmCollection) const
 Convert ROB fragments to CMM RoIs.
StatusCode convert (const LVL1::JEPRoIBSCollectionV1 *jep) const
 Convert JEP RoI Container to bytestream.
const std::vector< uint32_t > & sourceIDs (const std::string &sgKey) const
 Return reference to vector with all possible Source Identifiers.
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Static Public Member Functions

static const InterfaceID & interfaceID ()
 AlgTool InterfaceID.

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
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.

Private Types

typedef DataVector< LVL1::JEMRoIJemRoiCollection
typedef DataVector< LVL1::CMMJetHitsCmmHitsCollection
typedef DataVector< LVL1::CMMEtSumsCmmSumsCollection
typedef std::map< uint32_t, const LVL1::JEMRoI * > JemRoiMap
typedef std::map< int, const LVL1::CMMJetHits * > CmmHitsMap
typedef std::map< int, const LVL1::CMMEtSums * > CmmSumsMap
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::JEMRoI > *jeCollection, LVL1::CMMRoI *cmCollection) const
 Convert bytestream to given container type.
const LVL1::CMMJetHitsfindCmmHits (int crate, int dataID, const CmmHitsMap &cmmHitsMap) const
 Find CMM hits for given crate, data ID.
const LVL1::CMMEtSumsfindCmmSums (int crate, int dataID, const CmmSumsMap &cmmEtMap) const
 Find CMM energy sums for given crate, data ID.
std::vector< uint32_t > makeSourceIDs (bool roiDaq) const
void setupJemRoiMap (const JemRoiCollection *jeCollection, JemRoiMap &roiMap) const
 Set up JEM RoIs map.
void setupCmmHitsMap (const CmmHitsCollection *hitCollection, CmmHitsMap &cmmHitsMap) const
 Set up CMM hits map.
void setupCmmEtMap (const CmmSumsCollection *enCollection, CmmSumsMap &cmmEtMap) const
 Set up CMM energy sums map.
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

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

Detailed Description

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

Based on ROD document version 1_09h.

Author
Peter Faulkner

Definition at line 53 of file JepRoiByteStreamV1Tool.h.

Member Typedef Documentation

◆ CmmHitsCollection

◆ CmmHitsMap

typedef std::map<int, const LVL1::CMMJetHits*> LVL1BS::JepRoiByteStreamV1Tool::CmmHitsMap
private

Definition at line 87 of file JepRoiByteStreamV1Tool.h.

◆ CmmSumsCollection

◆ CmmSumsMap

typedef std::map<int, const LVL1::CMMEtSums*> LVL1BS::JepRoiByteStreamV1Tool::CmmSumsMap
private

Definition at line 88 of file JepRoiByteStreamV1Tool.h.

◆ JemRoiCollection

◆ JemRoiMap

typedef std::map<uint32_t, const LVL1::JEMRoI*> LVL1BS::JepRoiByteStreamV1Tool::JemRoiMap
private

Definition at line 86 of file JepRoiByteStreamV1Tool.h.

◆ ROBIterator

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

Definition at line 89 of file JepRoiByteStreamV1Tool.h.

◆ ROBPointer

◆ RODPointer

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ JepRoiByteStreamV1Tool()

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

Definition at line 47 of file JepRoiByteStreamV1Tool.cxx.

50 : AthAlgTool(type, name, parent),
51 m_errorTool("LVL1BS::L1CaloErrorByteStreamTool/L1CaloErrorByteStreamTool"),
52 m_crates(2), m_modules(16),
53 m_subDetector (eformat::TDAQ_CALO_JET_PROC_ROI)
54{
55 declareInterface<JepRoiByteStreamV1Tool>(this);
56
57 declareProperty("ErrorTool", m_errorTool,
58 "Tool to collect errors for monitoring");
59 declareProperty("CrateOffsetHw", m_crateOffsetHw = 12,
60 "Offset of JEP crate numbers in bytestream");
61 declareProperty("CrateOffsetSw", m_crateOffsetSw = 0,
62 "Offset of JEP crate numbers in RDOs");
63
64 // Properties for reading bytestream only
65 declareProperty("ROBSourceIDs", m_sourceIDsProp,
66 "ROB fragment source identifiers");
67 declareProperty("ROBSourceIDsRoIB", m_sourceIDsRoIBProp,
68 "ROB fragment source identifiers");
69
70 // Properties for writing bytestream only
71 declareProperty("DataVersion", m_version = 1,
72 "Format version number in sub-block header");
73 declareProperty("DataFormat", m_dataFormat = 1,
74 "Format identifier (0-1) in sub-block header");
75 declareProperty("SlinksPerCrate", m_slinks = 1,
76 "The number of S-Links per crate");
77 declareProperty("CrateMin", m_crateMin = 0,
78 "Minimum crate number, allows partial output");
79 declareProperty("CrateMax", m_crateMax = m_crates - 1,
80 "Maximum crate number, allows partial output");
81
82}
AthAlgTool()
Default constructor:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
ToolHandle< LVL1BS::L1CaloErrorByteStreamTool > m_errorTool
Property: Error collection tool.
int m_version
Property: Sub_block header version.
const eformat::SubDetector m_subDetector
Sub-detector type.
std::vector< uint32_t > m_sourceIDsProp
Property: ROB source IDs.
int m_crateMin
Property: Minimum crate number when writing out bytestream.
int m_crateOffsetSw
Property: Software crate number offset.
int m_crateMax
Property: Maximum crate number when writing out bytestream.
int m_crateOffsetHw
Property: Hardware crate number offset.
const int m_crates
Number of crates.
int m_slinks
Property: Number of slinks per crate when writing out bytestream.
const int m_modules
Number of JEM modules per crate.
int m_dataFormat
Property: Data compression format.
std::vector< uint32_t > m_sourceIDsRoIBProp
Property: ROB source IDs for RoIB.

◆ ~JepRoiByteStreamV1Tool()

LVL1BS::JepRoiByteStreamV1Tool::~JepRoiByteStreamV1Tool ( )
virtual

Definition at line 86 of file JepRoiByteStreamV1Tool.cxx.

87{
88}

Member Function Documentation

◆ convert() [1/3]

StatusCode LVL1BS::JepRoiByteStreamV1Tool::convert ( const IROBDataProviderSvc::VROBFRAG & robFrags,
DataVector< LVL1::JEMRoI > * jeCollection ) const

Convert ROB fragments to JEM RoIs.

Definition at line 112 of file JepRoiByteStreamV1Tool.cxx.

115{
116 return convertBs(robFrags, jeCollection, nullptr);
117}
StatusCode convertBs(const IROBDataProviderSvc::VROBFRAG &robFrags, DataVector< LVL1::JEMRoI > *jeCollection, LVL1::CMMRoI *cmCollection) const
Convert bytestream to given container type.

◆ convert() [2/3]

StatusCode LVL1BS::JepRoiByteStreamV1Tool::convert ( const IROBDataProviderSvc::VROBFRAG & robFrags,
LVL1::CMMRoI * cmCollection ) const

Convert ROB fragments to CMM RoIs.

Definition at line 121 of file JepRoiByteStreamV1Tool.cxx.

124{
125 return convertBs(robFrags, nullptr, cmCollection);
126}

◆ convert() [3/3]

StatusCode LVL1BS::JepRoiByteStreamV1Tool::convert ( const LVL1::JEPRoIBSCollectionV1 * jep) const

Convert JEP RoI Container to bytestream.

Definition at line 130 of file JepRoiByteStreamV1Tool.cxx.

132{
133 const bool debug = msgLvl(MSG::DEBUG);
134 if (debug) msg(MSG::DEBUG);
135
136 // Get the event assembler
137 FullEventAssembler<L1CaloSrcIdMap>* fea = nullptr;
138 ATH_CHECK( m_byteStreamCnvSvc->getFullEventAssembler (fea,
139 "JepRoiByteStreamV1") );
140 const uint16_t minorVersion = m_srcIdMap.minorVersionPreLS1();
141 fea->setRodMinorVersion(minorVersion);
142
143 // Pointer to ROD data vector
144
146
147 // Sub-block for neutral format
148 JemRoiSubBlockV1 subBlock;
149
150 // Set up the container maps
151
152 const bool neutralFormat = m_dataFormat == L1CaloSubBlock::NEUTRAL;
153
154 // JEM RoI map
155 JemRoiMap roiMap;
156 setupJemRoiMap(jep->JemRoi(), roiMap);
157 JemRoiMap::const_iterator mapIter = roiMap.begin();
158 JemRoiMap::const_iterator mapIterEnd = roiMap.end();
159
160 // CMM hits map
161 CmmHitsMap cmmHitsMap;
162 // CMM energy sums map
163 CmmSumsMap cmmEtMap;
164 if (neutralFormat) {
165 setupCmmHitsMap(jep->CmmHits(), cmmHitsMap);
166 setupCmmEtMap(jep->CmmSums(), cmmEtMap);
167 }
168
169 // Loop over JEM RoI data
170
171 const int modulesPerSlink = m_modules / m_slinks;
172 for (int crate = m_crateMin; crate <= m_crateMax; ++crate) {
173 const int hwCrate = crate + m_crateOffsetHw;
174
175 for (int module = 0; module < m_modules; ++module) {
176
177 // Pack required number of modules per slink
178
179 if (module % modulesPerSlink == 0) {
180 const int daqOrRoi = 1;
181 const int slink = module / modulesPerSlink;
182 if (debug) {
183 msg() << "Treating crate " << hwCrate
184 << " slink " << slink << endmsg
185 << "Data Version/Format: " << m_version
186 << " " << m_dataFormat << endmsg;
187 }
188 const uint32_t rodIdJem = m_srcIdMap.getRodID(hwCrate, slink, daqOrRoi,
190 theROD = fea->getRodData(rodIdJem);
191 if (neutralFormat) {
192 const L1CaloUserHeader userHeader;
193 theROD->push_back(userHeader.header());
194 }
195 }
196 if (debug) msg() << "JEM Module " << module << endmsg;
197 if (!theROD) break; // for coverity, shouldn't happen
198
199 // Create a sub-block (Neutral format only)
200
201 if (neutralFormat) {
202 subBlock.clear();
203 subBlock.setRoiHeader(m_version, hwCrate, module);
204 }
205
206 // Find JEM RoIs for this module
207
208 for (; mapIter != mapIterEnd; ++mapIter) {
209 const LVL1::JEMRoI* const roi = mapIter->second;
210 if (roi->crate() < crate) continue;
211 if (roi->crate() > crate) break;
212 if (roi->jem() < module) continue;
213 if (roi->jem() > module) break;
214 if (roi->hits() || roi->error()) {
215 if (neutralFormat) subBlock.fillRoi(*roi);
216 else theROD->push_back(roi->roiWord());
217 }
218 }
219
220 // Pack and write the sub-block
221
222 if (neutralFormat) {
223 if ( !subBlock.pack()) {
224 msg(MSG::ERROR) << "JEM RoI sub-block packing failed" << endmsg;
225 return StatusCode::FAILURE;
226 }
227 if (debug) {
228 msg() << "JEM RoI sub-block data words: "
229 << subBlock.dataWords() << endmsg;
230 }
231 subBlock.write(theROD);
232 }
233 }
234 if (!theROD) break; // for coverity, shouldn't happen
235
236 // Append CMM RoIs to last S-Link of the system crate
237
238 if (crate != m_crates - 1) continue;
239
240 // Create sub-blocks for Neutral format
241
242 if (neutralFormat) {
243 const int timeslices = 1;
244 const int slice = 0;
245
246 // CMM-Energy
247
248 CmmEnergySubBlock enBlock;
249 const int cmmEnergyVersion = 2; // with Missing-ET-Sig
250 enBlock.setCmmHeader(cmmEnergyVersion, m_dataFormat, slice, hwCrate,
252 CmmSubBlock::LEFT, timeslices);
253 int maxDataID = static_cast<int>(LVL1::CMMEtSums::MAXID);
254 for (int dataID = 0; dataID < maxDataID; ++dataID) {
255 int source = dataID;
256 if (dataID >= m_modules) {
257 switch (dataID) {
260 break;
263 break;
266 break;
270 break;
271 default:
272 continue;
273 }
274 }
275 const LVL1::CMMEtSums* const sums = findCmmSums(crate, dataID, cmmEtMap);
276 if ( sums ) {
277 const unsigned int ex = sums->Ex();
278 const unsigned int ey = sums->Ey();
279 const unsigned int et = sums->Et();
280 const int exErr = sums->ExError();
281 const int eyErr = sums->EyError();
282 const int etErr = sums->EtError();
283 if (dataID == LVL1::CMMEtSums::MISSING_ET_MAP) {
284 enBlock.setMissingEtHits(slice, et);
285 } else if (dataID == LVL1::CMMEtSums::SUM_ET_MAP) {
286 enBlock.setSumEtHits(slice, et);
287 } else if (dataID == LVL1::CMMEtSums::MISSING_ET_SIG_MAP) {
288 enBlock.setMissingEtSigHits(slice, et);
289 } else {
290 enBlock.setSubsums(slice, source, ex, ey, et, exErr, eyErr, etErr);
291 }
292 }
293 }
294 if ( !enBlock.pack()) {
295 msg(MSG::ERROR) << "CMM-Energy sub-block packing failed" << endmsg;
296 return StatusCode::FAILURE;
297 }
298 if (debug) {
299 msg() << "CMM-Energy sub-block data words: "
300 << enBlock.dataWords() << endmsg;
301 }
302 enBlock.write(theROD);
303
304 // CMM-Jet
305
306 CmmJetSubBlock jetBlock;
307 jetBlock.setCmmHeader(m_version, m_dataFormat, slice, hwCrate,
309 CmmSubBlock::RIGHT, timeslices);
310 maxDataID = static_cast<int>(LVL1::CMMJetHits::MAXID);
311 for (int dataID = 0; dataID < maxDataID; ++dataID) {
312 int source = dataID;
313 if (dataID >= m_modules) {
314 // coverity[mixed_enums : FALSE]
315 // coverity[switch_on_enum : FALSE]
316 // coverity[first_enum_type : FALSE]
317 switch (dataID) {
320 break;
323 break;
326 break;
329 break;
332 break;
335 break;
337 break;
338 default:
339 continue;
340 }
341 }
342 const LVL1::CMMJetHits* const ch = findCmmHits(crate, dataID, cmmHitsMap);
343 if ( ch ) {
344 const unsigned int hits = ch->Hits();
345 const int errs = ch->Error();
346 if (dataID == LVL1::CMMJetHits::ET_MAP) {
347 jetBlock.setJetEtMap(slice, hits);
348 } else {
349 jetBlock.setJetHits(slice, source, hits, errs);
350 }
351 }
352 }
353 if ( !jetBlock.pack()) {
354 msg(MSG::ERROR) << "CMM-Jet sub-block packing failed" << endmsg;
355 return StatusCode::FAILURE;
356 }
357 if (debug) {
358 msg() << "CMM-Jet sub-block data words: "
359 << jetBlock.dataWords() << endmsg;
360 }
361 jetBlock.write(theROD);
362
363 } else {
364
365 // Standard format
366
367 const LVL1::CMMRoI* const roi = jep->CmmRoi();
368 if ( roi ) {
369 // Make sure word IDs are correct
370 const LVL1::CMMRoI roid(roi->jetEtHits(), roi->sumEtHits(),
371 roi->missingEtHits(), roi->missingEtSigHits(),
372 roi->ex(), roi->ey(), roi->et(),
373 roi->jetEtError(), roi->sumEtError(),
374 roi->missingEtError(), roi->missingEtSigError(),
375 roi->exError(), roi->eyError(), roi->etError());
376 if (roid.jetEtHits() || roid.jetEtError()) {
377 theROD->push_back(roid.jetEtRoiWord());
378 }
379 // CMM-Energy RoIs are not zero-supressed unless all are zero
380 if (roid.sumEtHits() || roid.missingEtHits() ||
381 roid.missingEtSigHits() || roid.ex() || roid.ey() || roid.et() ||
382 roid.sumEtError() || roid.missingEtError() ||
383 roid.missingEtSigError() || roid.exError() || roid.eyError() ||
384 roid.etError()) {
385 theROD->push_back(roid.energyRoiWord0());
386 theROD->push_back(roid.energyRoiWord1());
387 theROD->push_back(roid.energyRoiWord2());
388 }
389 }
390 }
391 }
392
393 return StatusCode::SUCCESS;
394}
#define endmsg
#define ATH_CHECK
Evaluate an expression and check for errors.
float et(const xAOD::jFexSRJetRoI *j)
const bool debug
bool msgLvl(const MSG::Level lvl) const
MsgStream & msg() const
void setRodMinorVersion(uint16_t m)
change the ROD minor version
std::vector< uint32_t > RODDATA
ROD data as a vector of unsigned int.
RODDATA * getRodData(uint32_t id)
get a block of ROD data
const LVL1::CMMEtSums * findCmmSums(int crate, int dataID, const CmmSumsMap &cmmEtMap) const
Find CMM energy sums for given crate, data ID.
std::map< uint32_t, const LVL1::JEMRoI * > JemRoiMap
ServiceHandle< IByteStreamCnvSvc > m_byteStreamCnvSvc
void setupJemRoiMap(const JemRoiCollection *jeCollection, JemRoiMap &roiMap) const
Set up JEM RoIs map.
std::map< int, const LVL1::CMMEtSums * > CmmSumsMap
const LVL1::CMMJetHits * findCmmHits(int crate, int dataID, const CmmHitsMap &cmmHitsMap) const
Find CMM hits for given crate, data ID.
void setupCmmHitsMap(const CmmHitsCollection *hitCollection, CmmHitsMap &cmmHitsMap) const
Set up CMM hits map.
const L1CaloSrcIdMap m_srcIdMap
Source ID converter.
void setupCmmEtMap(const CmmSumsCollection *enCollection, CmmSumsMap &cmmEtMap) const
Set up CMM energy sums map.
std::map< int, const LVL1::CMMJetHits * > CmmHitsMap
unsigned int Ex() const
returns module Ex sum for peak sample
Definition CMMEtSums.cxx:69
int EyError() const
returns module Ey sum error for peak sample
Definition CMMEtSums.cxx:89
unsigned int Et() const
For triggered time slice.
Definition CMMEtSums.cxx:64
unsigned int Ey() const
returns module Ey sum for peak sample
Definition CMMEtSums.cxx:74
int ExError() const
returns module Ex sum error for peak sample
Definition CMMEtSums.cxx:84
int EtError() const
returns module ET sum error for peak sample
Definition CMMEtSums.cxx:79
int missingEtSigHits() const
Return Missing-ET-Sig hits.
int jetEtError() const
Return Jet-ET error flag (bit 1 Parity)
int missingEtError() const
Return Missing-ET error flag (bit 1 Parity)
int missingEtHits() const
Return Missing-ET hits.
int sumEtError() const
Return Sum-ET error flag (bit 1 Parity)
int missingEtSigError() const
Return Missing-ET-Sig error flag (bit 1 Parity)
int etError() const
Return Et error flags (bit 0 Overflow, bit 1 Parity)
int exError() const
Return Ex error flags (bit 0 Overflow, bit 1 Parity)
int eyError() const
Return Ey error flags (bit 0 Overflow, bit 1 Parity)
uint32_t roiWord() const
Return packed RoI word.
int error() const
Return error flags (bit 0 Saturation, bit 1 Parity)
int hits() const
Return Jet hit map (8 bits Main or 4 bits Forward)
Definition JEMRoI.cxx:64
int jem() const
Return JEM number (0-15)
int crate() const
Return crate number (0-1)
const CMMRoI * CmmRoi() const
Return pointer to CMM RoIs.
const DataVector< CMMJetHits > * CmmHits() const
Return pointer to CMM hit sums collection.
const DataVector< JEMRoI > * JemRoi() const
Return pointer to JEM RoI collection.
const DataVector< CMMEtSums > * CmmSums() const
Return pointer to CMM energy sums collection.
setWord1 uint16_t
setEventNumber uint32_t

◆ convertBs()

StatusCode LVL1BS::JepRoiByteStreamV1Tool::convertBs ( const IROBDataProviderSvc::VROBFRAG & robFrags,
DataVector< LVL1::JEMRoI > * jeCollection,
LVL1::CMMRoI * cmCollection ) const
private

Convert bytestream to given container type.

Definition at line 452 of file JepRoiByteStreamV1Tool.cxx.

456{
457 const bool debug = msgLvl(MSG::DEBUG);
458 if (debug) msg(MSG::DEBUG);
459
460 // Loop over ROB fragments
461
462 int robCount = 0;
463 std::set<uint32_t> dupCheck;
464 std::set<uint32_t> dupRoiCheck;
465 ROBIterator rob = robFrags.begin();
466 ROBIterator robEnd = robFrags.end();
467 for (; rob != robEnd; ++rob) {
468
469 if (debug) {
470 ++robCount;
471 msg() << "Treating ROB fragment " << robCount << endmsg;
472 }
473
474 // Skip fragments with ROB status errors
475
476 uint32_t robid = (*rob)->source_id();
477 if ((*rob)->nstatus() > 0) {
478 ROBPointer robData;
479 (*rob)->status(robData);
480 if (*robData != 0) {
481 m_errorTool->robError(robid, *robData);
482 if (debug) msg() << "ROB status error - skipping fragment" << endmsg;
483 continue;
484 }
485 }
486
487 // Skip duplicate fragments
488
489 if (!dupCheck.insert(robid).second) {
491 if (debug) msg() << "Skipping duplicate ROB fragment" << endmsg;
492 continue;
493 }
494
495 // Unpack ROD data (slinks)
496
497 RODPointer payloadBeg;
499 RODPointer payloadEnd;
500 (*rob)->rod_data(payloadBeg);
501 payloadEnd = payloadBeg + (*rob)->rod_ndata();
502 payload = payloadBeg;
503 if (payload == payloadEnd) {
504 if (debug) msg() << "ROB fragment empty" << endmsg;
505 continue;
506 }
507
508 // Check identifier
509 const uint32_t sourceID = (*rob)->rod_source_id();
510 if (m_srcIdMap.getRobID(sourceID) != robid ||
511 m_srcIdMap.subDet(sourceID) != m_subDetector ||
512 m_srcIdMap.daqOrRoi(sourceID) != 1 ||
513 (m_srcIdMap.slink(sourceID) != 0 && m_srcIdMap.slink(sourceID) != 2) ||
514 m_srcIdMap.crate(sourceID) < m_crateOffsetHw ||
515 m_srcIdMap.crate(sourceID) >= m_crateOffsetHw + m_crates) {
517 if (debug) {
518 msg() << "Wrong source identifier in data: "
519 << MSG::hex << sourceID << MSG::dec << endmsg;
520 }
521 continue;
522 }
523
524 // Check minor version
525 const int minorVersion = (*rob)->rod_version() & 0xffff;
526 if (minorVersion > m_srcIdMap.minorVersionPreLS1()) {
527 if (debug) msg() << "Skipping post-LS1 data" << endmsg;
528 continue;
529 }
530 const int rodCrate = m_srcIdMap.crate(sourceID);
531 if (debug) {
532 msg() << "Treating crate " << rodCrate
533 << " slink " << m_srcIdMap.slink(sourceID) << endmsg;
534 }
535
536 // First word may be User Header
537 if (L1CaloUserHeader::isValid(*payload)) {
538 L1CaloUserHeader userHeader(*payload);
539 userHeader.setVersion(minorVersion);
540 const int headerWords = userHeader.words();
541 if (headerWords != 1) {
543 if (debug) msg() << "Unexpected number of user header words: "
544 << headerWords << endmsg;
545 continue;
546 }
547 for (int i = 0; i < headerWords; ++i) ++payload;
548 }
549
550 // Loop over sub-blocks if there are any
551
552 unsigned int rodErr = L1CaloSubBlock::ERROR_NONE;
553 while (payload != payloadEnd) {
554
556 const int slice = 0;
557 if (CmmSubBlock::cmmBlock(*payload)) {
558 // CMMs
560 CmmJetSubBlock subBlock;
561 payload = subBlock.read(payload, payloadEnd);
562 if (cmCollection != nullptr) {
563 if (subBlock.dataWords() && !subBlock.unpack()) {
564 if (debug) {
565 std::string errMsg(subBlock.unpackErrorMsg());
566 msg() << "CMM-Jet sub-block unpacking failed: "
567 << errMsg << endmsg;
568 }
569 rodErr = subBlock.unpackErrorCode();
570 break;
571 }
572 const LVL1::CMMRoI roi(subBlock.jetEtMap(slice),
573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
574 cmCollection->setRoiWord(roi.jetEtRoiWord());
575 }
576 } else {
577 CmmEnergySubBlock subBlock;
578 payload = subBlock.read(payload, payloadEnd);
579 if (cmCollection != nullptr) {
580 if (subBlock.dataWords() && !subBlock.unpack()) {
581 if (debug) {
582 std::string errMsg(subBlock.unpackErrorMsg());
583 msg() << "CMM-Energy sub-block unpacking failed: "
584 << errMsg << endmsg;
585 }
586 rodErr = subBlock.unpackErrorCode();
587 break;
588 }
589 const LVL1::CMMRoI roi(0, subBlock.sumEtHits(slice),
590 subBlock.missingEtHits(slice),
591 subBlock.missingEtSigHits(slice),
592 subBlock.ex(slice, CmmEnergySubBlock::TOTAL),
593 subBlock.ey(slice, CmmEnergySubBlock::TOTAL),
594 subBlock.et(slice, CmmEnergySubBlock::TOTAL),
595 0, 0, 0, 0,
596 subBlock.exError(slice, CmmEnergySubBlock::TOTAL),
597 subBlock.eyError(slice, CmmEnergySubBlock::TOTAL),
598 subBlock.etError(slice, CmmEnergySubBlock::TOTAL));
599 cmCollection->setRoiWord(roi.energyRoiWord0());
600 cmCollection->setRoiWord(roi.energyRoiWord1());
601 cmCollection->setRoiWord(roi.energyRoiWord2());
602 }
603 }
604 } else {
605 // JEM RoI
606 JemRoiSubBlockV1 subBlock;
607 payload = subBlock.read(payload, payloadEnd);
608 if (jeCollection != nullptr) {
609 if (subBlock.dataWords() && !subBlock.unpack()) {
610 if (debug) {
611 std::string errMsg(subBlock.unpackErrorMsg());
612 msg() << "JEM RoI sub-block unpacking failed: "
613 << errMsg << endmsg;
614 }
615 rodErr = subBlock.unpackErrorCode();
616 break;
617 }
618 for (int frame = 0; frame < 8; ++frame) {
619 for (int forward = 0; forward < 2; ++forward) {
620 const LVL1::JEMRoI roi = subBlock.roi(frame, forward);
621 if (roi.hits() || roi.error()) {
622 jeCollection->push_back(new LVL1::JEMRoI(roi));
623 }
624 }
625 }
626 }
627 }
628 } else {
629 // Just RoI word
630 LVL1::JEMRoI jroi;
631 LVL1::CMMRoI croi;
632 if (jroi.setRoiWord(*payload)) {
633 if (jeCollection != nullptr) {
634 if (jroi.crate() != rodCrate - m_crateOffsetHw) {
635 if (debug) msg() << "Inconsistent RoI crate number: "
636 << jroi.crate() << endmsg;
638 break;
639 }
640 const uint32_t location = (*payload) & 0xfffc0000;
641 if (dupRoiCheck.insert(location).second) {
642 if (jroi.hits() || jroi.error()) {
643 jeCollection->push_back(new LVL1::JEMRoI(*payload));
644 }
645 } else {
646 if (debug) msg() << "Duplicate RoI word "
647 << MSG::hex << *payload << MSG::dec << endmsg;
649 break;
650 }
651 }
652 } else if (croi.setRoiWord(*payload)) {
653 if (cmCollection != nullptr) {
654 uint32_t roiType = (*payload) & 0xf0000000;
655 if ((roiType & 0xe0000000) == 0xa0000000) roiType = 0xa0000000;
656 if (dupRoiCheck.insert(roiType).second) {
657 cmCollection->setRoiWord(*payload);
658 } else {
659 if (debug) msg() << "Duplicate RoI word "
660 << MSG::hex << *payload << MSG::dec << endmsg;
662 break;
663 }
664 }
665 } else {
666 if (debug) msg() << "Invalid RoI word "
667 << MSG::hex << *payload << MSG::dec << endmsg;
669 break;
670 }
671 ++payload;
672 }
673 }
674 if (rodErr != L1CaloSubBlock::ERROR_NONE)
675 m_errorTool->rodError(robid, rodErr);
676 }
677
678 return StatusCode::SUCCESS;
679}
value_type push_back(value_type pElem)
Add an element to the end of the collection.
static bool cmmBlock(uint32_t word)
Determine if header word corresponds to CMM.
static CmmFirmwareCode cmmType(uint32_t word)
CMM differentiation (CMM_CP, CMM_JET, or CMM_ENERGY)
OFFLINE_FRAGMENTS_NAMESPACE::PointerType RODPointer
IROBDataProviderSvc::VROBFRAG::const_iterator ROBIterator
OFFLINE_FRAGMENTS_NAMESPACE::PointerType ROBPointer
static SubBlockWordType wordType(uint32_t word)
Word identification.
static bool isValid(uint32_t word)
Test for valid header word.
bool setRoiWord(uint32_t roiWord)
Set RoI word with ID check.
Definition CMMRoI.cxx:82
bool setRoiWord(uint32_t roiWord)
Set RoI word with ID check.
Definition JEMRoI.cxx:74

◆ declareGaudiProperty()

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

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

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }

◆ declareProperty()

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

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

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

◆ evtStore()

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.

◆ 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::JepRoiByteStreamV1Tool::finalize ( )
overridevirtual

Definition at line 105 of file JepRoiByteStreamV1Tool.cxx.

106{
107 return StatusCode::SUCCESS;
108}

◆ findCmmHits()

const LVL1::CMMJetHits * LVL1BS::JepRoiByteStreamV1Tool::findCmmHits ( int crate,
int dataID,
const CmmHitsMap & cmmHitsMap ) const
private

Find CMM hits for given crate, data ID.

Definition at line 683 of file JepRoiByteStreamV1Tool.cxx.

686{
687 const LVL1::CMMJetHits* hits = 0;
688 CmmHitsMap::const_iterator mapIter;
689 mapIter = cmmHitsMap.find(crate * 100 + dataID);
690 if (mapIter != cmmHitsMap.end()) hits = mapIter->second;
691 return hits;
692}

◆ findCmmSums()

const LVL1::CMMEtSums * LVL1BS::JepRoiByteStreamV1Tool::findCmmSums ( int crate,
int dataID,
const CmmSumsMap & cmmEtMap ) const
private

Find CMM energy sums for given crate, data ID.

Definition at line 696 of file JepRoiByteStreamV1Tool.cxx.

699{
700 const LVL1::CMMEtSums* sums = 0;
701 CmmSumsMap::const_iterator mapIter;
702 mapIter = cmmEtMap.find(crate * 100 + dataID);
703 if (mapIter != cmmEtMap.end()) sums = mapIter->second;
704 return sums;
705}

◆ initialize()

StatusCode LVL1BS::JepRoiByteStreamV1Tool::initialize ( )
overridevirtual

Definition at line 93 of file JepRoiByteStreamV1Tool.cxx.

94{
95 ATH_MSG_INFO( "Initializing " << name() );
96
97 ATH_CHECK( m_errorTool.retrieve() );
98 ATH_CHECK( m_byteStreamCnvSvc.retrieve() );
99
100 return StatusCode::SUCCESS;
101}
#define ATH_MSG_INFO(x)

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

AlgTool InterfaceID.

Definition at line 40 of file JepRoiByteStreamV1Tool.cxx.

41{
43}
static const InterfaceID IID_IJepRoiByteStreamV1Tool("JepRoiByteStreamV1Tool", 1, 1)

◆ makeSourceIDs()

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

Definition at line 398 of file JepRoiByteStreamV1Tool.cxx.

399{
400 std::vector<uint32_t> sourceIDs;
401
402 if (roiDaq) {
404 }
405 else {
407 }
408
409 if (sourceIDs.empty()) {
410 const int maxCrates = m_crates + m_crateOffsetHw;
411 const int maxSlinks = m_srcIdMap.maxSlinks();
412 for (int hwCrate = m_crateOffsetHw; hwCrate < maxCrates; ++hwCrate)
413 {
414 for (int slink = 0; slink < maxSlinks; ++slink)
415 {
416 const int daqOrRoi = 1;
417 const uint32_t rodId = m_srcIdMap.getRodID(hwCrate, slink, daqOrRoi,
419 const uint32_t robId = m_srcIdMap.getRobID(rodId);
420 if (roiDaq)
421 {
422 if (slink < 2) sourceIDs.push_back(robId);
423 }
424 else if (slink >= 2) sourceIDs.push_back(robId);
425 }
426 }
427
428 }
429 return sourceIDs;
430}
const std::vector< uint32_t > & sourceIDs(const std::string &sgKey) const
Return reference to vector with all possible Source Identifiers.

◆ msg()

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ 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();
384 }
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)

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

◆ setupCmmEtMap()

void LVL1BS::JepRoiByteStreamV1Tool::setupCmmEtMap ( const CmmSumsCollection * enCollection,
CmmSumsMap & cmmEtMap ) const
private

Set up CMM energy sums map.

Definition at line 746 of file JepRoiByteStreamV1Tool.cxx.

749{
750 cmmEtMap.clear();
751 if (etCollection) {
752 CmmSumsCollection::const_iterator pos = etCollection->begin();
753 CmmSumsCollection::const_iterator pose = etCollection->end();
754 for (; pos != pose; ++pos) {
755 const LVL1::CMMEtSums* const sums = *pos;
756 const int crate = sums->crate() - m_crateOffsetSw;
757 const int key = crate * 100 + sums->dataID();
758 cmmEtMap.insert(std::make_pair(key, sums));
759 }
760 }
761}
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
int dataID() const
returns data ID
Definition CMMEtSums.cxx:59
int crate() const
Data accessors.
Definition CMMEtSums.cxx:54

◆ setupCmmHitsMap()

void LVL1BS::JepRoiByteStreamV1Tool::setupCmmHitsMap ( const CmmHitsCollection * hitCollection,
CmmHitsMap & cmmHitsMap ) const
private

Set up CMM hits map.

Definition at line 727 of file JepRoiByteStreamV1Tool.cxx.

730{
731 cmmHitsMap.clear();
732 if (hitCollection) {
733 CmmHitsCollection::const_iterator pos = hitCollection->begin();
734 CmmHitsCollection::const_iterator pose = hitCollection->end();
735 for (; pos != pose; ++pos) {
736 const LVL1::CMMJetHits* const hits = *pos;
737 const int crate = hits->crate() - m_crateOffsetSw;
738 const int key = crate * 100 + hits->dataID();
739 cmmHitsMap.insert(std::make_pair(key, hits));
740 }
741 }
742}

◆ setupJemRoiMap()

void LVL1BS::JepRoiByteStreamV1Tool::setupJemRoiMap ( const JemRoiCollection * jeCollection,
JemRoiMap & roiMap ) const
private

Set up JEM RoIs map.

Definition at line 709 of file JepRoiByteStreamV1Tool.cxx.

712{
713 roiMap.clear();
714 if (jeCollection) {
715 JemRoiCollection::const_iterator pos = jeCollection->begin();
716 JemRoiCollection::const_iterator pose = jeCollection->end();
717 for (; pos != pose; ++pos) {
718 const LVL1::JEMRoI* const roi = *pos;
719 const uint32_t key = roi->roiWord();
720 roiMap.insert(std::make_pair(key, roi));
721 }
722 }
723}

◆ sourceIDs()

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

Return reference to vector with all possible Source Identifiers.

Definition at line 432 of file JepRoiByteStreamV1Tool.cxx.

434{
435 const std::string flag("RoIB");
436 const std::string::size_type pos = sgKey.find(flag);
437 const bool roiDaq =
438 (pos == std::string::npos || pos != sgKey.length() - flag.length());
439
440 if (roiDaq) {
441 static const std::vector<uint32_t> sourceIDs = makeSourceIDs(roiDaq);
442 return sourceIDs;
443 }
444 else {
445 static const std::vector<uint32_t> sourceIDsRoIB = makeSourceIDs(roiDaq);
446 return sourceIDsRoIB;
447 }
448}
std::vector< uint32_t > makeSourceIDs(bool roiDaq) const
bool flag
Definition master.py:29

◆ 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 asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ 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) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_byteStreamCnvSvc

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

Definition at line 80 of file JepRoiByteStreamV1Tool.h.

81{ this, "ByteStreamCnvSvc", "ByteStreamCnvSvc" };

◆ m_crateMax

int LVL1BS::JepRoiByteStreamV1Tool::m_crateMax
private

Property: Maximum crate number when writing out bytestream.

Definition at line 137 of file JepRoiByteStreamV1Tool.h.

◆ m_crateMin

int LVL1BS::JepRoiByteStreamV1Tool::m_crateMin
private

Property: Minimum crate number when writing out bytestream.

Definition at line 135 of file JepRoiByteStreamV1Tool.h.

◆ m_crateOffsetHw

int LVL1BS::JepRoiByteStreamV1Tool::m_crateOffsetHw
private

Property: Hardware crate number offset.

Definition at line 121 of file JepRoiByteStreamV1Tool.h.

◆ m_crateOffsetSw

int LVL1BS::JepRoiByteStreamV1Tool::m_crateOffsetSw
private

Property: Software crate number offset.

Definition at line 123 of file JepRoiByteStreamV1Tool.h.

◆ m_crates

const int LVL1BS::JepRoiByteStreamV1Tool::m_crates
private

Number of crates.

Definition at line 129 of file JepRoiByteStreamV1Tool.h.

◆ m_dataFormat

int LVL1BS::JepRoiByteStreamV1Tool::m_dataFormat
private

Property: Data compression format.

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

Property: Error collection tool.

Definition at line 99 of file JepRoiByteStreamV1Tool.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::JepRoiByteStreamV1Tool::m_modules
private

Number of JEM modules per crate.

Definition at line 131 of file JepRoiByteStreamV1Tool.h.

◆ m_slinks

int LVL1BS::JepRoiByteStreamV1Tool::m_slinks
private

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

Definition at line 133 of file JepRoiByteStreamV1Tool.h.

◆ m_sourceIDsProp

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

Property: ROB source IDs.

Definition at line 139 of file JepRoiByteStreamV1Tool.h.

◆ m_sourceIDsRoIBProp

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

Property: ROB source IDs for RoIB.

Definition at line 141 of file JepRoiByteStreamV1Tool.h.

◆ m_srcIdMap

const L1CaloSrcIdMap LVL1BS::JepRoiByteStreamV1Tool::m_srcIdMap
private

Source ID converter.

Definition at line 145 of file JepRoiByteStreamV1Tool.h.

◆ m_subDetector

const eformat::SubDetector LVL1BS::JepRoiByteStreamV1Tool::m_subDetector
private

Sub-detector type.

Definition at line 143 of file JepRoiByteStreamV1Tool.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_version

int LVL1BS::JepRoiByteStreamV1Tool::m_version
private

Property: Sub_block header version.

Definition at line 125 of file JepRoiByteStreamV1Tool.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: