![]() |
ATLAS Offline Software
|
The TrigNavigationThinningSvc is an athena tool used to slim the trigger Navigation structure in various ways. More...
#include <TrigNavigationThinningSvc.h>
Classes | |
| struct | State |
| class | TriggerElementFind |
| Used to compare pointers of TriggerElements. More... | |
Public Member Functions | |
| TrigNavigationThinningSvc (const std::string &name, ISvcLocator *pSvcLocator) | |
| virtual StatusCode | initialize () override |
| virtual StatusCode | finalize () override |
| virtual StatusCode | doSlimming (const EventContext &, std::vector< uint32_t > &slimmed_and_serialized) const override |
Private Types | |
| typedef StatusCode(TrigNavigationThinningSvc::* | Action) (State &state) const |
Private Member Functions | |
| StatusCode | lateFillConfiguration (State &state) const |
| configures at the first event | |
| 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 | |
| StatusCode | reload (State &state) const |
| Reload the slimmed navigation in TDT so that all clients of current job see the chage. | |
| StatusCode | restore (State &state) const |
| Restore the original navigation structure. | |
| StatusCode | save (State &state) const |
| Save the result of the slimming in the doSlimming argument (vector<uint32_t>) | |
| StatusCode | print (State &state) const |
| StatusCode | squeeze (State &state) const |
| Remove intermediate TEs leaving very flat structure with event node, rois and terminals. | |
| StatusCode | dropFeatures (State &state) const |
| Removes references to features from the navigation structure. | |
| 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. | |
| StatusCode | dropEmptyRoIs (State &state) const |
| Removes RoI nodes, which do not seed anything. | |
| StatusCode | dropFeatureless (State &state) const |
| Removes TEs which have no features (combine wiht squeeze) | |
| StatusCode | dropInactive () |
| Removes TEs which are inactive (rejected by hypothesis) | |
| StatusCode | syncThinning (State &state) const |
| reset indexes in the after the thinning | |
| StatusCode | dropChains (State &state) const |
| remove info not related to the specified chains | |
| 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,. | |
| StatusCode | removeGhostTriggerElements (HLT::TriggerElement *te=0) |
| Removes all trigger elements with the flag ghost set to true from the navigation structure. | |
| StatusCode | removeFeaturelessTriggerElements (State &state, HLT::TriggerElement *te=0) |
| Removes all trigger elements with no features from the navigation structure. | |
| StatusCode | recursivelyRemoveNodesFromNavigation (HLT::TriggerElement *te) |
| Removes the passed te and all children from the navigation structure. | |
| StatusCode | removeFeatures (State &state, const std::set< std::pair< CLID, uint16_t > > &doDelete) const |
| This is a helper function for removeFeatures(HLT::NavigationCore*, ...). | |
| StatusCode | retainFeatures (State &state, const std::set< std::pair< CLID, uint16_t > > &toRetain) const |
| This is a helper function for removeFeatures(HLT::NavigationCore*, ...). | |
| StatusCode | removeTriggerElementFromVector (HLT::TriggerElement *te, std::vector< HLT::TriggerElement * > &v) const |
| Removes all instances of the supplied TriggerElement from the supplied vector. | |
| 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. | |
| 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. | |
Private Attributes | |
| ToolHandle< Trig::TrigDecisionTool > | m_trigDecisionTool |
| std::vector< std::string > | m_featureInclusionList |
| std::vector< std::string > | m_featureExclusionList |
| std::set< std::string > | m_featureKeepSet |
| computed from above | |
| std::set< std::string > | m_featureDropSet |
| computed from above | |
| std::vector< std::string > | m_actions |
| std::map< std::string, Action > | m_actionsMap |
| std::string | m_chainsRegex |
| bool | m_report |
| TE operations verbosity flag. | |
The TrigNavigationThinningSvc is an athena tool used to slim the trigger Navigation structure in various ways.
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.
|
private |
Definition at line 90 of file TrigNavigationThinningSvc.h.
| TrigNavigationThinningSvc::TrigNavigationThinningSvc | ( | const std::string & | name, |
| ISvcLocator * | pSvcLocator ) |
Definition at line 31 of file TrigNavigationThinningSvc.cxx.
|
overridevirtual |
Definition at line 287 of file TrigNavigationThinningSvc.cxx.
|
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.
|
private |
remove info not related to the specified chains
Definition at line 267 of file TrigNavigationThinningSvc.cxx.
|
private |
Removes RoI nodes, which do not seed anything.
Definition at line 249 of file TrigNavigationThinningSvc.cxx.
|
private |
Removes TEs which have no features (combine wiht squeeze)
Definition at line 258 of file TrigNavigationThinningSvc.cxx.
|
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.
|
private |
Removes TEs which are inactive (rejected by hypothesis)
|
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.
|
overridevirtual |
Definition at line 327 of file TrigNavigationThinningSvc.cxx.
|
overridevirtual |
Definition at line 70 of file TrigNavigationThinningSvc.cxx.
|
private |
configures at the first event
Definition at line 334 of file TrigNavigationThinningSvc.cxx.
|
private |
Definition at line 164 of file TrigNavigationThinningSvc.cxx.
|
private |
Propagates the features on given TE to its children.
Definition at line 598 of file TrigNavigationThinningSvc.cxx.
|
private |
Removes the passed te and all children from the navigation structure.
|
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.
|
private |
Removes all trigger elements with no features from the navigation structure.
Definition at line 468 of file TrigNavigationThinningSvc.cxx.
|
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.
|
private |
Removes all trigger elements with the flag ghost set to true from the navigation structure.
|
private |
Removes the passed trigger element from the navigation structure by removing all references to it in seeded and seeding TEs,.
| propagateFeatures | decides if features need to be moved to children TEs |
Definition at line 349 of file TrigNavigationThinningSvc.cxx.
|
private |
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.
|
private |
Restore the original navigation structure.
Definition at line 153 of file TrigNavigationThinningSvc.cxx.
|
private |
This is a helper function for removeFeatures(HLT::NavigationCore*, ...).
Either this or the above is caled depending which of the sets is smaller
Definition at line 453 of file TrigNavigationThinningSvc.cxx.
|
private |
Save the result of the slimming in the doSlimming argument (vector<uint32_t>)
Definition at line 145 of file TrigNavigationThinningSvc.cxx.
|
private |
Remove intermediate TEs leaving very flat structure with event node, rois and terminals.
Definition at line 169 of file TrigNavigationThinningSvc.cxx.
|
private |
reset indexes in the after the thinning
Definition at line 739 of file TrigNavigationThinningSvc.cxx.
|
private |
Definition at line 550 of file TrigNavigationThinningSvc.cxx.
|
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.
|
private |
Definition at line 89 of file TrigNavigationThinningSvc.h.
|
private |
Definition at line 91 of file TrigNavigationThinningSvc.h.
|
private |
Definition at line 92 of file TrigNavigationThinningSvc.h.
|
private |
computed from above
Definition at line 71 of file TrigNavigationThinningSvc.h.
|
private |
Definition at line 69 of file TrigNavigationThinningSvc.h.
|
private |
Definition at line 68 of file TrigNavigationThinningSvc.h.
|
private |
computed from above
Definition at line 70 of file TrigNavigationThinningSvc.h.
|
private |
TE operations verbosity flag.
Definition at line 95 of file TrigNavigationThinningSvc.h.
|
private |
Definition at line 66 of file TrigNavigationThinningSvc.h.