|
ATLAS Offline Software
|
The TrigNavigationThinningSvc is an athena tool used to slim the trigger Navigation structure in various ways.
More...
#include <TrigNavigationThinningSvc.h>
|
StatusCode | lateFillConfiguration (State &state) const |
| configures at the first event More...
|
|
StatusCode | drop (State &state) const |
| clear the result of the slimming in the doSliming argument (vector<uint32_t>) Makes no sense to combine with other options More...
|
|
StatusCode | reload (State &state) const |
| Reload the slimmed navigation in TDT so that all clients of current job see the chage. More...
|
|
StatusCode | restore (State &state) const |
| Restore the original navigation structure. More...
|
|
StatusCode | save (State &state) const |
| Save the result of the slimming in the doSlimming argument (vector<uint32_t>) More...
|
|
StatusCode | print (State &state) const |
|
StatusCode | squeeze (State &state) const |
| Remove intermediate TEs leaving very flat structure with event node, rois and terminals. More...
|
|
StatusCode | dropFeatures (State &state) const |
| Removes references to features from the navigation structure. More...
|
|
StatusCode | dropRoIs (State &state) const |
| Removes RoI nodes, rather aggressive option, should be use as one of last actions as it makes impossible to traverse the tree. More...
|
|
StatusCode | dropEmptyRoIs (State &state) const |
| Removes RoI nodes, which do not seed anything. More...
|
|
StatusCode | dropFeatureless (State &state) const |
| Removes TEs which have no features (combine wiht squeeze) More...
|
|
StatusCode | dropInactive () |
| Removes TEs which are inactive (rejected by hypothesis) More...
|
|
StatusCode | syncThinning (State &state) const |
| reset indexes in the after the thinning More...
|
|
StatusCode | dropChains (State &state) const |
| remove info not related to the specified chains More...
|
|
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 seeded and seeding TEs,. More...
|
|
StatusCode | removeGhostTriggerElements (HLT::TriggerElement *te=0) |
| Removes all trigger elements with the flag ghost set to true from the navigation structure. More...
|
|
StatusCode | removeFeaturelessTriggerElements (State &state, HLT::TriggerElement *te=0) |
| Removes all trigger elements with no features from the navigation structure. More...
|
|
StatusCode | recursivelyRemoveNodesFromNavigation (HLT::TriggerElement *te) |
| Removes the passed te and all children from the navigation structure. More...
|
|
StatusCode | removeFeatures (State &state, const std::set< std::pair< CLID, uint16_t > > &doDelete) const |
| This is a helper function for removeFeatures(HLT::NavigationCore*, ...). More...
|
|
StatusCode | retainFeatures (State &state, const std::set< std::pair< CLID, uint16_t > > &toRetain) const |
| This is a helper function for removeFeatures(HLT::NavigationCore*, ...). More...
|
|
StatusCode | removeTriggerElementFromVector (HLT::TriggerElement *te, std::vector< HLT::TriggerElement * > &v) const |
| Removes all instances of the supplied TriggerElement from the supplied vector. More...
|
|
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 not be. More...
|
|
bool | toBeIncluded (State &state, HLT::TriggerElement *te, std::vector< HLT::TriggerElement * > *inclusionList, std::vector< HLT::TriggerElement * > *exclusionList) |
|
StatusCode | propagateFeaturesToChildren (const HLT::TriggerElement *te) const |
| Propagates the features on given TE to its children. More...
|
|
The TrigNavigationThinningSvc is an athena tool used to slim the trigger Navigation structure in various ways.
- Author
- Ben Smith bcsmi.nosp@m.th@f.nosp@m.as.ha.nosp@m.rvar.nosp@m.d.edu - Harvard University major rework Tomasz Bold
This tool allows users to slim the trigger Navigation structure, which is important when creating derived datasets, as the structure can grow very large (> 30k per event).
There are three main slimming operations that are implemented via this tool:
(a) TriggerElement squeezing: this removes all intermediate trigger elements (those which are not the initial node, an RoI node, or a terminal node)
(b) Feature Removal: this removes all links to the specified features from the trigger elements in the structure. Note that it does not remove the holder from the navigation structure.
(c) Remove the TEs related to certain chains
(d) Complete removal
and few other actions
All operations on the navigation are configured via the Actions property which specifies set of operations (and the order) with which they are executed in the slimming process. The main method to execute is doSlimming - the vector given as an argument is filled whti serialized and slimmed content of the navigation. !!! go back !!! we need to remove holders from slimmed navigation as they are becoming now the biggest
Definition at line 53 of file TrigNavigationThinningSvc.h.
◆ Action
typedef StatusCode(TrigNavigationThinningSvc::* TrigNavigationThinningSvc::Action) (State &state) const |
|
private |
◆ TrigNavigationThinningSvc()
TrigNavigationThinningSvc::TrigNavigationThinningSvc |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
Definition at line 31 of file TrigNavigationThinningSvc.cxx.
33 : base_class(
name, pSvcLocator),
37 declareProperty(
"TrigDecisionTool",
m_trigDecisionTool,
"Tool handle to TDT/Navigation.");
38 declareProperty(
"ChainsRegex",
m_chainsRegex=
"",
"Keep only information related to this chains");
39 declareProperty(
"FeatureInclusionList",
m_featureInclusionList,
"This features will be kept. This setting overrules the FeatureExclusionList. Only list of types or type#key pairs are supported.");
40 declareProperty(
"FeatureExclusionList",
m_featureExclusionList,
"This features will be dropeed. It can be specified as * meaning all, or as a list of typenames, or typename#key pairs.");
41 declareProperty(
"ReportOperations",
m_report=
false,
"Additional verbosity flag, when enabled the operations on trigger elements are reported (VERBOSE logging level)");
57 std::string possibleActions;
59 possibleActions +=
a.first +
" ";
60 declareProperty(
"Actions",
m_actions,
"Operations which need to be done on the navigation"+possibleActions);
◆ doSlimming()
StatusCode TrigNavigationThinningSvc::doSlimming |
( |
const EventContext & |
ctx, |
|
|
std::vector< uint32_t > & |
slimmed_and_serialized |
|
) |
| const |
|
overridevirtual |
Definition at line 287 of file TrigNavigationThinningSvc.cxx.
290 ATH_MSG_DEBUG(
name() <<
" is obtaining the TrigNavigationThinningSvc lock in slot " << ctx.slot() <<
" for event " << ctx.eventID().event_number() );
299 ATH_MSG_WARNING (
"Could not get navigation from Trigger Decision Tool" );
302 return StatusCode::SUCCESS;
305 State state (ctx, *cnav, slimmed_and_serialized);
308 state.originalNavigation.clear();
309 std::vector<uint32_t>
cuts;
310 cnav->serialize(state.originalNavigation,
cuts);
317 auto function = ifunc->second;
318 CHECK( (this->*
function)(state) );
322 return StatusCode::SUCCESS;
◆ drop()
StatusCode TrigNavigationThinningSvc::drop |
( |
State & |
state | ) |
const |
|
private |
clear the result of the slimming in the doSliming argument (vector<uint32_t>) Makes no sense to combine with other options
Definition at line 123 of file TrigNavigationThinningSvc.cxx.
125 state.destinationNavigation.clear();
127 return StatusCode::SUCCESS;
◆ dropChains()
StatusCode TrigNavigationThinningSvc::dropChains |
( |
State & |
state | ) |
const |
|
private |
remove info not related to the specified chains
Definition at line 267 of file TrigNavigationThinningSvc.cxx.
269 return StatusCode::SUCCESS;
272 for (
auto te: state.navigation.getAllTEs() ) {
273 if ( state.navigation.isInitialNode(te)
274 or state.navigation.isRoINode(te) ) {
277 if ( state.tesToProtect.find(te->getId()) == state.tesToProtect.end() ) {
281 return StatusCode::SUCCESS;
◆ dropEmptyRoIs()
StatusCode TrigNavigationThinningSvc::dropEmptyRoIs |
( |
State & |
state | ) |
const |
|
private |
Removes RoI nodes, which do not seed anything.
Definition at line 249 of file TrigNavigationThinningSvc.cxx.
250 for (
auto te: state.navigation.getAllTEs() ) {
251 if ( state.navigation.isRoINode(te)
252 and te->getRelated(TriggerElement::seedsRelation).empty() )
255 return StatusCode::SUCCESS;
◆ dropFeatureless()
StatusCode TrigNavigationThinningSvc::dropFeatureless |
( |
State & |
state | ) |
const |
|
private |
Removes TEs which have no features (combine wiht squeeze)
Definition at line 258 of file TrigNavigationThinningSvc.cxx.
259 for (
auto te: state.navigation.getAllTEs() ) {
260 if ( te->getFeatureAccessHelpers().empty() )
263 return StatusCode::SUCCESS;
◆ dropFeatures()
StatusCode TrigNavigationThinningSvc::dropFeatures |
( |
State & |
state | ) |
const |
|
private |
Removes references to features from the navigation structure.
Features are specified via the inclusion and exclusion lists. If the inclusion list is specified, only elements on that list are included (the exclusion list is ignored). If the inclusion list is NULL or empty, then all elements except those on the exclusion list are included.
Definition at line 185 of file TrigNavigationThinningSvc.cxx.
190 std::set<std::pair<CLID, uint16_t> > toDelete;
191 std::set<std::pair<CLID, uint16_t> > toRetain;
193 std::lock_guard<std::recursive_mutex> lock(state.navigation.getMutex());
196 if ( holders.empty() ) {
197 ATH_MSG_ERROR(
"The navigation does not contain any features. This is likely a configuration problem.");
198 return StatusCode::FAILURE;
201 for(
auto h : holders ) {
212 toRetain.insert(std::make_pair(
h->typeClid(),
h->subTypeIndex() ));
213 ATH_MSG_DEBUG(
"will be keeping references associated to: " <<
h->collectionName()<<
"#"<<
h->key() <<
" clid: " <<
h->typeClid() );
220 toDelete.insert(std::make_pair(
h->typeClid(),
h->subTypeIndex() ));
221 ATH_MSG_DEBUG(
"will be dropping references associated to: " <<
h->collectionName()<<
"#"<<
h->key() );
227 if ( not toRetain.empty() )
229 if ( not toDelete.empty() )
237 return StatusCode::SUCCESS;
◆ dropInactive()
StatusCode TrigNavigationThinningSvc::dropInactive |
( |
| ) |
|
|
private |
Removes TEs which are inactive (rejected by hypothesis)
◆ dropRoIs()
StatusCode TrigNavigationThinningSvc::dropRoIs |
( |
State & |
state | ) |
const |
|
private |
Removes RoI nodes, rather aggressive option, should be use as one of last actions as it makes impossible to traverse the tree.
Nonetheless the tree can be to some extent usable in the analysis i.e. when no TEs traversing is really needed
Definition at line 241 of file TrigNavigationThinningSvc.cxx.
242 for (
auto te: state.navigation.getAllTEs() ) {
243 if ( state.navigation.isRoINode(te) )
246 return StatusCode::SUCCESS;
◆ finalize()
StatusCode TrigNavigationThinningSvc::finalize |
( |
| ) |
|
|
overridevirtual |
◆ initialize()
StatusCode TrigNavigationThinningSvc::initialize |
( |
| ) |
|
|
overridevirtual |
Definition at line 70 of file TrigNavigationThinningSvc.cxx.
74 m_checkToolDeps =
false;
81 return StatusCode::FAILURE;
83 ATH_MSG_INFO (
"Successfully retrived the TrigDecisionTool!" );
86 ATH_MSG_FATAL (
"Could not retrive the TrigDecisionTool as it was not specified!" );
87 return StatusCode::FAILURE;
90 ATH_MSG_DEBUG (
"Leaving TrigNavigationThinningSvc::Initialize" );
93 ATH_MSG_ERROR(
"Can't use the features inclusion and exclusion lists at the same time.");
94 return StatusCode::FAILURE;
104 ATH_MSG_FATAL(
"Dropping features is demanded but neither inclusion and exclusion lists are set");
105 return StatusCode::FAILURE;
115 return StatusCode::FAILURE;
118 return StatusCode::SUCCESS;
◆ lateFillConfiguration()
StatusCode TrigNavigationThinningSvc::lateFillConfiguration |
( |
State & |
state | ) |
const |
|
private |
configures at the first event
Definition at line 334 of file TrigNavigationThinningSvc.cxx.
339 ATH_MSG_DEBUG(
"Will keep information related to this chains" << chainGroup->getListOfTriggers());
340 auto confTEs = chainGroup->getHLTTriggerElements();
341 for (
auto&
vec: confTEs) {
342 for (
auto confTEPtr:
vec) {
343 state.tesToProtect.insert(confTEPtr->id());
346 return StatusCode::SUCCESS;
◆ print()
StatusCode TrigNavigationThinningSvc::print |
( |
State & |
state | ) |
const |
|
private |
◆ propagateFeaturesToChildren()
Propagates the features on given TE to its children.
Definition at line 598 of file TrigNavigationThinningSvc.cxx.
601 return StatusCode::SUCCESS;
603 const std::vector<TriggerElement::FeatureAccessHelper>& features = te->getFeatureAccessHelpers() ;
605 const std::vector<TriggerElement*>
children = te->getRelated(TriggerElement::seedsRelation);
610 for(
auto& fea: features ) {
614 std::stringstream
ss;
618 ch->getFeatureAccessHelpers().insert(
ch->getFeatureAccessHelpers().begin(), fea );
622 return StatusCode::SUCCESS;
◆ recursivelyRemoveNodesFromNavigation()
StatusCode TrigNavigationThinningSvc::recursivelyRemoveNodesFromNavigation |
( |
HLT::TriggerElement * |
te | ) |
|
|
private |
Removes the passed te and all children from the navigation structure.
◆ reload()
StatusCode TrigNavigationThinningSvc::reload |
( |
State & |
state | ) |
const |
|
private |
Reload the slimmed navigation in TDT so that all clients of current job see the chage.
Definition at line 131 of file TrigNavigationThinningSvc.cxx.
133 state.destinationNavigation.clear();
134 std::vector<unsigned int>
cuts;
135 std::vector<uint32_t>
temp;
136 state.navigation.serialize(
temp,
cuts);
137 state.navigation.reset();
138 state.navigation.prepare();
139 state.navigation.deserialize(
temp);
140 ATH_MSG_DEBUG (
"Reloaded the navigation content in TDT (all clients will see reduced navigation content) ..." );
141 return StatusCode::SUCCESS;
◆ removeFeaturelessTriggerElements()
Removes all trigger elements with no features from the navigation structure.
Definition at line 468 of file TrigNavigationThinningSvc.cxx.
472 for (
auto te: state.navigation.getAllTEs() ) {
477 if( featuresCount == 0 ) {
481 return StatusCode::SUCCESS;
◆ removeFeatures()
StatusCode TrigNavigationThinningSvc::removeFeatures |
( |
State & |
state, |
|
|
const std::set< std::pair< CLID, uint16_t > > & |
doDelete |
|
) |
| const |
|
private |
This is a helper function for removeFeatures(HLT::NavigationCore*, ...).
Note that that function should be instead, because it not only removes the features from the tree, but also cleans them up within the navigation structure.
Definition at line 421 of file TrigNavigationThinningSvc.cxx.
435 ATH_MSG_DEBUG(
"Will remove " << toDelete.size()<<
" feature type/key");
437 for (
auto te: state.navigation.getAllTEs()) {
438 for (
auto& fea: te->getFeatureAccessHelpers() ) {
439 if ( toDelete.find( std::make_pair(fea.getCLID(), fea.getIndex().subTypeIndex()) ) != toDelete.end() )
449 return StatusCode::SUCCESS;
◆ removeGhostTriggerElements()
StatusCode TrigNavigationThinningSvc::removeGhostTriggerElements |
( |
HLT::TriggerElement * |
te = 0 | ) |
|
|
private |
Removes all trigger elements with the flag ghost set to true from the navigation structure.
◆ removeTriggerElement()
StatusCode TrigNavigationThinningSvc::removeTriggerElement |
( |
State & |
state, |
|
|
HLT::TriggerElement * |
te, |
|
|
bool |
propagateFeatures = true |
|
) |
| const |
|
private |
Removes the passed trigger element from the navigation structure by removing all references to it in seeded and seeding TEs,.
- Parameters
-
propagateFeatures | decides if features need to be moved to children TEs |
Definition at line 349 of file TrigNavigationThinningSvc.cxx.
353 if(state.navigation.isInitialNode(te)) {
354 return StatusCode::SUCCESS;
363 if ( propagateFeatures )
370 const std::vector<TriggerElement*>& sameRoI = te->
getRelated(TriggerElement::sameRoIRelation);
372 for(
auto nodeInRoI : sameRoI ) {
375 std::vector<TriggerElement*>& relations = nodeInRoI->m_relations[ TriggerElement::sameRoIRelation ];
382 std::vector<TriggerElement*> seededBy = te->
m_relations[TriggerElement::seededByRelation];
384 for(
auto seededByNode: seededBy ) {
387 std::vector<TriggerElement*>& relations = seededByNode->m_relations[ TriggerElement::seedsRelation ];
393 if(!state.navigation.isTerminalNode(te))
394 seededByNode->relate( te->
m_relations[ TriggerElement::seedsRelation ], TriggerElement::seedsRelation );
400 std::vector<TriggerElement*>& seeds = te->
m_relations[TriggerElement::seedsRelation];
402 for(
auto seedsNode: seeds ) {
405 std::vector<TriggerElement*>& relations = seedsNode->m_relations[ TriggerElement::seededByRelation ];
409 if(!state.navigation.isInitialNode(te))
410 seedsNode->relate( te->
m_relations[ TriggerElement::seededByRelation ], TriggerElement::seededByRelation );
413 return StatusCode::SUCCESS;
◆ removeTriggerElementFromVector()
Removes all instances of the supplied TriggerElement from the supplied vector.
Returns the number of elements removed.
Definition at line 489 of file TrigNavigationThinningSvc.cxx.
492 return StatusCode::SUCCESS;
495 v.erase(newend,
v.end());
497 return StatusCode::SUCCESS;
◆ restore()
StatusCode TrigNavigationThinningSvc::restore |
( |
State & |
state | ) |
const |
|
private |
Restore the original navigation structure.
Definition at line 153 of file TrigNavigationThinningSvc.cxx.
155 state.navigation.reset();
156 state.navigation.prepare();
157 state.navigation.deserialize(state.originalNavigation);
159 return StatusCode::SUCCESS;
◆ retainFeatures()
StatusCode TrigNavigationThinningSvc::retainFeatures |
( |
State & |
state, |
|
|
const std::set< std::pair< CLID, uint16_t > > & |
toRetain |
|
) |
| const |
|
private |
This is a helper function for removeFeatures(HLT::NavigationCore*, ...).
Either this or the above is caled depending which of the sets is smaller
- Warning
- this is a bit more agresive as it cleans up the navigation from transient objects
Definition at line 453 of file TrigNavigationThinningSvc.cxx.
455 ATH_MSG_DEBUG(
"Will retain " << toRetain.size()<<
" feature type/key");
457 for (
auto te: state.navigation.getAllTEs()) {
458 for (
auto& fea: te->getFeatureAccessHelpers() ) {
459 if ( toRetain.find( std::make_pair(fea.getCLID(), fea.getIndex().subTypeIndex()) ) == toRetain.end() )
463 return StatusCode::SUCCESS;
◆ save()
StatusCode TrigNavigationThinningSvc::save |
( |
State & |
state | ) |
const |
|
private |
Save the result of the slimming in the doSlimming argument (vector<uint32_t>)
Definition at line 145 of file TrigNavigationThinningSvc.cxx.
146 std::vector<unsigned int>
cuts;
147 state.navigation.serialize(state.destinationNavigation,
cuts);
149 return StatusCode::SUCCESS;
◆ squeeze()
StatusCode TrigNavigationThinningSvc::squeeze |
( |
State & |
state | ) |
const |
|
private |
Remove intermediate TEs leaving very flat structure with event node, rois and terminals.
Definition at line 169 of file TrigNavigationThinningSvc.cxx.
170 for (
auto te: state.navigation.getAllTEs() ) {
171 if ( state.navigation.isInitialNode(te)
172 or state.navigation.isRoINode(te)
173 or state.navigation.isTerminalNode(te)
174 or state.tesToProtect.find(te->getId()) != state.tesToProtect.end())
181 return StatusCode::SUCCESS;
◆ syncThinning()
StatusCode TrigNavigationThinningSvc::syncThinning |
( |
State & |
state | ) |
const |
|
private |
reset indexes in the after the thinning
Definition at line 739 of file TrigNavigationThinningSvc.cxx.
740 const EventContext& ctx = Gaudi::Hive::currentContext();
743 std::lock_guard<std::recursive_mutex> lock(state.navigation.getMutex());
746 if ( holders.empty() ) {
747 ATH_MSG_ERROR(
"The navigation does not contain any features. This is likely a configuration problem.");
748 return StatusCode::FAILURE;
751 for(
auto holder : holders) {
753 if ( not ipd->
proxy(holder->containerClid(), holder->label() ) ) {
754 ATH_MSG_DEBUG(
"Skipping feature missing in the store: " << holder->label());
757 holder->syncWithSG();
761 ATH_MSG_DEBUG (
"Thinning occured for this container" << *holder <<
", going to ajust the indices" );
770 IndexRecalculator recalculator( dec );
772 for (
const auto& te: state.navigation.getAllTEs() ) {
773 for (
auto& fea: te->getFeatureAccessHelpers() ) {
774 if ( fea.getCLID() == holder->typeClid()
775 and fea.getIndex().subTypeIndex() == holder->subTypeIndex() ) {
782 idx.updateBeginAndEnd(newBegin, newEnd);
794 return StatusCode::SUCCESS;
◆ toBeIncluded() [1/2]
Definition at line 550 of file TrigNavigationThinningSvc.cxx.
559 if( state.navigation.isInitialNode(te) || state.navigation.isRoINode(te) )
566 if(inclusionList && inclusionList->size() > 0) {
569 if(std::find_if(inclusionList->begin(), inclusionList->end(),
570 TriggerElementFind(te)) != inclusionList->end())
573 if(exclusionList && std::find_if(exclusionList->begin(), exclusionList->end(),
574 TriggerElementFind(te)) != exclusionList->end())
583 if(!exclusionList || exclusionList->size() == 0)
587 if(std::find_if(exclusionList->begin(), exclusionList->end(),
588 TriggerElementFind(te)) != exclusionList->end()) {
◆ toBeIncluded() [2/2]
bool TrigNavigationThinningSvc::toBeIncluded |
( |
State & |
state, |
|
|
HLT::TriggerElement * |
te, |
|
|
std::vector< std::string > * |
inclusionList, |
|
|
std::vector< std::string > * |
exclusionList |
|
) |
| |
|
private |
Returns true if the TriggerElement should be included in the navigation tree and false if it should not be.
Definition at line 500 of file TrigNavigationThinningSvc.cxx.
505 if(inclusionList && inclusionList->size() > 0) {
508 int onExclusionList = 0;
509 for(std::vector< TriggerElement::FeatureAccessHelper >::const_iterator iter =
516 if(exclusionList &&
std::find(exclusionList->begin(), exclusionList->end(),
534 if(!exclusionList || exclusionList->size() == 0)
537 for(std::vector< TriggerElement::FeatureAccessHelper >::const_iterator iter =
◆ m_actions
std::vector<std::string> TrigNavigationThinningSvc::m_actions |
|
private |
◆ m_actionsMap
std::map<std::string, Action> TrigNavigationThinningSvc::m_actionsMap |
|
private |
◆ m_chainsRegex
std::string TrigNavigationThinningSvc::m_chainsRegex |
|
private |
◆ m_featureDropSet
std::set<std::string> TrigNavigationThinningSvc::m_featureDropSet |
|
private |
◆ m_featureExclusionList
std::vector<std::string> TrigNavigationThinningSvc::m_featureExclusionList |
|
private |
◆ m_featureInclusionList
std::vector<std::string> TrigNavigationThinningSvc::m_featureInclusionList |
|
private |
◆ m_featureKeepSet
std::set<std::string> TrigNavigationThinningSvc::m_featureKeepSet |
|
private |
◆ m_report
bool TrigNavigationThinningSvc::m_report |
|
private |
◆ m_trigDecisionTool
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
Helper class for conversion from/to int stored in TE and pair of ints used in Navigation Object point...
std::vector< std::string > m_actions
StatusCode lateFillConfiguration(State &state) const
configures at the first event
virtual SG::DataProxy * proxy(const CLID &id, const std::string &key) const =0
Get proxy with given id and key.
std::string find(const std::string &s)
return a remapped string
StatusCode reload(State &state) const
Reload the slimmed navigation in TDT so that all clients of current job see the chage.
StatusCode dropFeatureless(State &state) const
Removes TEs which have no features (combine wiht squeeze)
Hold thinning decisions for one container.
StatusCode retainFeatures(State &state, const std::set< std::pair< CLID, uint16_t > > &toRetain) const
This is a helper function for removeFeatures(HLT::NavigationCore*, ...).
te_id_type getId() const
reset internals.
std::vector< size_t > vec
#define ATH_MSG_VERBOSE(x)
std::mutex TrigNavigationThinningSvcMutex::s_mutex ATLAS_THREAD_SAFE
StatusCode save(State &state) const
Save the result of the slimming in the doSlimming argument (vector<uint32_t>)
void setTransient(bool t=true)
std::string m_chainsRegex
const std::vector< TriggerElement * > & getRelated(Relation rel) const
returns reference to the likns to other TriggerElements related by relation r
const ExtendedEventContext & getExtendedEventContext(const EventContext &ctx)
Retrieve an extended context from a context object.
The NavigationCore class, adds on top of the TrigNavStructure the EDM read-only handling.
It used to be useful piece of code for replacing actual SG with other store of similar functionality ...
StatusCode print(State &state) const
static std::mutex s_mutex
StatusCode removeFeatures(State &state, const std::set< std::pair< CLID, uint16_t > > &doDelete) const
This is a helper function for removeFeatures(HLT::NavigationCore*, ...).
CalibratedSpacePoint::State State
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 ...
#define CHECK(...)
Evaluate an expression and check for errors.
StatusCode dropRoIs(State &state) const
Removes RoI nodes, rather aggressive option, should be use as one of last actions as it makes impossi...
StatusCode syncThinning(State &state) const
reset indexes in the after the thinning
std::map< Relation, std::vector< TriggerElement * > > m_relations
relations holder (features outside)
StatusCode dropFeatures(State &state) const
Removes references to features from the navigation structure.
StatusCode squeeze(State &state) const
Remove intermediate TEs leaving very flat structure with event node, rois and terminals.
bool m_report
TE operations verbosity flag.
const SG::ThinningDecisionBase * getThinningDecision(const EventContext &ctx, const std::string &key)
Retrieve the current thinning decision for key.
StatusCode restore(State &state) const
Restore the original navigation structure.
std::set< std::string > m_featureKeepSet
computed from above
StatusCode propagateFeaturesToChildren(const HLT::TriggerElement *te) const
Propagates the features on given TE to its children.
the FeatureAccessHelper is a class used to keep track of features attached to this TE.
#define ATH_MSG_WARNING(x)
StatusCode drop(State &state) const
clear the result of the slimming in the doSliming argument (vector<uint32_t>) Makes no sense to combi...
StatusCode dropEmptyRoIs(State &state) const
Removes RoI nodes, which do not seed anything.
StatusCode removeTriggerElementFromVector(HLT::TriggerElement *te, std::vector< HLT::TriggerElement * > &v) const
Removes all instances of the supplied TriggerElement from the supplied vector.
const std::vector< FeatureAccessHelper > & getFeatureAccessHelpers() const
returns all features which ara attached to this TE
std::vector< std::string > m_featureExclusionList
ToolHandle< Trig::TrigDecisionTool > m_trigDecisionTool
std::vector< std::string > m_featureInclusionList
std::map< std::string, Action > m_actionsMap
StatusCode dropChains(State &state) const
remove info not related to the specified chains
std::set< std::string > m_featureDropSet
computed from above