ATLAS Offline Software
ROBPrefetchingAlg.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRIGGENERICALGS_ROBPrefetchingAlg_h
6 #define TRIGGENERICALGS_ROBPrefetchingAlg_h
7 
8 // Trigger includes
10 
11 // Athena includes
16 
17 // System includes
18 #include <string>
19 #include <vector>
20 #include <unordered_set>
21 
29 public:
30  ROBPrefetchingAlg(const std::string& name, ISvcLocator* svcLoc);
31  virtual StatusCode initialize() override;
32  virtual StatusCode execute(const EventContext& eventContext) const override;
33 
34 private:
37  this, "ROBPrefetchingInputDecisions", {}, "Input Decisions"};
38 
40  ToolHandleArray<IRegSelTool> m_regionSelectorTools {
41  this, "RegionSelectorTools", {}, "Region Selector tools"};
42 
45  this, "ROBDataProviderSvc", "ROBDataProviderSvc", "Name of the ROB data provider"};
46 
48  Gaudi::Property<std::string> m_roiLinkName {
49  this, "RoILinkName", TrigCompositeUtils::roiString(), "The string identifying links from Decisions to RoIs"};
50 
52  Gaudi::Property<std::vector<TrigCompositeUtils::DecisionID>> m_chainFilterVec {
53  this, "ChainFilter", {}, "Apply prefetching only to RoIs from Decisions where chains from this list are active. Empty list means no filtering."};
54 
56  std::unordered_set<TrigCompositeUtils::DecisionID> m_chainFilter;
57 };
58 
59 #endif // TRIGGENERICALGS_ROBPrefetchingAlg_h
ReadHandleKeyArray.h
ROBPrefetchingAlg::m_chainFilterVec
Gaudi::Property< std::vector< TrigCompositeUtils::DecisionID > > m_chainFilterVec
ChainFilter to select decisions for specific active chains.
Definition: ROBPrefetchingAlg.h:52
IRegSelTool.h
TrigCompositeUtils.h
ROBPrefetchingAlg::ROBPrefetchingAlg
ROBPrefetchingAlg(const std::string &name, ISvcLocator *svcLoc)
Definition: ROBPrefetchingAlg.cxx:32
SG::HandleKeyArray
Definition: StoreGate/StoreGate/HandleKeyArray.h:38
ROBPrefetchingAlg::m_roiLinkName
Gaudi::Property< std::string > m_roiLinkName
Choose the name of the RoI link to follow.
Definition: ROBPrefetchingAlg.h:48
ROBPrefetchingAlg::initialize
virtual StatusCode initialize() override
Definition: ROBPrefetchingAlg.cxx:35
ROBPrefetchingAlg::m_inputDecisions
SG::ReadHandleKeyArray< TrigCompositeUtils::DecisionContainer > m_inputDecisions
Array of input decisions from which RoIs will be extracted.
Definition: ROBPrefetchingAlg.h:36
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
ROBPrefetchingAlg::m_regionSelectorTools
ToolHandleArray< IRegSelTool > m_regionSelectorTools
Array of RegionSelector tools for RoI->ROBs mapping, one for each detector to be prefetched.
Definition: ROBPrefetchingAlg.h:40
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthReentrantAlgorithm.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
ROBPrefetchingAlg::m_chainFilter
std::unordered_set< TrigCompositeUtils::DecisionID > m_chainFilter
ChainFilter as unordered_set for faster lookup.
Definition: ROBPrefetchingAlg.h:56
ROBPrefetchingAlg
Algorithm taking a list of decision objects, extracting RoI from each and prefetching ROBs (i....
Definition: ROBPrefetchingAlg.h:28
TrigCompositeUtils::roiString
const std::string & roiString()
Definition: TrigCompositeUtilsRoot.cxx:876
ROBPrefetchingAlg::m_robDataProviderSvc
ServiceHandle< IROBDataProviderSvc > m_robDataProviderSvc
The ROB data provider service used to prefetch the ROBs.
Definition: ROBPrefetchingAlg.h:44
IROBDataProviderSvc.h
ROBPrefetchingAlg::execute
virtual StatusCode execute(const EventContext &eventContext) const override
Definition: ROBPrefetchingAlg.cxx:54
ServiceHandle< IROBDataProviderSvc >