 |
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 476 of file HltROBDataProviderSvc.cxx.
478 ATH_MSG_VERBOSE(
"start of " << __FUNCTION__ <<
" caller name = " << callerName);
483 std::lock_guard<std::mutex>
lock( cache->eventCache_mtx );
486 if (cache->isEventComplete)
return 0;
488 typedef std::vector<hltinterface::DCM_ROBInfo> ROBInfoVec;
489 ROBInfoVec vRobInfos ;
493 vRobInfos.reserve( MAX_ROBFRAGMENTS ) ;
501 ATH_MSG_DEBUG( __FUNCTION__ <<
": Number of received ROB Ids = " << vRobInfos.size() );
503 auto mon_col_nROBs =
Monitored::Scalar(
"NUMBER_CollectAllROBs",vRobInfos.size());
507 <<
"Failed to collect complete event, caught an unexpected exception: " << ex.what()
508 <<
". Throwing hltonl::Exception::EventSourceCorrupted" );
512 <<
"Failed to collect complete event, caught an unexpected exception. "
513 <<
"Throwing hltonl::Exception::EventSourceCorrupted" );
518 std::vector<ROBF> robFragments_missing;
519 robFragments_missing.reserve( vRobInfos.size() );
520 for(ROBInfoVec::const_iterator
it=vRobInfos.begin();
it!=vRobInfos.end(); ++
it) {
521 ATH_MSG_VERBOSE(__FUNCTION__ <<
" ROB Id = 0x" << MSG::hex <<
it->robFragment.source_id() << MSG::dec
522 <<
" retrieved from DCM for (global Id, L1 Id) = (" << cache->globalEventNumber <<
"," << cache->currentLvl1ID <<
")" );
523 robFragments_missing.push_back(
it->robFragment );
529 cache->isEventComplete =
true;
531 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 652 of file HltROBDataProviderSvc.cxx.
655 ATH_MSG_VERBOSE(
"start of " << __FUNCTION__ <<
" number of ROB fragments to add = " << robFragments.size());
657 for (
const ROBF& rob : robFragments) {
661 ATH_MSG_VERBOSE(__FUNCTION__ <<
" Id = 0x" << std::hex <<
id << std::dec );
664 if ( (eformat::helper::SourceIdentifier(
id).module_id() != 0) &&
665 (eformat::helper::SourceIdentifier(
id).subdetector_id() == eformat::TDAQ_LVL2) ) {
666 id = eformat::helper::SourceIdentifier(eformat::helper::SourceIdentifier(
id).subdetector_id(),0).code();
668 ATH_MSG_ERROR(__FUNCTION__ <<
" Inconsistent flag for masking L2/EF module IDs");
671 }
else if ( (eformat::helper::SourceIdentifier(
id).module_id() != 0) &&
672 (eformat::helper::SourceIdentifier(
id).subdetector_id() == eformat::TDAQ_EVENT_FILTER) &&
674 id = eformat::helper::SourceIdentifier(eformat::helper::SourceIdentifier(
id).subdetector_id(),0).code();
678 { ROBMAP::const_iterator
it = cache->robmap.find(
id);
679 if (
it != cache->robmap.end()) {
680 ATH_MSG_VERBOSE(__FUNCTION__ <<
" Duplicate ROB Id 0x" << MSG::hex <<
id << MSG::dec
681 <<
" found for (global Id, L1 Id) = (" << cache->globalEventNumber <<
"," << cache->currentLvl1ID <<
")" );
688 if (rob.nstatus() > 0) {
690 rob.status(it_status);
692 ATH_MSG_VERBOSE(__FUNCTION__ <<
" ROB Id = 0x" << MSG::hex <<
id << std::setfill(
'0')
693 <<
" with Generic Status Code = 0x" << std::setw(4) << tmpstatus.generic()
694 <<
" and Specific Status Code = 0x" << std::setw(4) << tmpstatus.specific() << MSG::dec
695 <<
" removed for (global Id, L1 Id) = (" << cache->globalEventNumber <<
"," << cache->currentLvl1ID <<
")" );
697 if (robIds_ignored) {
698 robIds_ignored->get().insert(
id);
705 ATH_MSG_VERBOSE(__FUNCTION__ <<
" Empty ROB Id = 0x" << MSG::hex <<
id << MSG::dec
706 <<
" removed for (global Id, L1 Id) = (" << cache->globalEventNumber <<
"," << cache->currentLvl1ID <<
")" );
711 { 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 597 of file HltROBDataProviderSvc.cxx.
602 ATH_MSG_VERBOSE(
"start of " << __FUNCTION__ <<
" number of ROB Ids to check = " << robIds_toCheck.size());
605 robFragments_inCache.clear();
606 robIds_missing.clear();
609 robFragments_inCache.reserve( robIds_toCheck.size() );
610 robIds_missing.reserve( robIds_toCheck.size() );
613 for (
uint32_t id : robIds_toCheck) {
617 if (missing_it != robIds_missing.end()) {
618 ATH_MSG_VERBOSE(__FUNCTION__ <<
" ROB Id : 0x" << MSG::hex <<
id << MSG::dec <<
" is already on the list of missing IDs.");
623 { ROBMAP::const_iterator map_it = cache->robmap.find(
id);
624 if (map_it != cache->robmap.end()) {
625 ATH_MSG_VERBOSE(__FUNCTION__ <<
" ROB Id 0x" << MSG::hex <<
id << MSG::dec
626 <<
" found for (global Id, L1 Id) = (" << cache->globalEventNumber <<
"," << cache->currentLvl1ID <<
")" );
627 robFragments_inCache.push_back( &(map_it->second) );
634 std::vector<uint32_t>::const_iterator rob_enabled_it =
637 ATH_MSG_VERBOSE(__FUNCTION__ <<
" ROB Id : 0x" << MSG::hex <<
id << MSG::dec
638 <<
" will be not added, since it is not on the list of enabled ROBs.");
639 if (robIds_disabled) {
640 robIds_disabled->get().insert(
id);
647 ATH_MSG_VERBOSE(__FUNCTION__ <<
" ROB Id : 0x" << MSG::hex <<
id << MSG::dec <<
" is missing ");
648 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 586 of file HltROBDataProviderSvc.cxx.
589 cache->event =
nullptr;
590 cache->currentLvl1ID = 0;
591 cache->globalEventNumber = 0;
592 cache->eventStatus = 0;
593 cache->isEventComplete =
false;
594 { 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 305 of file HltROBDataProviderSvc.cxx.
312 std::lock_guard<std::mutex>
lock( cache->eventCache_mtx );
316 ATH_MSG_VERBOSE(
"start of " << __FUNCTION__ <<
": Number of ROB Ids to get = " << robIds.size()
317 <<
" caller name = " << callerName);
320 std::vector<uint32_t> robIds_missing ;
326 if (robIds_missing.empty()) {
327 ATH_MSG_DEBUG( __FUNCTION__ <<
": All requested ROB Ids were found in the cache. ");
332 ATH_MSG_DEBUG( __FUNCTION__ <<
": Number of ROB Ids to retrieve with DCM = " << robIds_missing.size());
334 typedef std::vector<hltinterface::DCM_ROBInfo> ROBInfoVec;
335 ROBInfoVec vRobInfos;
338 vRobInfos.reserve( robIds_missing.size() ) ;
348 <<
"Failed to collect ROBs, caught an unexpected exception: " << ex.what()
349 <<
". Throwing hltonl::Exception::EventSourceCorrupted" );
353 <<
"Failed to collect ROBs, caught an unexpected exception. "
354 <<
"Throwing hltonl::Exception::EventSourceCorrupted" );
359 std::vector<ROBF> robFragments_missing;
360 robFragments_missing.reserve( vRobInfos.size() );
361 for(ROBInfoVec::const_iterator
it=vRobInfos.begin();
it!=vRobInfos.end(); ++
it) {
362 ATH_MSG_DEBUG(__FUNCTION__ <<
" ROB Id = 0x" << MSG::hex <<
it->robFragment.source_id() << MSG::dec
363 <<
" retrieved from DCM for (global Id, L1 Id) = (" << cache->globalEventNumber <<
"," << cache->currentLvl1ID <<
")" );
364 robFragments_missing.push_back(
it->robFragment );
371 for (
const ROBF* robFrag : robFragments) {
376 std::set<uint32_t> robIds_ignored;
380 for (
const hltinterface::DCM_ROBInfo& robInfo : vRobInfos) {
384 if (robIds_ignored.find(robInfo.robFragment.source_id()) != robIds_ignored.end()) {
395 std::set<uint32_t> robIds_disabled;
399 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 535 of file HltROBDataProviderSvc.cxx.
548 if (rob->nstatus() == 0) {
549 rob_it_status = &null_status;
552 rob->status(rob_it_status);
556 eformat::helper::SourceIdentifier tmpsrc(rob->rob_source_id());
561 for (
auto it_status: (*map_it_rob).second) {
562 if (*rob_it_status == it_status) {
563 ATH_MSG_VERBOSE(__FUNCTION__ <<
" ROB Id = 0x" << MSG::hex << tmpsrc.code()
564 <<
" with status = 0x" << *rob_it_status << MSG::dec
565 <<
" removed due to ROB filter rule.");
574 for (
auto it_status: (*map_it_subdet).second) {
575 if (*rob_it_status == it_status) {
576 ATH_MSG_VERBOSE(__FUNCTION__ <<
" ROB Id = 0x" << MSG::hex << tmpsrc.code()
577 <<
" with status = 0x" << *rob_it_status << MSG::dec
578 <<
" 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 427 of file HltROBDataProviderSvc.cxx.
430 robData.rob_size = robFrag.fragment_size_word();
431 robData.rob_status_word = robFrag.nstatus() ? robFrag.status()[0] : 0;
432 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]));
285 const size_t nRobs = rob_fragments.size();
289 ATH_MSG_DEBUG(
" current [global id, LVL1 id] = [" << cache->globalEventNumber <<
"," << cache->currentLvl1ID <<
"]" );
291 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...