|
ATLAS Offline Software
|
Tool to perform ROB fragments to JEM RoI and CMM RoI, and JEP RoI container to raw data conversions.
More...
#include <JepRoiByteStreamTool.h>
|
| JepRoiByteStreamTool (const std::string &type, const std::string &name, const IInterface *parent) |
|
virtual | ~JepRoiByteStreamTool () |
|
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. More...
|
|
StatusCode | convert (const IROBDataProviderSvc::VROBFRAG &robFrags, LVL1::CMMRoI *cmCollection) const |
| Convert ROB fragments to CMM RoIs. More...
|
|
StatusCode | convert (const LVL1::JEPRoIBSCollection *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 |
|
|
StatusCode | convertBs (const IROBDataProviderSvc::VROBFRAG &robFrags, DataVector< LVL1::JEMRoI > *jeCollection, LVL1::CMMRoI *cmCollection) const |
| Convert bytestream to given container type. More...
|
|
const LVL1::CMMJetHits * | findCmmHits (int crate, int dataID, const CmmHitsMap &cmmHitsMap) const |
| Find CMM hits for given crate, data ID. More...
|
|
const LVL1::CMMEtSums * | findCmmSums (int crate, int dataID, const CmmSumsMap &cmmEtMap) const |
| Find CMM energy sums for given crate, data ID. More...
|
|
std::vector< uint32_t > | makeSourceIDs (bool roiDaq) const |
|
void | setupJemRoiMap (const JemRoiCollection *jeCollection, JemRoiMap &roiMap) const |
| Set up JEM RoIs map. More...
|
|
void | setupCmmHitsMap (const CmmHitsCollection *hitCollection, CmmHitsMap &cmmHitsMap) const |
| Set up CMM hits map. More...
|
|
void | setupCmmEtMap (const CmmSumsCollection *enCollection, CmmSumsMap &cmmEtMap) const |
| Set up CMM energy sums 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...
|
|
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 JepRoiByteStreamTool.h.
◆ CmmHitsCollection
◆ CmmHitsMap
◆ CmmSumsCollection
◆ CmmSumsMap
◆ JemRoiCollection
◆ JemRoiMap
◆ ROBIterator
◆ ROBPointer
◆ RODPointer
◆ StoreGateSvc_t
◆ JepRoiByteStreamTool()
LVL1BS::JepRoiByteStreamTool::JepRoiByteStreamTool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
Definition at line 47 of file JepRoiByteStreamTool.cxx.
51 m_errorTool(
"LVL1BS::L1CaloErrorByteStreamTool/L1CaloErrorByteStreamTool"),
55 declareInterface<JepRoiByteStreamTool>(
this);
58 "Offset of JEP crate numbers in bytestream");
60 "Offset of JEP crate numbers in RDOs");
64 "ROB fragment source identifiers");
66 "ROB fragment source identifiers");
70 "Format version number in sub-block header");
72 "Format identifier (0-1) in sub-block header");
74 "The number of S-Links per crate");
◆ ~JepRoiByteStreamTool()
LVL1BS::JepRoiByteStreamTool::~JepRoiByteStreamTool |
( |
| ) |
|
|
virtual |
◆ convert() [1/3]
◆ convert() [2/3]
◆ convert() [3/3]
Convert JEP RoI Container to bytestream.
Sub-block for neutral format
Definition at line 124 of file JepRoiByteStreamTool.cxx.
133 "JepRoiByteStream") );
142 JemRoiSubBlock subBlock;
151 JemRoiMap::const_iterator mapIter = roiMap.begin();
152 JemRoiMap::const_iterator mapIterEnd = roiMap.end();
166 for (
int crate = 0; crate <
m_crates; ++crate) {
173 if (
module % modulesPerSlink == 0) {
174 const int daqOrRoi = 1;
175 const int slink =
module / modulesPerSlink;
177 msg() <<
"Treating crate " << hwCrate
178 <<
" slink " << slink <<
endmsg
186 const L1CaloUserHeader userHeader;
187 theROD->push_back(userHeader.header());
202 for (; mapIter != mapIterEnd; ++mapIter) {
204 if (roi->
crate() < crate)
continue;
205 if (roi->
crate() > crate)
break;
209 if (neutralFormat) subBlock.fillRoi(*roi);
210 else theROD->push_back(roi->
roiWord());
217 if ( !subBlock.pack()) {
218 msg(MSG::ERROR) <<
"JEM RoI sub-block packing failed" <<
endmsg;
219 return StatusCode::FAILURE;
222 msg() <<
"JEM RoI sub-block data words: "
223 << subBlock.dataWords() <<
endmsg;
225 subBlock.write(theROD);
232 if (crate !=
m_crates - 1)
continue;
237 const int timeslices = 1;
242 CmmEnergySubBlock enBlock;
243 const int cmmEnergyVersion = 2;
248 for (
int dataID = 0; dataID < maxDataID; ++dataID) {
274 const unsigned int ex = sums->
Ex();
275 const unsigned int ey = sums->
Ey();
276 const unsigned int et = sums->
Et();
277 const int exErr = sums->
ExError();
278 const int eyErr = sums->
EyError();
279 const int etErr = sums->
EtError();
281 enBlock.setMissingEtHits(
slice,
et);
283 enBlock.setSumEtHits(
slice,
et);
285 enBlock.setMissingEtSigHits(
slice,
et);
287 enBlock.setSubsums(
slice,
source, ex, ey,
et, exErr, eyErr, etErr);
291 if ( !enBlock.pack()) {
292 msg(MSG::ERROR) <<
"CMM-Energy sub-block packing failed" <<
endmsg;
293 return StatusCode::FAILURE;
296 msg() <<
"CMM-Energy sub-block data words: "
297 << enBlock.dataWords() <<
endmsg;
299 enBlock.write(theROD);
303 CmmJetSubBlock jetBlock;
308 for (
int dataID = 0; dataID < maxDataID; ++dataID) {
341 const unsigned int hits =
ch->Hits();
342 const int errs =
ch->Error();
350 if ( !jetBlock.pack()) {
351 msg(MSG::ERROR) <<
"CMM-Jet sub-block packing failed" <<
endmsg;
352 return StatusCode::FAILURE;
355 msg() <<
"CMM-Jet sub-block data words: "
356 << jetBlock.dataWords() <<
endmsg;
358 jetBlock.write(theROD);
369 roi->
ex(), roi->
ey(), roi->
et(),
373 if (roid.jetEtHits() || roid.jetEtError()) {
374 theROD->push_back(roid.jetEtRoiWord());
377 if (roid.sumEtHits() || roid.missingEtHits() ||
378 roid.missingEtSigHits() || roid.ex() || roid.ey() || roid.et() ||
379 roid.sumEtError() || roid.missingEtError() ||
380 roid.missingEtSigError() || roid.exError() || roid.eyError() ||
382 theROD->push_back(roid.energyRoiWord0());
383 theROD->push_back(roid.energyRoiWord1());
384 theROD->push_back(roid.energyRoiWord2());
390 return StatusCode::SUCCESS;
◆ convertBs()
Convert bytestream to given container type.
Definition at line 449 of file JepRoiByteStreamTool.cxx.
460 std::set<uint32_t> dupCheck;
461 std::set<uint32_t> dupRoiCheck;
464 for (; rob != robEnd; ++rob) {
468 msg() <<
"Treating ROB fragment " << robCount <<
endmsg;
473 uint32_t robid = (*rob)->source_id();
474 if ((*rob)->nstatus() > 0) {
476 (*rob)->status(robData);
479 if (
debug)
msg() <<
"ROB status error - skipping fragment" <<
endmsg;
486 if (!dupCheck.insert(robid).second) {
497 (*rob)->rod_data(payloadBeg);
498 payloadEnd = payloadBeg + (*rob)->rod_ndata();
506 const uint32_t sourceID = (*rob)->rod_source_id();
515 msg() <<
"Wrong source identifier in data: "
516 << MSG::hex << sourceID << MSG::dec <<
endmsg;
522 msg() <<
"Treating crate " << rodCrate
528 L1CaloUserHeader userHeader(*
payload);
529 const int minorVersion = (*rob)->rod_version() & 0xffff;
530 userHeader.setVersion(minorVersion);
531 const int headerWords = userHeader.words();
532 if (headerWords != 1) {
534 if (
debug)
msg() <<
"Unexpected number of user header words: "
538 for (
int i = 0;
i < headerWords; ++
i) ++
payload;
544 while (
payload != payloadEnd) {
551 CmmJetSubBlock subBlock;
553 if (cmCollection !=
nullptr) {
554 if (subBlock.dataWords() && !subBlock.unpack()) {
556 std::string errMsg(subBlock.unpackErrorMsg());
557 msg() <<
"CMM-Jet sub-block unpacking failed: "
560 rodErr = subBlock.unpackErrorCode();
564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
568 CmmEnergySubBlock subBlock;
570 if (cmCollection !=
nullptr) {
571 if (subBlock.dataWords() && !subBlock.unpack()) {
573 std::string errMsg(subBlock.unpackErrorMsg());
574 msg() <<
"CMM-Energy sub-block unpacking failed: "
577 rodErr = subBlock.unpackErrorCode();
581 subBlock.missingEtHits(
slice),
582 subBlock.missingEtSigHits(
slice),
590 cmCollection->
setRoiWord(roi.energyRoiWord0());
591 cmCollection->
setRoiWord(roi.energyRoiWord1());
592 cmCollection->
setRoiWord(roi.energyRoiWord2());
597 JemRoiSubBlock subBlock;
599 if (jeCollection !=
nullptr) {
600 if (subBlock.dataWords() && !subBlock.unpack()) {
602 std::string errMsg(subBlock.unpackErrorMsg());
603 msg() <<
"JEM RoI sub-block unpacking failed: "
606 rodErr = subBlock.unpackErrorCode();
609 for (
int frame = 0; frame < 8; ++frame) {
610 for (
int forward = 0; forward < 2; ++forward) {
624 if (jeCollection !=
nullptr) {
626 if (
debug)
msg() <<
"Inconsistent RoI crate number: "
631 const uint32_t location = (*payload) & 0xfffc0000;
632 if (dupRoiCheck.insert(location).second) {
637 if (
debug)
msg() <<
"Duplicate RoI word "
644 if (cmCollection !=
nullptr) {
645 uint32_t roiType = (*payload) & 0xf0000000;
646 if ((roiType & 0xe0000000) == 0xa0000000) roiType = 0xa0000000;
647 if (dupRoiCheck.insert(roiType).second) {
650 if (
debug)
msg() <<
"Duplicate RoI word "
657 if (
debug)
msg() <<
"Invalid RoI word "
669 return StatusCode::SUCCESS;
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
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::JepRoiByteStreamTool::finalize |
( |
| ) |
|
|
overridevirtual |
◆ findCmmHits()
Find CMM hits for given crate, data ID.
Definition at line 674 of file JepRoiByteStreamTool.cxx.
679 CmmHitsMap::const_iterator mapIter;
680 mapIter = cmmHitsMap.find(crate * 100 + dataID);
681 if (mapIter != cmmHitsMap.end())
hits = mapIter->second;
◆ findCmmSums()
Find CMM energy sums for given crate, data ID.
Definition at line 687 of file JepRoiByteStreamTool.cxx.
692 CmmSumsMap::const_iterator mapIter;
693 mapIter = cmmEtMap.find(crate * 100 + dataID);
694 if (mapIter != cmmEtMap.end()) sums = mapIter->second;
◆ initialize()
StatusCode LVL1BS::JepRoiByteStreamTool::initialize |
( |
| ) |
|
|
overridevirtual |
◆ inputHandles()
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::JepRoiByteStreamTool::interfaceID |
( |
| ) |
|
|
static |
◆ makeSourceIDs()
std::vector< uint32_t > LVL1BS::JepRoiByteStreamTool::makeSourceIDs |
( |
bool |
roiDaq | ) |
const |
|
private |
Definition at line 395 of file JepRoiByteStreamTool.cxx.
411 for (
int slink = 0; slink < maxSlinks; ++slink)
413 const int daqOrRoi = 1;
419 if (slink < 2)
sourceIDs.push_back(robId);
421 else if (slink >= 2)
sourceIDs.push_back(robId);
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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()
◆ renounceArray()
◆ setupCmmEtMap()
◆ setupCmmHitsMap()
◆ setupJemRoiMap()
◆ sourceIDs()
const std::vector< uint32_t > & LVL1BS::JepRoiByteStreamTool::sourceIDs |
( |
const std::string & |
sgKey | ) |
const |
Return reference to vector with all possible Source Identifiers.
Definition at line 429 of file JepRoiByteStreamTool.cxx.
432 const std::string
flag(
"RoIB");
433 const std::string::size_type
pos = sgKey.find(
flag);
435 (
pos == std::string::npos ||
pos != sgKey.length() -
flag.length());
442 static const std::vector<uint32_t> sourceIDsRoIB =
makeSourceIDs(roiDaq);
443 return sourceIDsRoIB;
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_byteStreamCnvSvc
◆ m_crateOffsetHw
int LVL1BS::JepRoiByteStreamTool::m_crateOffsetHw |
|
private |
◆ m_crateOffsetSw
int LVL1BS::JepRoiByteStreamTool::m_crateOffsetSw |
|
private |
◆ m_crates
const int LVL1BS::JepRoiByteStreamTool::m_crates |
|
private |
◆ m_dataFormat
int LVL1BS::JepRoiByteStreamTool::m_dataFormat |
|
private |
◆ m_detStore
◆ m_errorTool
◆ m_evtStore
◆ m_modules
const int LVL1BS::JepRoiByteStreamTool::m_modules |
|
private |
◆ m_slinks
int LVL1BS::JepRoiByteStreamTool::m_slinks |
|
private |
◆ m_sourceIDsProp
std::vector<uint32_t> LVL1BS::JepRoiByteStreamTool::m_sourceIDsProp |
|
private |
◆ m_sourceIDsRoIBProp
std::vector<uint32_t> LVL1BS::JepRoiByteStreamTool::m_sourceIDsRoIBProp |
|
private |
◆ m_srcIdMap
◆ m_subDetector
const eformat::SubDetector LVL1BS::JepRoiByteStreamTool::m_subDetector |
|
private |
◆ m_varHandleArraysDeclared
◆ m_version
int LVL1BS::JepRoiByteStreamTool::m_version |
|
private |
◆ m_vhka
The documentation for this class was generated from the following files:
static CmmFirmwareCode cmmType(uint32_t word)
CMM differentiation (CMM_CP, CMM_JET, or CMM_ENERGY)
int slink(uint32_t code) const
Return slink from unpacked moduleID.
Extra patterns decribing particle interation process.
Template class for assembling a full atlas raw event from subfragments.
DataModel_detail::const_iterator< DataVector > const_iterator
Standard const_iterator.
int exError() const
Return Ex error flags (bit 0 Overflow, bit 1 Parity)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
int sumEtHits() const
Return Sum-ET hits.
CMMEtSums object stores Et sums from the Energy CMMs.
static bool cmmBlock(uint32_t word)
Determine if header word corresponds to CMM.
const DataVector< JEMRoI > * JemRoi() const
Return pointer to JEM RoI collection.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool msgLvl(const MSG::Level lvl) const
uint32_t getRobID(uint32_t rod_id) const
Make a ROB Source ID from a ROD source ID.
unsigned int Et() const
For triggered time slice.
int etError() const
Return Et error flags (bit 0 Overflow, bit 1 Parity)
virtual void setOwner(IDataHandleHolder *o)=0
int dataID() const
returns data ID
int jetEtError() const
Return Jet-ET error flag (bit 1 Parity)
unsigned int Ex() const
returns module Ex sum for peak sample
int EyError() const
returns module Ey sum error for peak sample
const DataVector< CMMEtSums > * CmmSums() const
Return pointer to CMM energy sums collection.
unsigned int Ey() const
returns module Ey sum for peak sample
int error() const
Return error flags (bit 0 Saturation, bit 1 Parity)
int EtError() const
returns module ET sum error for peak sample
int hits() const
Return Jet hit map (8 bits Main or 4 bits Forward)
int sumEtError() const
Return Sum-ET error flag (bit 1 Parity)
int crate(uint32_t code) const
Return crate from unpacked moduleID.
int jetEtHits() const
Return Jet-ET hits.
const DataVector< CMMJetHits > * CmmHits() const
Return pointer to CMM hit sums collection.
int ExError() const
returns module Ex sum error for peak sample
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
static SubBlockWordType wordType(uint32_t word)
Word identification.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
int missingEtHits() const
Return Missing-ET hits.
uint16_t minorVersion() const
Return ROD header minor version to use when writing BS.
int crate() const
Return crate number (0-1)
const CMMRoI * CmmRoi() const
Return pointer to CMM RoIs.
value_type push_back(value_type pElem)
Add an element to the end of the collection.
int crate() const
Data accessors.
int eyError() const
Return Ey error flags (bit 0 Overflow, bit 1 Parity)
eformat::SubDetector subDet(uint32_t code) const
Return sub-detector for given ID.
int missingEtSigError() const
Return Missing-ET-Sig error flag (bit 1 Parity)
void setRodMinorVersion(uint16_t m)
change the ROD minor version
int jem() const
Return JEM number (0-15)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
CMMJetHits class stores Jet hit multiplicities received by and read out from the Jet CMMs.
bool setRoiWord(uint32_t roiWord)
Set RoI word with ID check.
uint32_t getRodID(int crate, int slink, int daqOrRoi, eformat::SubDetector subdet) const
Make a ROD Source ID.
int missingEtError() const
Return Missing-ET error flag (bit 1 Parity)
std::vector< uint32_t > RODDATA
ROD data as a vector of unsigned int.
int missingEtSigHits() const
Return Missing-ET-Sig hits.
int maxSlinks() const
Return the maximum possible number of slinks.
bool setRoiWord(uint32_t roiWord)
Set RoI word with ID check.
uint32_t roiWord() const
Return packed RoI word.
int daqOrRoi(uint32_t code) const
Return daqOrRoi from unpacked moduleID.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
RODDATA * getRodData(uint32_t id)
get a block of ROD data