7#ifndef TRIGNAVTOOLS_TRIGNAVIGATIONTHINNINGSVC_H
8#define TRIGNAVTOOLS_TRIGNAVIGATIONTHINNINGSVC_H
10#include "GaudiKernel/IIncidentListener.h"
59 virtual StatusCode
finalize()
override;
61 virtual StatusCode
doSlimming(
const EventContext& ,
62 std::vector<uint32_t>& slimmed_and_serialized )
const override;
75 State (
const EventContext& the_ctx,
77 std::vector<uint32_t>& the_destinationNavigation)
82 const EventContext&
ctx;
174 bool propagateFeatures =
true)
const;
219 const std::set<std::pair<CLID, uint16_t> >& doDelete)
const;
227 const std::set<std::pair<CLID, uint16_t> >& toRetain)
const;
241 std::vector<std::string> *exclusionList);
243 std::vector<HLT::TriggerElement*> *exclusionList);
Define interface for doing TrigNavigation thinning.
The NavigationCore class, adds on top of the TrigNavStructure the EDM read-only handling.
TriggerElement is the basic ingreedient of the interface between HLT algorithms and the navigation It...
TriggerElementFind(const HLT::TriggerElement *te)
const HLT::TriggerElement * m_RoI
bool operator()(const HLT::TriggerElement *te)
std::vector< std::string > m_actions
StatusCode lateFillConfiguration(State &state) const
configures at the first event
StatusCode syncThinning(State &state) const
reset indexes in the after the thinning
bool toBeIncluded(State &state, HLT::TriggerElement *te, std::vector< std::string > *inclusionList, std::vector< std::string > *exclusionList)
Returns true if the TriggerElement should be included in the navigation tree and false if it should n...
StatusCode save(State &state) const
Save the result of the slimming in the doSlimming argument (vector<uint32_t>)
StatusCode drop(State &state) const
clear the result of the slimming in the doSliming argument (vector<uint32_t>) Makes no sense to combi...
virtual StatusCode finalize() override
StatusCode removeTriggerElement(State &state, HLT::TriggerElement *te, bool propagateFeatures=true) const
Removes the passed trigger element from the navigation structure by removing all references to it in ...
std::map< std::string, Action > m_actionsMap
StatusCode removeFeaturelessTriggerElements(State &state, HLT::TriggerElement *te=0)
Removes all trigger elements with no features from the navigation structure.
std::string m_chainsRegex
StatusCode dropInactive()
Removes TEs which are inactive (rejected by hypothesis)
StatusCode dropRoIs(State &state) const
Removes RoI nodes, rather aggressive option, should be use as one of last actions as it makes impossi...
StatusCode dropChains(State &state) const
remove info not related to the specified chains
StatusCode removeFeatures(State &state, const std::set< std::pair< CLID, uint16_t > > &doDelete) const
This is a helper function for removeFeatures(HLT::NavigationCore*, ...).
std::vector< std::string > m_featureInclusionList
StatusCode dropFeatures(State &state) const
Removes references to features from the navigation structure.
virtual StatusCode doSlimming(const EventContext &, std::vector< uint32_t > &slimmed_and_serialized) const override
StatusCode retainFeatures(State &state, const std::set< std::pair< CLID, uint16_t > > &toRetain) const
This is a helper function for removeFeatures(HLT::NavigationCore*, ...).
virtual StatusCode initialize() override
StatusCode reload(State &state) const
Reload the slimmed navigation in TDT so that all clients of current job see the chage.
std::set< std::string > m_featureKeepSet
computed from above
StatusCode squeeze(State &state) const
Remove intermediate TEs leaving very flat structure with event node, rois and terminals.
StatusCode dropFeatureless(State &state) const
Removes TEs which have no features (combine wiht squeeze)
StatusCode print(State &state) const
StatusCode removeTriggerElementFromVector(HLT::TriggerElement *te, std::vector< HLT::TriggerElement * > &v) const
Removes all instances of the supplied TriggerElement from the supplied vector.
StatusCode propagateFeaturesToChildren(const HLT::TriggerElement *te) const
Propagates the features on given TE to its children.
bool m_report
TE operations verbosity flag.
StatusCode(TrigNavigationThinningSvc::* Action)(State &state) const
StatusCode dropEmptyRoIs(State &state) const
Removes RoI nodes, which do not seed anything.
std::vector< std::string > m_featureExclusionList
StatusCode removeGhostTriggerElements(HLT::TriggerElement *te=0)
Removes all trigger elements with the flag ghost set to true from the navigation structure.
ToolHandle< Trig::TrigDecisionTool > m_trigDecisionTool
StatusCode recursivelyRemoveNodesFromNavigation(HLT::TriggerElement *te)
Removes the passed te and all children from the navigation structure.
std::set< std::string > m_featureDropSet
computed from above
TrigNavigationThinningSvc(const std::string &name, ISvcLocator *pSvcLocator)
StatusCode restore(State &state) const
Restore the original navigation structure.
It used to be useful piece of code for replacing actual SG with other store of similar functionality ...
std::vector< uint32_t > & destinationNavigation
std::vector< uint32_t > originalNavigation
State(const EventContext &the_ctx, HLT::NavigationCore &the_navigation, std::vector< uint32_t > &the_destinationNavigation)
HLT::NavigationCore & navigation
std::set< HLT::te_id_type > tesToProtect