ATLAS Offline Software
Loading...
Searching...
No Matches
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
11
12// STL includes
13#include <string>
14#include <utility>
16
29
30
32 public:
33 ComboHypo(const std::string& name, ISvcLocator* pSvcLocator);
34 virtual ~ComboHypo() override;
35
36 virtual StatusCode initialize() override;
37 virtual StatusCode execute(const EventContext& context) const override;
38
39
40 protected:
43 const Combo::MultiplicityReqMap& triggerMultiplicityMap() const { return m_multiplicitiesReqMap.value(); }
44 const Combo::LegMap& legToInputCollectionMap() const { return m_legToInputCollectionMap.value(); }
45 ToolHandleArray<ComboHypoToolBase>& hypoTools() { return m_hypoTools; }
46 const ToolHandleArray<ComboHypoToolBase>& hypoTools() const { return m_hypoTools; }
47
48 private:
49
50 SG::ReadHandleKeyArray<TrigCompositeUtils::DecisionContainer> m_inputs { this, "HypoInputDecisions", {}, "Input Decisions" };
51 SG::WriteHandleKeyArray<TrigCompositeUtils::DecisionContainer> m_outputs { this, "HypoOutputDecisions", {}, "Output Decisions" };
52
53 Gaudi::Property<bool> m_requireUniqueROI {this, "RequireUniqueROI", false,
54 "Require each Feature in each leg of the combination to come from a unique L1 seeding ROI."};
55
56 Gaudi::Property< Combo::MultiplicityReqMap > m_multiplicitiesReqMap{this, "MultiplicitiesMap", {},
57 "Map from the chain name to multiplicities required at each input"};
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
62 Gaudi::Property<bool> m_checkMultiplicityMap { this, "CheckMultiplicityMap", true,
63 "Perform a consistency check of the MultiplicitiesMap"};
64
69
70 StatusCode copyDecisions( const Combo::LegDecisionsMap & passingLegs, const EventContext& context ) const;
71
72
88 StatusCode extractFeatureAndRoI(const HLT::Identifier& chainLegId,
90 SG::sgkey_t& featureKey,
92 SG::sgkey_t& roiKey,
94 bool& roiFullscan,
95 bool& objectRequestsNoMultiplicityCheck,
96 SG::SGKeyMap<std::set<uint32_t>>& priorFeaturesMap) const;
97
101
102 StatusCode fillDecisionsMap( Combo::LegDecisionsMap& dmap, const EventContext& context) const;
103
104 ToolHandleArray< ComboHypoToolBase > m_hypoTools {this, "ComboHypoTools", {}, "Tools to perform selection"};
105
106};
107
108
109#endif // DECISIONHANDLING_COMBOHYPO_H
An algorithm that can be simultaneously executed in multiple threads.
ComboHypo(const std::string &name, ISvcLocator *pSvcLocator)
Definition ComboHypo.cxx:13
const SG::WriteHandleKeyArray< TrigCompositeUtils::DecisionContainer > & decisionsOutput() const
Definition ComboHypo.h:42
StatusCode extractFeatureAndRoI(const HLT::Identifier &chainLegId, const ElementLink< TrigCompositeUtils::DecisionContainer > &EL, SG::sgkey_t &featureKey, TrigCompositeUtils::Decision::index_type &featureIndex, SG::sgkey_t &roiKey, TrigCompositeUtils::Decision::index_type &roiIndex, bool &roiFullscan, bool &objectRequestsNoMultiplicityCheck, SG::SGKeyMap< std::set< uint32_t > > &priorFeaturesMap) const
For a given Decision node from a HypoAlg, extracts type-less identification data on the node's Featur...
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:86
const Combo::MultiplicityReqMap & triggerMultiplicityMap() const
Definition ComboHypo.h:43
ToolHandleArray< ComboHypoToolBase > & hypoTools()
Definition ComboHypo.h:45
Gaudi::Property< Combo::MultiplicityReqMap > m_multiplicitiesReqMap
Definition ComboHypo.h:56
const ToolHandleArray< ComboHypoToolBase > & hypoTools() const
Definition ComboHypo.h:46
virtual StatusCode execute(const EventContext &context) const override
virtual ~ComboHypo() override
Definition ComboHypo.cxx:18
SG::WriteHandleKeyArray< TrigCompositeUtils::DecisionContainer > m_outputs
Definition ComboHypo.h:51
Gaudi::Property< Combo::LegMap > m_legToInputCollectionMap
Definition ComboHypo.h:59
const Combo::LegMap & legToInputCollectionMap() const
Definition ComboHypo.h:44
StatusCode fillDecisionsMap(Combo::LegDecisionsMap &dmap, const EventContext &context) const
iterates over all inputs, associating inputs to legs
Gaudi::Property< bool > m_checkMultiplicityMap
Definition ComboHypo.h:62
const SG::ReadHandleKeyArray< TrigCompositeUtils::DecisionContainer > & decisionsInput() const
Definition ComboHypo.h:41
SG::ReadHandleKeyArray< TrigCompositeUtils::DecisionContainer > m_inputs
Definition ComboHypo.h:50
Gaudi::Property< bool > m_requireUniqueROI
Definition ComboHypo.h:53
ToolHandleArray< ComboHypoToolBase > m_hypoTools
Definition ComboHypo.h:104
virtual StatusCode initialize() override
Definition ComboHypo.cxx:22
This module defines the arguments passed from the BATCH driver to the BATCH worker.
uint32_t sgkey_t
Type used for hashed StoreGate key+CLID pairs.
Definition sgkey_t.h:32
HandleKeyArray< ReadHandle< T >, ReadHandleKey< T >, Gaudi::DataHandle::Reader > ReadHandleKeyArray
std::unordered_map< sgkey_t, T > SGKeyMap
A map using sgkey_t as a key.
Definition sgkey_t.h:93
HandleKeyArray< WriteHandle< T >, WriteHandleKey< T >, Gaudi::DataHandle::Writer > WriteHandleKeyArray