ATLAS Offline Software
ComboHypo.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef DECISIONHANDLING_COMBOHYPO_H
5 #define DECISIONHANDLING_COMBOHYPO_H
6 
7 // Framework includes
10 
11 // STL includes
12 #include <string>
13 #include <utility>
15 
31  public:
32  ComboHypo(const std::string& name, ISvcLocator* pSvcLocator);
33  virtual ~ComboHypo() override;
34 
35  virtual StatusCode initialize() override;
36  virtual StatusCode execute(const EventContext& context) const override;
37 
38 
39  protected:
44  ToolHandleArray<ComboHypoToolBase>& hypoTools() { return m_hypoTools; }
45  const ToolHandleArray<ComboHypoToolBase>& hypoTools() const { return m_hypoTools; }
46 
47  private:
48 
49  SG::ReadHandleKeyArray<TrigCompositeUtils::DecisionContainer> m_inputs { this, "HypoInputDecisions", {}, "Input Decisions" };
50  SG::WriteHandleKeyArray<TrigCompositeUtils::DecisionContainer> m_outputs { this, "HypoOutputDecisions", {}, "Output Decisions" };
51 
52  Gaudi::Property<bool> m_requireUniqueROI {this, "RequireUniqueROI", false,
53  "Require each Feature in each leg of the combination to come from a unique L1 seeding ROI."};
54 
55  Gaudi::Property< Combo::MultiplicityReqMap > m_multiplicitiesReqMap{this, "MultiplicitiesMap", {},
56  "Map from the chain name to multiplicities required at each input",
57  "mapMergeNoReplace<std::string, std::vector<int>>"};
58 
59  Gaudi::Property< Combo::LegMap > m_legToInputCollectionMap{this, "LegToInputCollectionMap", {},
60  "Map from the chain name to the per-leg index in this algorithm's ReadHandleKeyArray which should be used as the source of incoming Decision Objects on the leg.",
61  "mapMergeNoReplace<std::string, std::vector<int>>"};
62 
63  Gaudi::Property<bool> m_checkMultiplicityMap { this, "CheckMultiplicityMap", true,
64  "Perform a consistency check of the MultiplicitiesMap"};
65 
71  StatusCode copyDecisions( const Combo::LegDecisionsMap & passingLegs, const EventContext& context ) const;
72 
73 
92  SG::sgkey_t& featureKey,
93  uint16_t& featureIndex,
94  SG::sgkey_t& roiKey,
95  uint16_t& roiIndex,
96  bool& roiFullscan,
97  bool& objectRequestsNoMultiplicityCheck,
98  SG::SGKeyMap<std::set<uint32_t>>& priorFeaturesMap,
99  const EventContext& ctx) const;
100 
101 
106  StatusCode fillDecisionsMap( Combo::LegDecisionsMap& dmap, const EventContext& context) const;
107 
108  ToolHandleArray< ComboHypoToolBase > m_hypoTools {this, "ComboHypoTools", {}, "Tools to perform selection"};
109 
110 };
111 
112 
113 #endif // DECISIONHANDLING_COMBOHYPO_H
ComboHypo::m_multiplicitiesReqMap
Gaudi::Property< Combo::MultiplicityReqMap > m_multiplicitiesReqMap
Definition: ComboHypo.h:55
Combo::MultiplicityReqMap
std::map< std::string, std::vector< int > > MultiplicityReqMap
Map from the chain name to the multiplicities required at each input.
Definition: IComboHypoTool.h:17
ComboHypo::copyDecisions
StatusCode copyDecisions(const Combo::LegDecisionsMap &passingLegs, const EventContext &context) const
iterates over the inputs and for every object (no filtering) crates output object linked to input mov...
Definition: ComboHypo.cxx:87
ComboHypo::decisionsOutput
const SG::WriteHandleKeyArray< TrigCompositeUtils::DecisionContainer > & decisionsOutput() const
Definition: ComboHypo.h:41
TrigCompositeUtils.h
ComboHypo::fillDecisionsMap
StatusCode fillDecisionsMap(Combo::LegDecisionsMap &dmap, const EventContext &context) const
iterates over all inputs, associating inputs to legs
Definition: ComboHypo.cxx:466
SG::HandleKeyArray
Definition: StoreGate/StoreGate/HandleKeyArray.h:38
Combo::LegDecisionsMap
std::map< TrigCompositeUtils::DecisionID, std::vector< ElementLink< TrigCompositeUtils::DecisionContainer > > > LegDecisionsMap
LegDecisionsMap For a given chain leg key, this map holds all Decision Objects which are active on th...
Definition: IComboHypoTool.h:28
ComboHypo
Definition: ComboHypo.h:30
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
ComboHypo::extractFeatureAndRoI
StatusCode extractFeatureAndRoI(const HLT::Identifier &chainLegId, const ElementLink< TrigCompositeUtils::DecisionContainer > &EL, SG::sgkey_t &featureKey, uint16_t &featureIndex, SG::sgkey_t &roiKey, uint16_t &roiIndex, bool &roiFullscan, bool &objectRequestsNoMultiplicityCheck, SG::SGKeyMap< std::set< uint32_t >> &priorFeaturesMap, const EventContext &ctx) const
For a given Decision node from a HypoAlg, extracts type-less identification data on the node's Featur...
Definition: ComboHypo.cxx:381
ComboHypo::ComboHypo
ComboHypo(const std::string &name, ISvcLocator *pSvcLocator)
Definition: ComboHypo.cxx:14
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
ComboHypo::m_requireUniqueROI
Gaudi::Property< bool > m_requireUniqueROI
Definition: ComboHypo.h:52
ComboHypo::hypoTools
ToolHandleArray< ComboHypoToolBase > & hypoTools()
Definition: ComboHypo.h:44
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ComboHypo::execute
virtual StatusCode execute(const EventContext &context) const override
Definition: ComboHypo.cxx:153
ComboHypo::~ComboHypo
virtual ~ComboHypo() override
Definition: ComboHypo.cxx:19
ComboHypo::m_hypoTools
ToolHandleArray< ComboHypoToolBase > m_hypoTools
Definition: ComboHypo.h:108
EL
This module defines the arguments passed from the BATCH driver to the BATCH worker.
Definition: AlgorithmWorkerData.h:24
ComboHypo::triggerMultiplicityMap
const Combo::MultiplicityReqMap & triggerMultiplicityMap() const
Definition: ComboHypo.h:42
ComboHypo::m_outputs
SG::WriteHandleKeyArray< TrigCompositeUtils::DecisionContainer > m_outputs
Definition: ComboHypo.h:50
HLT::Identifier
Definition: TrigCompositeUtils/TrigCompositeUtils/HLTIdentifier.h:20
AthReentrantAlgorithm.h
ComboHypo::initialize
virtual StatusCode initialize() override
Definition: ComboHypo.cxx:23
ComboHypoToolBase.h
ComboHypo::m_legToInputCollectionMap
Gaudi::Property< Combo::LegMap > m_legToInputCollectionMap
Definition: ComboHypo.h:59
ComboHypo::hypoTools
const ToolHandleArray< ComboHypoToolBase > & hypoTools() const
Definition: ComboHypo.h:45
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
SG::sgkey_t
uint32_t sgkey_t
Type used for hashed StoreGate key+CLID pairs.
Definition: CxxUtils/CxxUtils/sgkey_t.h:32
ComboHypo::m_inputs
SG::ReadHandleKeyArray< TrigCompositeUtils::DecisionContainer > m_inputs
Definition: ComboHypo.h:49
ComboHypo::legToInputCollectionMap
const Combo::LegMap & legToInputCollectionMap() const
Definition: ComboHypo.h:43
SG::SGKeyMap
std::unordered_map< sgkey_t, T > SGKeyMap
A map using sgkey_t as a key.
Definition: CxxUtils/CxxUtils/sgkey_t.h:93
Combo::LegMap
std::map< std::string, std::vector< int > > LegMap
Map from the chain name to legs required at each input.
Definition: IComboHypoTool.h:23
ComboHypo::decisionsInput
const SG::ReadHandleKeyArray< TrigCompositeUtils::DecisionContainer > & decisionsInput() const
Definition: ComboHypo.h:40
ComboHypo::m_checkMultiplicityMap
Gaudi::Property< bool > m_checkMultiplicityMap
Definition: ComboHypo.h:63