|
ATLAS Offline Software
|
Tool to perform ROB fragments to JEM RoI and CMM RoI, and JEP RoI container to raw data conversions.
More...
#include <JepRoiByteStreamV1Tool.h>
|
| 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. More...
|
|
StatusCode | convert (const IROBDataProviderSvc::VROBFRAG &robFrags, LVL1::CMMRoI *cmCollection) const |
| Convert ROB fragments to CMM RoIs. More...
|
|
StatusCode | convert (const LVL1::JEPRoIBSCollectionV1 *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 JepRoiByteStreamV1Tool.h.
◆ CmmHitsCollection
◆ CmmHitsMap
◆ CmmSumsCollection
◆ CmmSumsMap
◆ JemRoiCollection
◆ JemRoiMap
◆ ROBIterator
◆ ROBPointer
◆ RODPointer
◆ StoreGateSvc_t
◆ JepRoiByteStreamV1Tool()
LVL1BS::JepRoiByteStreamV1Tool::JepRoiByteStreamV1Tool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
Definition at line 47 of file JepRoiByteStreamV1Tool.cxx.
51 m_errorTool(
"LVL1BS::L1CaloErrorByteStreamTool/L1CaloErrorByteStreamTool"),
55 declareInterface<JepRoiByteStreamV1Tool>(
this);
58 "Tool to collect errors for monitoring");
60 "Offset of JEP crate numbers in bytestream");
62 "Offset of JEP crate numbers in RDOs");
66 "ROB fragment source identifiers");
68 "ROB fragment source identifiers");
72 "Format version number in sub-block header");
74 "Format identifier (0-1) in sub-block header");
76 "The number of S-Links per crate");
78 "Minimum crate number, allows partial output");
80 "Maximum crate number, allows partial output");
◆ ~JepRoiByteStreamV1Tool()
LVL1BS::JepRoiByteStreamV1Tool::~JepRoiByteStreamV1Tool |
( |
| ) |
|
|
virtual |
◆ convert() [1/3]
◆ convert() [2/3]
◆ convert() [3/3]
Convert JEP RoI Container to bytestream.
Definition at line 130 of file JepRoiByteStreamV1Tool.cxx.
139 "JepRoiByteStreamV1") );
148 JemRoiSubBlockV1 subBlock;
157 JemRoiMap::const_iterator mapIter = roiMap.begin();
158 JemRoiMap::const_iterator mapIterEnd = roiMap.end();
179 if (
module % modulesPerSlink == 0) {
180 const int daqOrRoi = 1;
181 const int slink =
module / modulesPerSlink;
183 msg() <<
"Treating crate " << hwCrate
184 <<
" slink " << slink <<
endmsg
192 const L1CaloUserHeader userHeader;
193 theROD->push_back(userHeader.header());
208 for (; mapIter != mapIterEnd; ++mapIter) {
210 if (roi->
crate() < crate)
continue;
211 if (roi->
crate() > crate)
break;
215 if (neutralFormat) subBlock.fillRoi(*roi);
216 else theROD->push_back(roi->
roiWord());
223 if ( !subBlock.pack()) {
224 msg(MSG::ERROR) <<
"JEM RoI sub-block packing failed" <<
endmsg;
225 return StatusCode::FAILURE;
228 msg() <<
"JEM RoI sub-block data words: "
229 << subBlock.dataWords() <<
endmsg;
231 subBlock.write(theROD);
238 if (crate !=
m_crates - 1)
continue;
243 const int timeslices = 1;
248 CmmEnergySubBlock enBlock;
249 const int cmmEnergyVersion = 2;
254 for (
int dataID = 0; dataID < maxDataID; ++dataID) {
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();
284 enBlock.setMissingEtHits(
slice,
et);
286 enBlock.setSumEtHits(
slice,
et);
288 enBlock.setMissingEtSigHits(
slice,
et);
290 enBlock.setSubsums(
slice,
source, ex, ey,
et, exErr, eyErr, etErr);
294 if ( !enBlock.pack()) {
295 msg(MSG::ERROR) <<
"CMM-Energy sub-block packing failed" <<
endmsg;
296 return StatusCode::FAILURE;
299 msg() <<
"CMM-Energy sub-block data words: "
300 << enBlock.dataWords() <<
endmsg;
302 enBlock.write(theROD);
306 CmmJetSubBlock jetBlock;
311 for (
int dataID = 0; dataID < maxDataID; ++dataID) {
344 const unsigned int hits =
ch->Hits();
345 const int errs =
ch->Error();
353 if ( !jetBlock.pack()) {
354 msg(MSG::ERROR) <<
"CMM-Jet sub-block packing failed" <<
endmsg;
355 return StatusCode::FAILURE;
358 msg() <<
"CMM-Jet sub-block data words: "
359 << jetBlock.dataWords() <<
endmsg;
361 jetBlock.write(theROD);
372 roi->
ex(), roi->
ey(), roi->
et(),
376 if (roid.jetEtHits() || roid.jetEtError()) {
377 theROD->push_back(roid.jetEtRoiWord());
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() ||
385 theROD->push_back(roid.energyRoiWord0());
386 theROD->push_back(roid.energyRoiWord1());
387 theROD->push_back(roid.energyRoiWord2());
393 return StatusCode::SUCCESS;
◆ convertBs()
Convert bytestream to given container type.
Definition at line 452 of file JepRoiByteStreamV1Tool.cxx.
463 std::set<uint32_t> dupCheck;
464 std::set<uint32_t> dupRoiCheck;
467 for (; rob != robEnd; ++rob) {
471 msg() <<
"Treating ROB fragment " << robCount <<
endmsg;
476 uint32_t robid = (*rob)->source_id();
477 if ((*rob)->nstatus() > 0) {
479 (*rob)->status(robData);
482 if (
debug)
msg() <<
"ROB status error - skipping fragment" <<
endmsg;
489 if (!dupCheck.insert(robid).second) {
500 (*rob)->rod_data(payloadBeg);
501 payloadEnd = payloadBeg + (*rob)->rod_ndata();
509 const uint32_t sourceID = (*rob)->rod_source_id();
518 msg() <<
"Wrong source identifier in data: "
519 << MSG::hex << sourceID << MSG::dec <<
endmsg;
525 const int minorVersion = (*rob)->rod_version() & 0xffff;
532 msg() <<
"Treating crate " << rodCrate
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: "
547 for (
int i = 0;
i < headerWords; ++
i) ++
payload;
553 while (
payload != payloadEnd) {
560 CmmJetSubBlock subBlock;
562 if (cmCollection !=
nullptr) {
563 if (subBlock.dataWords() && !subBlock.unpack()) {
565 std::string errMsg(subBlock.unpackErrorMsg());
566 msg() <<
"CMM-Jet sub-block unpacking failed: "
569 rodErr = subBlock.unpackErrorCode();
573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
577 CmmEnergySubBlock subBlock;
579 if (cmCollection !=
nullptr) {
580 if (subBlock.dataWords() && !subBlock.unpack()) {
582 std::string errMsg(subBlock.unpackErrorMsg());
583 msg() <<
"CMM-Energy sub-block unpacking failed: "
586 rodErr = subBlock.unpackErrorCode();
590 subBlock.missingEtHits(
slice),
591 subBlock.missingEtSigHits(
slice),
599 cmCollection->
setRoiWord(roi.energyRoiWord0());
600 cmCollection->
setRoiWord(roi.energyRoiWord1());
601 cmCollection->
setRoiWord(roi.energyRoiWord2());
606 JemRoiSubBlockV1 subBlock;
608 if (jeCollection !=
nullptr) {
609 if (subBlock.dataWords() && !subBlock.unpack()) {
611 std::string errMsg(subBlock.unpackErrorMsg());
612 msg() <<
"JEM RoI sub-block unpacking failed: "
615 rodErr = subBlock.unpackErrorCode();
618 for (
int frame = 0; frame < 8; ++frame) {
619 for (
int forward = 0; forward < 2; ++forward) {
633 if (jeCollection !=
nullptr) {
635 if (
debug)
msg() <<
"Inconsistent RoI crate number: "
640 const uint32_t location = (*payload) & 0xfffc0000;
641 if (dupRoiCheck.insert(location).second) {
646 if (
debug)
msg() <<
"Duplicate RoI word "
653 if (cmCollection !=
nullptr) {
654 uint32_t roiType = (*payload) & 0xf0000000;
655 if ((roiType & 0xe0000000) == 0xa0000000) roiType = 0xa0000000;
656 if (dupRoiCheck.insert(roiType).second) {
659 if (
debug)
msg() <<
"Duplicate RoI word "
666 if (
debug)
msg() <<
"Invalid RoI word "
678 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::JepRoiByteStreamV1Tool::finalize |
( |
| ) |
|
|
overridevirtual |
◆ findCmmHits()
Find CMM hits for given crate, data ID.
Definition at line 683 of file JepRoiByteStreamV1Tool.cxx.
688 CmmHitsMap::const_iterator mapIter;
689 mapIter = cmmHitsMap.find(crate * 100 + dataID);
690 if (mapIter != cmmHitsMap.end())
hits = mapIter->second;
◆ findCmmSums()
Find CMM energy sums for given crate, data ID.
Definition at line 696 of file JepRoiByteStreamV1Tool.cxx.
701 CmmSumsMap::const_iterator mapIter;
702 mapIter = cmmEtMap.find(crate * 100 + dataID);
703 if (mapIter != cmmEtMap.end()) sums = mapIter->second;
◆ initialize()
StatusCode LVL1BS::JepRoiByteStreamV1Tool::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::JepRoiByteStreamV1Tool::interfaceID |
( |
| ) |
|
|
static |
◆ makeSourceIDs()
std::vector< uint32_t > LVL1BS::JepRoiByteStreamV1Tool::makeSourceIDs |
( |
bool |
roiDaq | ) |
const |
|
private |
Definition at line 398 of file JepRoiByteStreamV1Tool.cxx.
414 for (
int slink = 0; slink < maxSlinks; ++slink)
416 const int daqOrRoi = 1;
422 if (slink < 2)
sourceIDs.push_back(robId);
424 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::JepRoiByteStreamV1Tool::sourceIDs |
( |
const std::string & |
sgKey | ) |
const |
Return reference to vector with all possible Source Identifiers.
Definition at line 432 of file JepRoiByteStreamV1Tool.cxx.
435 const std::string
flag(
"RoIB");
436 const std::string::size_type
pos = sgKey.find(
flag);
438 (
pos == std::string::npos ||
pos != sgKey.length() -
flag.length());
445 static const std::vector<uint32_t> sourceIDsRoIB =
makeSourceIDs(roiDaq);
446 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_crateMax
int LVL1BS::JepRoiByteStreamV1Tool::m_crateMax |
|
private |
◆ m_crateMin
int LVL1BS::JepRoiByteStreamV1Tool::m_crateMin |
|
private |
◆ m_crateOffsetHw
int LVL1BS::JepRoiByteStreamV1Tool::m_crateOffsetHw |
|
private |
◆ m_crateOffsetSw
int LVL1BS::JepRoiByteStreamV1Tool::m_crateOffsetSw |
|
private |
◆ m_crates
const int LVL1BS::JepRoiByteStreamV1Tool::m_crates |
|
private |
◆ m_dataFormat
int LVL1BS::JepRoiByteStreamV1Tool::m_dataFormat |
|
private |
◆ m_detStore
◆ m_errorTool
◆ m_evtStore
◆ m_modules
const int LVL1BS::JepRoiByteStreamV1Tool::m_modules |
|
private |
◆ m_slinks
int LVL1BS::JepRoiByteStreamV1Tool::m_slinks |
|
private |
◆ m_sourceIDsProp
std::vector<uint32_t> LVL1BS::JepRoiByteStreamV1Tool::m_sourceIDsProp |
|
private |
◆ m_sourceIDsRoIBProp
std::vector<uint32_t> LVL1BS::JepRoiByteStreamV1Tool::m_sourceIDsRoIBProp |
|
private |
◆ m_srcIdMap
◆ m_subDetector
const eformat::SubDetector LVL1BS::JepRoiByteStreamV1Tool::m_subDetector |
|
private |
◆ m_varHandleArraysDeclared
◆ m_version
int LVL1BS::JepRoiByteStreamV1Tool::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)
uint16_t minorVersionPreLS1() const
Return last ROD header minor version for pre-LS1 data.
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.
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
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< JEMRoI > * JemRoi() const
Return pointer to JEM RoI collection.
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.
const CMMRoI * CmmRoi() const
Return pointer to CMM RoIs.
const DataVector< CMMEtSums > * CmmSums() const
Return pointer to CMM energy sums collection.
int crate() const
Return crate number (0-1)
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