5#ifndef TRIGGENERICALGS_ROBPrefetchingAlg_h
6#define TRIGGENERICALGS_ROBPrefetchingAlg_h
20#include <unordered_set>
32 virtual StatusCode
execute(
const EventContext& eventContext)
const override;
37 this,
"ROBPrefetchingInputDecisions", {},
"Input Decisions"};
41 this,
"RegionSelectorTools", {},
"Region Selector tools"};
45 this,
"ROBDataProviderSvc",
"ROBDataProviderSvc",
"Name of the ROB data provider"};
53 this,
"ChainFilter", {},
"Apply prefetching only to RoIs from Decisions where chains from this list are active. Empty list means no filtering."};
An algorithm that can be simultaneously executed in multiple threads.
ROBPrefetchingAlg(const std::string &name, ISvcLocator *svcLoc)
ServiceHandle< IROBDataProviderSvc > m_robDataProviderSvc
The ROB data provider service used to prefetch the ROBs.
ToolHandleArray< IRegSelTool > m_regionSelectorTools
Array of RegionSelector tools for RoI->ROBs mapping, one for each detector to be prefetched.
std::unordered_set< TrigCompositeUtils::DecisionID > m_chainFilter
ChainFilter as unordered_set for faster lookup.
Gaudi::Property< std::string > m_roiLinkName
Choose the name of the RoI link to follow.
virtual StatusCode initialize() override
Gaudi::Property< std::vector< TrigCompositeUtils::DecisionID > > m_chainFilterVec
ChainFilter to select decisions for specific active chains.
virtual StatusCode execute(const EventContext &eventContext) const override
SG::ReadHandleKeyArray< TrigCompositeUtils::DecisionContainer > m_inputDecisions
Array of input decisions from which RoIs will be extracted.
HandleKeyArray< ReadHandle< T >, ReadHandleKey< T >, Gaudi::DataHandle::Reader > ReadHandleKeyArray
const std::string & roiString()