|
ATLAS Offline Software
|
ROBDataProvider service for retrieving and serving ROB data in HLT online.
More...
#include <HltROBDataProviderSvc.h>
|
| HltROBDataProviderSvc (const std::string &name, ISvcLocator *pSvcLocator) |
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | finalize () override |
|
virtual void | addROBData (const EventContext &, const std::vector< uint32_t > &, const std::string_view callerName="UNKNOWN") override |
| Signal ROB fragments which should be considered for prefetching in online running. More...
|
|
virtual void | setNextEvent (const EventContext &, const std::vector< ROBF > &) override |
| Start a new event with a set of ROB fragments, e.g. from LVL1 result, in online and add the fragments to the ROB cache. More...
|
|
virtual void | setNextEvent (const EventContext &, const RawEvent *) override |
| Start a new event with a full event fragment and add all ROB fragments in to the ROB cache. More...
|
|
virtual void | getROBData (const EventContext &, const std::vector< uint32_t > &, std::vector< const ROBF * > &, const std::string_view callerName="UNKNOWN") override |
| Retrieve ROB fragments for given ROB ids from the ROB cache. More...
|
|
virtual const RawEvent * | getEvent (const EventContext &) override |
| Retrieve the full event fragment. More...
|
|
virtual void | setEventStatus (const EventContext &, uint32_t) override |
| Store the status for the event. More...
|
|
virtual uint32_t | getEventStatus (const EventContext &) override |
| Retrieve the status for the event. More...
|
|
virtual void | processCachedROBs (const EventContext &, const std::function< void(const ROBF *)> &) const override |
| Apply a function to all ROBs in the cache. More...
|
|
virtual bool | isEventComplete (const EventContext &) const override |
| Flag to check if all event data have been retrieved. More...
|
|
virtual int | collectCompleteEventData (const EventContext &, const std::string_view callerName="UNKNOWN") override |
| retrieve in online running all ROBs for the event from the readout system. Only those ROBs are retrieved which are not already in the cache More...
|
|
|
typedef tbb::concurrent_unordered_map< uint32_t, ROBF > | ROBMAP |
| map for all the ROB fragments More...
|
|
typedef std::vector< std::pair< int, int > > | ArrayPairIntType |
| vector of Source ids and status words to be ignored for the ROB map More...
|
|
typedef std::map< uint32_t, std::vector< uint32_t > > | FilterRobMap |
| map of full ROB Source ids and status words to be ignored for the ROB map More...
|
|
typedef std::map< eformat::SubDetector, std::vector< uint32_t > > | FilterSubDetMap |
| map of Sub Det Source ids and status words to be ignored for the ROB map More...
|
|
ROBDataProvider service for retrieving and serving ROB data in HLT online.
Definition at line 38 of file HltROBDataProviderSvc.h.
◆ ArrayPairIntType
◆ FilterRobMap
◆ FilterSubDetMap
◆ ROBF
◆ ROBMAP
◆ HltROBDataProviderSvc()
HltROBDataProviderSvc::HltROBDataProviderSvc |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ addROBData()
void HltROBDataProviderSvc::addROBData |
( |
const EventContext & |
context, |
|
|
const std::vector< uint32_t > & |
robIds, |
|
|
const std::string_view |
callerName = "UNKNOWN" |
|
) |
| |
|
overridevirtual |
Signal ROB fragments which should be considered for prefetching in online running.
— Implementation of IROBDataProviderSvc interface —
Signal ROB fragments which should be considered for prefetching in online running
Definition at line 201 of file HltROBDataProviderSvc.cxx.
204 ATH_MSG_VERBOSE(
"start of " << __FUNCTION__ <<
": Number of ROB Ids to add = " << robIds.size()
205 <<
" caller name = " << callerName);
209 std::vector<uint32_t> robIds_missing ;
212 std::vector<const ROBF*> robFragments_inCache ;
218 if (!robIds_missing.empty()) {
219 ATH_MSG_DEBUG( __FUNCTION__ <<
": Number of ROB Ids to reserve with DCM = " << robIds_missing.size());
226 auto mon_robres_nROBs =
Monitored::Scalar(
"NUMBER_ROBReserveData",robIds_missing.size());
230 <<
"Failed to reserve ROB data, caught an unexpected exception: " << ex.what());
233 <<
"Failed to reserve ROB data, caught an unexpected exception.");
◆ collectCompleteEventData()
int HltROBDataProviderSvc::collectCompleteEventData |
( |
const EventContext & |
context, |
|
|
const std::string_view |
callerName = "UNKNOWN" |
|
) |
| |
|
overridevirtual |
retrieve in online running all ROBs for the event from the readout system. Only those ROBs are retrieved which are not already in the cache
Definition at line 475 of file HltROBDataProviderSvc.cxx.
477 ATH_MSG_VERBOSE(
"start of " << __FUNCTION__ <<
" caller name = " << callerName);
482 std::lock_guard<std::mutex> lock( cache->eventCache_mtx );
485 if (cache->isEventComplete)
return 0;
487 typedef std::vector<hltinterface::DCM_ROBInfo> ROBInfoVec;
488 ROBInfoVec vRobInfos ;
492 vRobInfos.reserve( MAX_ROBFRAGMENTS ) ;
500 ATH_MSG_DEBUG( __FUNCTION__ <<
": Number of received ROB Ids = " << vRobInfos.size() );
502 auto mon_col_nROBs =
Monitored::Scalar(
"NUMBER_CollectAllROBs",vRobInfos.size());
506 <<
"Failed to collect complete event, caught an unexpected exception: " << ex.what()
507 <<
". Throwing hltonl::Exception::EventSourceCorrupted" );
511 <<
"Failed to collect complete event, caught an unexpected exception. "
512 <<
"Throwing hltonl::Exception::EventSourceCorrupted" );
517 std::vector<ROBF> robFragments_missing;
518 robFragments_missing.reserve( vRobInfos.size() );
519 for(ROBInfoVec::const_iterator
it=vRobInfos.begin();
it!=vRobInfos.end(); ++
it) {
520 ATH_MSG_VERBOSE(__FUNCTION__ <<
" ROB Id = 0x" << MSG::hex <<
it->robFragment.source_id() << MSG::dec
521 <<
" retrieved from DCM for (global Id, L1 Id) = (" << cache->globalEventNumber <<
"," << cache->currentLvl1ID <<
")" );
522 robFragments_missing.push_back(
it->robFragment );
528 cache->isEventComplete =
true;
530 return vRobInfos.size();
◆ eventCache_addRobData()
void HltROBDataProviderSvc::eventCache_addRobData |
( |
EventCache * |
cache, |
|
|
std::vector< ROBF > && |
robFragments, |
|
|
std::optional< std::reference_wrapper< std::set< uint32_t >>> |
robIds_ignored = std::nullopt |
|
) |
| |
|
private |
method to add ROB fragments to an event cache in a slot input: pointer to cache vector of ROB fragments to add to the cache output: set of ignored ROBs
Definition at line 651 of file HltROBDataProviderSvc.cxx.
654 ATH_MSG_VERBOSE(
"start of " << __FUNCTION__ <<
" number of ROB fragments to add = " << robFragments.size());
656 for (
const ROBF& rob : robFragments) {
660 ATH_MSG_VERBOSE(__FUNCTION__ <<
" Id = 0x" << std::hex <<
id << std::dec );
663 if ( (eformat::helper::SourceIdentifier(
id).module_id() != 0) &&
664 (eformat::helper::SourceIdentifier(
id).subdetector_id() == eformat::TDAQ_LVL2) ) {
665 id = eformat::helper::SourceIdentifier(eformat::helper::SourceIdentifier(
id).subdetector_id(),0).code();
667 ATH_MSG_ERROR(__FUNCTION__ <<
" Inconsistent flag for masking L2/EF module IDs");
670 }
else if ( (eformat::helper::SourceIdentifier(
id).module_id() != 0) &&
671 (eformat::helper::SourceIdentifier(
id).subdetector_id() == eformat::TDAQ_EVENT_FILTER) &&
673 id = eformat::helper::SourceIdentifier(eformat::helper::SourceIdentifier(
id).subdetector_id(),0).code();
677 { ROBMAP::const_iterator
it = cache->robmap.find(
id);
678 if (
it != cache->robmap.end()) {
679 ATH_MSG_VERBOSE(__FUNCTION__ <<
" Duplicate ROB Id 0x" << MSG::hex <<
id << MSG::dec
680 <<
" found for (global Id, L1 Id) = (" << cache->globalEventNumber <<
"," << cache->currentLvl1ID <<
")" );
687 if (rob.nstatus() > 0) {
689 rob.status(it_status);
691 ATH_MSG_VERBOSE(__FUNCTION__ <<
" ROB Id = 0x" << MSG::hex <<
id << std::setfill(
'0')
692 <<
" with Generic Status Code = 0x" << std::setw(4) << tmpstatus.generic()
693 <<
" and Specific Status Code = 0x" << std::setw(4) << tmpstatus.specific() << MSG::dec
694 <<
" removed for (global Id, L1 Id) = (" << cache->globalEventNumber <<
"," << cache->currentLvl1ID <<
")" );
696 if (robIds_ignored) {
697 robIds_ignored->get().insert(
id);
704 ATH_MSG_VERBOSE(__FUNCTION__ <<
" Empty ROB Id = 0x" << MSG::hex <<
id << MSG::dec
705 <<
" removed for (global Id, L1 Id) = (" << cache->globalEventNumber <<
"," << cache->currentLvl1ID <<
")" );
710 { cache->robmap.insert(std::make_pair(
id,std::move(rob))); }
◆ eventCache_checkRobListToCache()
void HltROBDataProviderSvc::eventCache_checkRobListToCache |
( |
EventCache * |
cache, |
|
|
const std::vector< uint32_t > & |
robIds_toCheck, |
|
|
std::vector< const ROBF * > & |
robFragments_inCache, |
|
|
std::vector< uint32_t > & |
robIds_missing, |
|
|
std::optional< std::reference_wrapper< std::set< uint32_t >>> |
robIds_disabled = std::nullopt |
|
) |
| |
|
private |
method to compare a list of ROB Ids to the ones in an event cache in a slot input: pointer to cache vector of ROB Ids to compare to existing ones in cache output: vector of ROB fragments available already in cache vector of ROB Ids missing in cache set of disabled ROBs
Definition at line 596 of file HltROBDataProviderSvc.cxx.
601 ATH_MSG_VERBOSE(
"start of " << __FUNCTION__ <<
" number of ROB Ids to check = " << robIds_toCheck.size());
604 robFragments_inCache.clear();
605 robIds_missing.clear();
608 robFragments_inCache.reserve( robIds_toCheck.size() );
609 robIds_missing.reserve( robIds_toCheck.size() );
612 for (
uint32_t id : robIds_toCheck) {
616 if (missing_it != robIds_missing.end()) {
617 ATH_MSG_VERBOSE(__FUNCTION__ <<
" ROB Id : 0x" << MSG::hex <<
id << MSG::dec <<
" is already on the list of missing IDs.");
622 { ROBMAP::const_iterator map_it = cache->robmap.find(
id);
623 if (map_it != cache->robmap.end()) {
624 ATH_MSG_VERBOSE(__FUNCTION__ <<
" ROB Id 0x" << MSG::hex <<
id << MSG::dec
625 <<
" found for (global Id, L1 Id) = (" << cache->globalEventNumber <<
"," << cache->currentLvl1ID <<
")" );
626 robFragments_inCache.push_back( &(map_it->second) );
633 std::vector<uint32_t>::const_iterator rob_enabled_it =
636 ATH_MSG_VERBOSE(__FUNCTION__ <<
" ROB Id : 0x" << MSG::hex <<
id << MSG::dec
637 <<
" will be not added, since it is not on the list of enabled ROBs.");
638 if (robIds_disabled) {
639 robIds_disabled->get().insert(
id);
646 ATH_MSG_VERBOSE(__FUNCTION__ <<
" ROB Id : 0x" << MSG::hex <<
id << MSG::dec <<
" is missing ");
647 robIds_missing.push_back(
id ) ;
◆ eventCache_clear()
void HltROBDataProviderSvc::eventCache_clear |
( |
EventCache * |
cache | ) |
|
|
private |
method to clear an event cache in a slot input: pointer to cache
Definition at line 585 of file HltROBDataProviderSvc.cxx.
588 cache->event =
nullptr;
589 cache->currentLvl1ID = 0;
590 cache->globalEventNumber = 0;
591 cache->eventStatus = 0;
592 cache->isEventComplete =
false;
593 { cache->robmap.clear(); }
◆ finalize()
StatusCode HltROBDataProviderSvc::finalize |
( |
| ) |
|
|
overridevirtual |
◆ getEvent()
◆ getEventStatus()
uint32_t HltROBDataProviderSvc::getEventStatus |
( |
const EventContext & |
context | ) |
|
|
overridevirtual |
◆ getROBData()
void HltROBDataProviderSvc::getROBData |
( |
const EventContext & |
context, |
|
|
const std::vector< uint32_t > & |
robIds, |
|
|
std::vector< const ROBF * > & |
robFragments, |
|
|
const std::string_view |
callerName = "UNKNOWN" |
|
) |
| |
|
overridevirtual |
Retrieve ROB fragments for given ROB ids from the ROB cache.
Definition at line 304 of file HltROBDataProviderSvc.cxx.
311 std::lock_guard<std::mutex> lock( cache->eventCache_mtx );
315 ATH_MSG_VERBOSE(
"start of " << __FUNCTION__ <<
": Number of ROB Ids to get = " << robIds.size()
316 <<
" caller name = " << callerName);
319 std::vector<uint32_t> robIds_missing ;
325 if (robIds_missing.empty()) {
326 ATH_MSG_DEBUG( __FUNCTION__ <<
": All requested ROB Ids were found in the cache. ");
331 ATH_MSG_DEBUG( __FUNCTION__ <<
": Number of ROB Ids to retrieve with DCM = " << robIds_missing.size());
333 typedef std::vector<hltinterface::DCM_ROBInfo> ROBInfoVec;
334 ROBInfoVec vRobInfos;
337 vRobInfos.reserve( robIds_missing.size() ) ;
347 <<
"Failed to collect ROBs, caught an unexpected exception: " << ex.what()
348 <<
". Throwing hltonl::Exception::EventSourceCorrupted" );
352 <<
"Failed to collect ROBs, caught an unexpected exception. "
353 <<
"Throwing hltonl::Exception::EventSourceCorrupted" );
358 std::vector<ROBF> robFragments_missing;
359 robFragments_missing.reserve( vRobInfos.size() );
360 for(ROBInfoVec::const_iterator
it=vRobInfos.begin();
it!=vRobInfos.end(); ++
it) {
361 ATH_MSG_DEBUG(__FUNCTION__ <<
" ROB Id = 0x" << MSG::hex <<
it->robFragment.source_id() << MSG::dec
362 <<
" retrieved from DCM for (global Id, L1 Id) = (" << cache->globalEventNumber <<
"," << cache->currentLvl1ID <<
")" );
363 robFragments_missing.push_back(
it->robFragment );
370 for (
const ROBF* robFrag : robFragments) {
375 std::set<uint32_t> robIds_ignored;
379 for (
const hltinterface::DCM_ROBInfo& robInfo : vRobInfos) {
383 if (robIds_ignored.find(robInfo.robFragment.source_id()) != robIds_ignored.end()) {
394 std::set<uint32_t> robIds_disabled;
398 for (
uint32_t robId : robIds_disabled) {
◆ initialize()
StatusCode HltROBDataProviderSvc::initialize |
( |
| ) |
|
|
overridevirtual |
Definition at line 30 of file HltROBDataProviderSvc.cxx.
32 ATH_MSG_INFO(
"HltROBDataProviderSvc::" << __FUNCTION__ <<
": name = " <<
name());
64 if (tmpsrc.human_detector() !=
"UNKNOWN") {
72 if (tmpsrc.human_detector() !=
"UNKNOWN") {
81 eformat::helper::SourceIdentifier tmpsrc(
it.first);
82 ATH_MSG_INFO(
" RobId=0x" << MSG::hex <<
it.first <<
" -> in Sub Det = " << tmpsrc.human_detector());
84 for (
auto it_status:
it.second) {
87 << MSG::hex << std::setfill(
'0' ) << std::setw(8) << tmpstatus.code()
88 <<
" Generic Part=0x" << std::setw(4) << tmpstatus.generic()
89 <<
" Specific Part=0x" << std::setw(4) << tmpstatus.specific() << MSG::dec);
96 eformat::helper::SourceIdentifier tmpsrc(
it.first, 0);
97 ATH_MSG_INFO(
" SubDetId=0x" << MSG::hex <<
it.first <<
" -> " << tmpsrc.human_detector());
98 for (
auto it_status :
it.second) {
101 << MSG::hex << std::setfill(
'0' ) << std::setw(8) << tmpstatus.code()
102 <<
" Generic Part=0x" << std::setw(4) << tmpstatus.generic()
103 <<
" Specific Part=0x" << std::setw(4) << tmpstatus.specific() << MSG::dec);
108 bool robOKSconfigFound =
false;
112 if ((jobOptionsSvc.retrieve()).isFailure()) {
115 if (jobOptionsSvc->has(
"DataFlowConfig.DF_Enabled_ROB_IDs") &&
116 m_enabledROBs.fromString(jobOptionsSvc->get(
"DataFlowConfig.DF_Enabled_ROB_IDs")).isSuccess()) {
117 robOKSconfigFound =
true;
119 << MSG::dec <<
m_enabledROBs.value().size() <<
" enabled ROB IDs.");
129 ATH_MSG_INFO(
" ---> The list of enabled ROBs has size = 0. No check will be performed ");
133 <<
". It was read from the partition database." );
136 <<
". It was read from job options." );
152 ATH_MSG_INFO(
" The following sub-detectors or sub-detector groups are configured for prefetching : Number = "
156 eformat::SubDetector
sd(
static_cast<eformat::SubDetector
>(
it));
157 eformat::helper::SourceIdentifier tmpsrc(
sd, 0);
158 ATH_MSG_INFO(
" SubDetId = 0x" << MSG::hex << std::setw(2) << (
int)
it << MSG::dec <<
" -> Group : "
159 << tmpsrc.human_group()
160 <<
" -> SubDetector : " << tmpsrc.human_detector() );
162 eformat::SubDetectorGroup sg(
static_cast<eformat::SubDetectorGroup
>(
it));
163 ATH_MSG_INFO(
" SubDetGroup = 0x" << MSG::hex << std::setw(1) << (
int)
it << MSG::dec <<
" -> Group : "
164 << eformat::helper::SubDetectorGroupDictionary.
string(sg));
170 eformat::helper::SourceIdentifier tmpsrc(rob);
189 return(StatusCode::SUCCESS);
◆ isEventComplete()
bool HltROBDataProviderSvc::isEventComplete |
( |
const EventContext & |
context | ) |
const |
|
overridevirtual |
◆ processCachedROBs()
void HltROBDataProviderSvc::processCachedROBs |
( |
const EventContext & |
context, |
|
|
const std::function< void(const ROBF *)> & |
fn |
|
) |
| const |
|
overridevirtual |
◆ robmap_filterRobWithStatus()
bool HltROBDataProviderSvc::robmap_filterRobWithStatus |
( |
const ROBF * |
rob | ) |
|
|
private |
method to filter ROBs with given Status code
Definition at line 534 of file HltROBDataProviderSvc.cxx.
547 if (rob->nstatus() == 0) {
548 rob_it_status = &null_status;
551 rob->status(rob_it_status);
555 eformat::helper::SourceIdentifier tmpsrc(rob->rob_source_id());
560 for (
auto it_status: (*map_it_rob).second) {
561 if (*rob_it_status == it_status) {
562 ATH_MSG_VERBOSE(__FUNCTION__ <<
" ROB Id = 0x" << MSG::hex << tmpsrc.code()
563 <<
" with status = 0x" << *rob_it_status << MSG::dec
564 <<
" removed due to ROB filter rule.");
573 for (
auto it_status: (*map_it_subdet).second) {
574 if (*rob_it_status == it_status) {
575 ATH_MSG_VERBOSE(__FUNCTION__ <<
" ROB Id = 0x" << MSG::hex << tmpsrc.code()
576 <<
" with status = 0x" << *rob_it_status << MSG::dec
577 <<
" removed due to SubDet filter rule.");
◆ robmap_getRobData()
method to get ROB fragment from ROBF input: context ROB fragment to be parsed ROB history status
Definition at line 426 of file HltROBDataProviderSvc.cxx.
429 robData.rob_size = robFrag.fragment_size_word();
430 robData.rob_status_word = robFrag.nstatus() ? robFrag.status()[0] : 0;
431 robData.rob_history = robStatus;
◆ setEventStatus()
void HltROBDataProviderSvc::setEventStatus |
( |
const EventContext & |
context, |
|
|
uint32_t |
status |
|
) |
| |
|
overridevirtual |
◆ setNextEvent() [1/2]
void HltROBDataProviderSvc::setNextEvent |
( |
const EventContext & |
context, |
|
|
const RawEvent * |
re |
|
) |
| |
|
overridevirtual |
Start a new event with a full event fragment and add all ROB fragments in to the ROB cache.
Definition at line 246 of file HltROBDataProviderSvc.cxx.
261 cache->currentLvl1ID =
re->lvl1_id();
263 cache->globalEventNumber =
re->global_id();
273 size_t number_robs =
re->children(robF,MAX_ROBFRAGMENTS);
274 if (number_robs == MAX_ROBFRAGMENTS) {
275 ATH_MSG_ERROR(
"ROB buffer overflow: ROBs found = " << number_robs
276 <<
" Max. number of ROBs allowed = " << MAX_ROBFRAGMENTS);
278 std::vector<ROBF> rob_fragments;
279 rob_fragments.reserve(number_robs);
281 for (
size_t irob = 0; irob < number_robs; irob++) {
282 rob_fragments.push_back(
ROBF(robF[irob]));
288 ATH_MSG_DEBUG(
" current [global id, LVL1 id] = [" << cache->globalEventNumber <<
"," << cache->currentLvl1ID <<
"]" );
289 ATH_MSG_DEBUG(
" number of received ROBs = " << rob_fragments.size() );
290 ATH_MSG_DEBUG(
" size of ROB cache = " << cache->robmap.size() );
◆ setNextEvent() [2/2]
void HltROBDataProviderSvc::setNextEvent |
( |
const EventContext & |
context, |
|
|
const std::vector< ROBF > & |
result |
|
) |
| |
|
overridevirtual |
Start a new event with a set of ROB fragments, e.g. from LVL1 result, in online and add the fragments to the ROB cache.
Definition at line 239 of file HltROBDataProviderSvc.cxx.
241 ATH_MSG_FATAL(
"Obsolete method HltROBDataProviderSvc::setNextEvent(const EventContext& context, const std::vector<ROBF>& result) called "
242 <<
"\n context = " << context <<
" number of ROB fragments = " <<
result.size() );
◆ m_doCostMonitoring
Gaudi::Property<bool> HltROBDataProviderSvc::m_doCostMonitoring |
|
private |
Initial value:{
this, "doCostMonitoring", false, "Enables start-of-event cost monitoring behavior."}
Definition at line 154 of file HltROBDataProviderSvc.h.
◆ m_enabledROBs
Gaudi::Property< std::vector<uint32_t> > HltROBDataProviderSvc::m_enabledROBs |
|
private |
◆ m_eventsCache
◆ m_filterEmptyROB
Gaudi::Property<bool> HltROBDataProviderSvc::m_filterEmptyROB |
|
private |
Initial value:{
this, "filterEmptyROB", false , "Filter out empty ROB fragments"}
Filter out empty ROB fragments which are send by the ROS.
Definition at line 125 of file HltROBDataProviderSvc.h.
◆ m_filterRobMap
◆ m_filterRobWithStatus
Gaudi::Property< ArrayPairIntType > HltROBDataProviderSvc::m_filterRobWithStatus |
|
private |
Initial value:{
this, "filterRobWithStatus", {} , "List of ROBs with status code to remove"}
Definition at line 112 of file HltROBDataProviderSvc.h.
◆ m_filterSubDetMap
◆ m_filterSubDetWithStatus
Gaudi::Property< ArrayPairIntType > HltROBDataProviderSvc::m_filterSubDetWithStatus |
|
private |
Initial value:{
this, "filterSubDetWithStatus", {} , "List of SubDets with status code to remove"}
Definition at line 114 of file HltROBDataProviderSvc.h.
◆ m_maskL2EFModuleID
bool HltROBDataProviderSvc::m_maskL2EFModuleID = false |
|
private |
For Run 1 the module ID for the Lvl2/EF result contained the machine ID and needed to be filtered out to access these result records transparently.
Definition at line 130 of file HltROBDataProviderSvc.h.
◆ m_monTool
◆ m_prefetchAllROBsfromROS
Gaudi::Property<bool> HltROBDataProviderSvc::m_prefetchAllROBsfromROS |
|
private |
Initial value:{
this, "prefetchAllROBsfromROS", false , "When ROBs from a ROS are requested then prefetch all ROBs in this ROS"}
Definition at line 141 of file HltROBDataProviderSvc.h.
◆ m_prefetchSubDetROS
Gaudi::Property< std::vector<uint8_t> > HltROBDataProviderSvc::m_prefetchSubDetROS |
|
private |
Initial value:{
this, "prefetchSubDetROS", {} , "List of sub-detectors for which whole ROS prefetching is used"}
Definition at line 149 of file HltROBDataProviderSvc.h.
◆ m_prefetchWholeROSList
std::vector<uint32_t> HltROBDataProviderSvc::m_prefetchWholeROSList |
|
private |
◆ m_readROBfromOKS
Gaudi::Property<bool> HltROBDataProviderSvc::m_readROBfromOKS |
|
private |
Initial value:{
this, "readROBfromOKS", true , "Read enabled ROBs from OKS"}
Definition at line 133 of file HltROBDataProviderSvc.h.
◆ m_trigCostSvcHandle
Initial value:{
this, "TrigCostSvc", "TrigCostSvc", "The trigger cost service" }
Definition at line 157 of file HltROBDataProviderSvc.h.
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
The structure which is used to monitor the ROB data request in L2 It is created for every addROBData ...
Group
Properties of a chain group.
std::string find(const std::string &s)
return a remapped string
A structure with data about ROB properties.
Thrown if event source throws an exception when new event is requested.
ROBHistory
A structure with data about ROB properties.
SG::SlotSpecificObj< EventCache > m_eventsCache
An event cache for each slot.
FilterSubDetMap m_filterSubDetMap
Gaudi::Property< bool > m_prefetchAllROBsfromROS
Gaudi::Property< bool > m_filterEmptyROB
Filter out empty ROB fragments which are send by the ROS.
robmonitor::ROBDataStruct robmap_getRobData(const ROBF &, robmonitor::ROBHistory)
method to get ROB fragment from ROBF input: context ROB fragment to be parsed ROB history status
#define ATH_MSG_VERBOSE(x)
OFFLINE_FRAGMENTS_NAMESPACE_WRITE::ROBFragment ROBF
const DataType * PointerType
Maintain a set of objects, one per slot.
utility class to measure time duration in AthenaMT The pattern when it is useful: AlgA tags the begin...
ToolHandle< GenericMonitoringTool > m_monTool
Monitoring tool.
void eventCache_clear(EventCache *)
method to clear an event cache in a slot input: pointer to cache
bool m_maskL2EFModuleID
For Run 1 the module ID for the Lvl2/EF result contained the machine ID and needed to be filtered out...
Gaudi::Property< std::vector< uint8_t > > m_prefetchSubDetROS
Gaudi::Property< bool > m_readROBfromOKS
FilterRobMap m_filterRobMap
Gaudi::Property< ArrayPairIntType > m_filterSubDetWithStatus
uint64_t microsecondsSinceEpoch() const
Gaudi::Property< bool > m_doCostMonitoring
ServiceHandle< ITrigCostSvc > m_trigCostSvcHandle
OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment ROBF
ROB Fragment class.
void eventCache_addRobData(EventCache *, std::vector< ROBF > &&, std::optional< std::reference_wrapper< std::set< uint32_t >>> robIds_ignored=std::nullopt)
method to add ROB fragments to an event cache in a slot input: pointer to cache vector of ROB fragmen...
Status
Athena specific StatusCode values.
virtual void addROBData(const EventContext &, const std::vector< uint32_t > &, const std::string_view callerName="UNKNOWN") override
Signal ROB fragments which should be considered for prefetching in online running.
#define ATH_MSG_WARNING(x)
size_t getNSlots()
Return the number of event slots.
const boost::regex re(r_e)
Gaudi::Property< std::vector< uint32_t > > m_enabledROBs
Declare a monitored scalar variable.
Gaudi::Property< ArrayPairIntType > m_filterRobWithStatus
std::vector< uint32_t > m_prefetchWholeROSList
bool robmap_filterRobWithStatus(const ROBF *)
method to filter ROBs with given Status code
void eventCache_checkRobListToCache(EventCache *, const std::vector< uint32_t > &, std::vector< const ROBF * > &, std::vector< uint32_t > &, std::optional< std::reference_wrapper< std::set< uint32_t >>> robIds_disabled=std::nullopt)
method to compare a list of ROB Ids to the ones in an event cache in a slot input: pointer to cache v...