|
ATLAS Offline Software
|
Go to the documentation of this file.
4 #ifndef TRIGNAVTOOLS_RUN2TORUN3TRIGNAVCONVERTERV2_H
5 #define TRIGNAVTOOLS_RUN2TORUN3TRIGNAVCONVERTERV2_H
14 #include "GaudiKernel/IClassIDSvc.h"
41 std::vector<HLT::te_id_type>
teIDs;
50 std::vector<HLT::TriggerElement::FeatureAccessHelper>
features;
51 std::vector<HLT::TriggerElement::FeatureAccessHelper>
rois;
52 std::vector<HLT::TriggerElement::FeatureAccessHelper>
tracks;
56 std::vector<TrigCompositeUtils::Decision *>
hNode;
80 PublicToolHandle<Trig::TrigDecisionTool>
m_tdt{
this,
"TrigDecisionTool",
"",
"When enabled read navigation from TDT/off by default"};
84 Gaudi::Property<bool>
m_doSelfValidation{
this,
"doSelfValidation",
false,
"Run consistency checks after stages of conversion (slows down the alg)"};
85 Gaudi::Property<bool>
m_doCompression{
this,
"doCompression",
false,
"Collapse navigation elements to save ouput space"};
86 Gaudi::Property<bool>
m_doLinkFeatures{
this,
"doLinkFeatures",
true,
"Add links to objects, setting it false makes sense when running tests"};
88 Gaudi::Property<size_t>
m_hNodesPerProxyThreshold{
this,
"hNodesPerProxyThreshhold", 15,
"Limit number of H nodes per TE (if exceeded conversion results in an error)"};
89 Gaudi::Property<std::vector<std::string>>
m_chainsToSave{
this,
"Chains", {},
"If not specified, all chains are handled"};
91 Gaudi::Property<std::vector<std::string>>
m_roisToSave{
this,
"Rois", {}};
115 template <
typename MAP>
134 std::vector<HLT::TriggerElement::FeatureAccessHelper>
filterFEAs(
const std::vector<HLT::TriggerElement::FeatureAccessHelper> &feaVector,
const HLT::TrigNavStructure &navigationDecoder)
const;
146 const std::vector<std::function<void(
const ConvProxy*)>>& printers={})
const;
194 #endif // TRIGNAVTOOLS_RUN2TORUN3TRIGNAVCONVERTERV2_H
StatusCode fillRelevantTracks(ConvProxySet_t &convProxies) const
Property holding a SG store/key/clid from which a ReadHandle is made.
StatusCode collapseProxies(ConvProxySet_t &, MAP &) const
std::vector< TrigCompositeUtils::Decision * > hNode
SG::ReadHandleKey< xAOD::TrigNavigation > m_trigNavKey
StatusCode fillRelevantRois(ConvProxySet_t &convProxies, const HLT::TrigNavStructure &run2Nav) const
StatusCode createL1Nodes(const ConvProxySet_t &convProxies, xAOD::TrigCompositeContainer &decisions, const EventContext &context) const
void merge(ConvProxy *other)
virtual StatusCode initialize() override
virtual ~Run2ToRun3TrigNavConverterV2() override
std::set< HLT::Identifier > runChains
Run2ToRun3TrigNavConverterV2(const std::string &name, ISvcLocator *pSvcLocator)
StatusCode linkRoiNode(ConvProxySet_t &convProxies, const HLT::TrigNavStructure &run2Nav) const
StatusCode updateTerminusNode(xAOD::TrigCompositeContainer &, const EventContext &context) const
StatusCode allProxiesConnected(const ConvProxySet_t &) const
ServiceHandle< TrigConf::IHLTConfigSvc > m_configSvc
std::mutex m_configUpdateMutex
StatusCode removeUnassociatedProxies(ConvProxySet_t &) const
std::tuple< uint32_t, CLID, std::string > getSgKey(const HLT::TrigNavStructure &navigationDecoder, const HLT::TriggerElement::FeatureAccessHelper &helper) const
static const uint64_t MissingFEA
Gaudi::Property< std::vector< std::string > > m_collectionsToSave
SG::WriteHandleKey< xAOD::TrigCompositeContainer > m_trigOutputNavKey
StatusCode bjetMuChainConfigDecoder(TEIdToChainsMap_t &allTES, TEIdToChainsMap_t &finalTEs, const TrigConf::HLTChain *ptrChain) const
Gaudi::Property< std::vector< std::string > > m_roisToSave
CLID m_TrigRingerRingsCLID
std::vector< std::string > m_setRoiName
std::map< CLID, std::set< std::string > > m_collectionsToSaveDecoded
CLID m_TauTrackContainerCLID
PublicToolHandle< Trig::TrigDecisionTool > m_tdt
Property holding a SG store/key/clid from which a ReadHandle is made.
HLT chain configuration information.
std::function< void(const ConvProxy *)> m_chainIdsPrinter
Gaudi::Property< size_t > m_hNodesPerProxyThreshold
TEIdToChainsMap_t m_allTEIdsToChains
std::vector< HLT::TriggerElement::FeatureAccessHelper > tracks
std::set< ConvProxy * > children
std::vector< HLT::TriggerElement::FeatureAccessHelper > rois
An algorithm that can be simultaneously executed in multiple threads.
uint64_t feaToHash(const std::vector< HLT::TriggerElement::FeatureAccessHelper > &feaVector, const HLT::TriggerElement *te_ptr, const HLT::TrigNavStructure &navigationDecoder) const
returns true if this particular feature is to be saved (linked)
CLID m_roIDescriptorCollectionCLID
StatusCode createSFNodes(const ConvProxySet_t &, xAOD::TrigCompositeContainer &, const TEIdToChainsMap_t &finalTEs, const EventContext &context) const
std::vector< HLT::TriggerElement::FeatureAccessHelper > filterFEAs(const std::vector< HLT::TriggerElement::FeatureAccessHelper > &feaVector, const HLT::TrigNavStructure &navigationDecoder) const
< both method skip TrigPassBits
Property holding a SG store/key/clid from which a WriteHandle is made.
StatusCode extractTECtoChainMapping(TEIdToChainsMap_t &allTES, TEIdToChainsMap_t &finalTEs) const
std::vector< HLT::te_id_type > teIDs
::StatusCode StatusCode
StatusCode definition for legacy code.
TriggerElement is the basic ingreedient of the interface between HLT algorithms and the navigation It...
std::string description() const
StatusCode linkTrkNode(ConvProxySet_t &convProxies, const HLT::TrigNavStructure &run2Nav) const
StatusCode createIMHNodes(ConvProxySet_t &, xAOD::TrigCompositeContainer &, const EventContext &) const
std::set< HLT::Identifier > passChains
Gaudi::Property< bool > m_includeTauTrackFeatures
CLID m_TrigEMClusterContainerCLID
std::map< HLT::te_id_type, std::set< HLT::Identifier > > TEIdToChainsMap_t
Class used to describe composite objects in the HLT.
ConvProxy(const HLT::TriggerElement *te)
uint32_t CLID
The Class ID type.
StatusCode removeTopologicalProxies(ConvProxySet_t &) const
TrigCompositeUtils::Decision * imNode
StatusCode noUnconnectedHNodes(const xAOD::TrigCompositeContainer &) const
Property holding a SG store/key/clid from which a WriteHandle is made.
bool isParent(const ConvProxy *other) const
StatusCode collapseFeaturesProxies(ConvProxySet_t &convProxies, const HLT::TrigNavStructure &run2Nav) const
TEIdToChainsMap_t m_finalTEIdsToChains
Gaudi::Property< bool > m_doCompression
std::set< ConvProxy * > ConvProxySet_t
static const std::string hash2string(HLTHash, const std::string &category="TE")
hash function translating identifiers into names (via internal dictionary)
StatusCode associateChainsToProxies(ConvProxySet_t &, const TEIdToChainsMap_t &) const
Gaudi::Property< bool > m_doLinkFeatures
virtual StatusCode execute(const EventContext &context) const override
std::size_t getFeaSize(const ConvProxy &) const
StatusCode numberOfHNodesPerProxyNotExcessive(const ConvProxySet_t &) const
StatusCode allProxiesHaveChain(const ConvProxySet_t &) const
StatusCode fillRelevantFeatures(ConvProxySet_t &convProxies, const HLT::TrigNavStructure &run2Nav) const
bool feaToSave(const HLT::TriggerElement::FeatureAccessHelper &fea, const std::string &sgName) const
StatusCode collapseFeaturelessProxies(ConvProxySet_t &) const
bool roiToSave(const HLT::TrigNavStructure &run2Nav, const HLT::TriggerElement::FeatureAccessHelper &fea) const
the FeatureAccessHelper is a class used to keep track of features attached to this TE.
size_t is2LegTopoChain(const TrigConf::HLTChain *ptrChain) const
StatusCode mirrorTEsStructure(ConvProxySet_t &, const HLT::TrigNavStructure &run2Nav) const
TrigCompositeUtils::Decision * l1Node
virtual StatusCode finalize() override
ServiceHandle< IClassIDSvc > m_clidSvc
StatusCode doCompression(ConvProxySet_t &convProxies, const HLT::TrigNavStructure &run2Nav) const
CLID m_CaloClusterContainerCLID
void printProxies(const ConvProxySet_t &proxies, std::function< bool(const ConvProxy *)> selector=[](const ConvProxy *){return true;}, const std::vector< std::function< void(const ConvProxy *)>> &printers={}) const
bool mergeAllowed(const ConvProxy *other) const
StatusCode linkFeaNode(ConvProxySet_t &convProxies, xAOD::TrigCompositeContainer &, const HLT::TrigNavStructure &run2Nav, const EventContext &context) const
std::vector< HLT::TriggerElement::FeatureAccessHelper > features
CLID m_TrigRingerRingsContainerCLID
StatusCode cureUnassociatedProxies(ConvProxySet_t &) const
std::function< void(const ConvProxy *)> m_teIDPrinter
const HLT::TriggerElement * te
std::set< ConvProxy * > parents
Gaudi::Property< std::vector< std::string > > m_chainsToSave
CLID m_TrackParticleContainerCLID
bool isChild(const ConvProxy *other) const
Gaudi::Property< bool > m_doSelfValidation