|  | ATLAS Offline Software
    | 
 
 
 
Go to the documentation of this file.
    5 #ifndef TRIGNAVSLIMMINGMT_TRIGNAVSLIMMINGMTALG_H 
    6 #define TRIGNAVSLIMMINGMT_TRIGNAVSLIMMINGMTALG_H 
   42   typedef std::map<const TrigCompositeUtils::Decision*, TrigCompositeUtils::Decision*> 
IOCacheMap;
 
   52     this, 
"PrimaryInputCollection", 
"HLTNav_Summary",
 
   53     "Input collection containing the HLTPassRaw terminus node of the navigation."};
 
   56     this, 
"OutputCollection", 
"HLTNav_Summary_ESDSlimmed",
 
   57     "Single output collection containing the slimmed navigation nodes."};
 
   60     this, 
"RepackROIsOutputCollection", 
"HLTNav_RepackedROIs",
 
   61     "Single output collection containing any repacked ROIs (use with RepackROIs)."};
 
   64     this, 
"RepackFeaturesOutputCollection_Particle", 
"HLTNav_RepackedFeatures_Particle",
 
   65     "Single output collection containing any repacked Particle features (use with RepackFeatures)."};
 
   68     this, 
"RepackFeaturesOutputCollection_MET", 
"HLTNav_RepackedFeatures_MET",
 
   69     "Single output collection containing any repacked IParticle features (use with RepackFeatures)."};
 
   72     this, 
"KeepFailedBranched", 
true,
 
   73     "Keep nodes which are in branches of the graph which fail selection for all triggers, these are used by T0 monitoring."};
 
   76     this, 
"KeepOnlyFinalFeatures", 
false,
 
   77     "Keeps only the final features which accepted a chain. Fine for analysis-use."};
 
   80     this, 
"RemoveEmptySteps", 
false,
 
   81     "Slim away ComboHypo->InputMaker empty step pairs which come from parallel chain alignment (special case: keep if C.H. adds a feature, e.g. BLS). Fine for analysis-use."};
 
   84     this, 
"PropagatePrescaledNode", 
false,
 
   85     "Copies the 'HLTPrescaled' node (if it exists) from the input to output navigation collection. If it does not exist, it can be re-created from the xAOD::TriggerDecision"};
 
   88     this, 
"PropagateL1Nodes", 
false,
 
   89     "Copies the 'L1TAP' and 'L1TAV' nodes (if they exists) from the input to output navigation collection. If they do not exist, they can be re-created from the xAOD::TriggerDecision"};
 
   92     this, 
"RepackROIs", 
false,
 
   93     "Re-pack the target of all 'roi' and 'initialRoI' edges into a single container (WriteHandle defined above)"};
 
   96     this, 
"RepackMET", 
false,
 
   97     "Re-pack the target of all 'feature' edges to xAOD::TrigMissingET objects into a single container (WriteHandle defined above)"};
 
  100     this, 
"RepackFeatures", 
false,
 
  101     "Re-pack the target of all 'feature' edges into a small number of containers (WriteHandle defined above)"};
 
  104     this, 
"RepackFeaturesExclusionList", {},
 
  105     "Optional list of StoreGate key strings. If strings are provided and RepackFeatures is true, then 'feature' edges  " 
  106     "whose StoreGate key is an exact match to an entry on the supplied list will not be re-packed and will be left unchanged"};
 
  109     this, 
"EdgesToDrop", {
"view"},
 
  110     "Any edges within the set of names will be dropped as part of the thinning"};
 
  113     this, 
"NodesToDrop", {
"F"},
 
  114     "Any nodes within the set of names will be dropped as part of the thinning and the navigation re-wired around them"};
 
  117     this, 
"AllOutputContainers", {},
 
  118     "List of SG keys of all possible output containers at differing verbosity. Used to stop different instances of the alg interfering with each other."};
 
  121     this, 
"ApplyChainsFilterToSummaryNodes", 
true,
 
  122     "If the ChainsFilter (if supplied) should be applied to the terminus, express terminus and prescaled nodes. " 
  123     "If set to false, the trigger decision for any chain may be obtained from the navigation at the expense of additional file size."};
 
  126     this, 
"ChainsFilter", {},
 
  127     "Optional list of HLT chains. If provided, only navigation data corresponding to these chains will be kept. " 
  128     "Matching multiple chains via regular expressions is supported."};
 
  131     this, 
"TrigDecisionTool", 
"Trig::TrigDecisionTool/TrigDecisionTool",
 
  132     "Trigger Decision Tool, used to apply the ChainsFilter"};
 
  135     this, 
"RuntimeValidation", 
false,
 
  136     "Perform additional validation checks on the navigation, and print WARNINGs if anything out of the ordinary is found."};
 
  181     const EventContext& ctx) 
const;
 
  218     const EventContext& ctx) 
const;
 
  235     const std::string& when) 
const;
 
  249   template< 
typename COLLECTION >
 
  252     const std::string& edgeName) 
const;
 
  258   template< 
typename COLLECTION >
 
  266 #endif // TRIGNAVSLIMMINGMT_TRIGNAVSLIMMINGMTALG_H 
  
SG::WriteHandleKey< xAOD::TrigMissingETContainer > m_outputRepackedFeaturesCollectionKey_MET
Gaudi::Property< bool > m_runtimeValidation
std::map< const TrigCompositeUtils::Decision *, TrigCompositeUtils::Decision * > IOCacheMap
StatusCode createL1GraphNodes(Outputs &outputContainers) const
Creates two new graph node from scratch, populates it using the TriggerDecisionTool with the hash of ...
virtual StatusCode execute(const EventContext &ctx) const override
SG::ReadHandleKey< xAOD::TrigCompositeContainer > m_primaryInputCollection
Gaudi::Property< bool > m_repackROIs
Gaudi::Property< bool > m_keepFailedBranches
std::set< std::string > m_allOutputContainersSet
Processed form of m_allOutputContainers.
Gaudi::Property< bool > m_repackFeatures
Gaudi::Property< std::vector< std::string > > m_edgesToDrop
SG::WriteHandle< TrigRoiDescriptorCollection > * rois
std::vector< size_t > lookupHardCodedLegMultiplicities(const std::string &chain) const
Supplemental leg multiplicity information to support MC20.
Property holding a SG store/key/clid from which a ReadHandle is made.
StatusCode doRepack(TrigCompositeUtils::Decision *decision, SG::WriteHandle< COLLECTION > *writeHandle, const std::string &edgeName) const
Look for an ElementLink<COLLECTION> with the given edge-name in 'decision', if found then make a copy...
SG::WriteHandleKey< xAOD::TrigCompositeContainer > m_outputCollection
SG::WriteHandle< xAOD::ParticleContainer > * particles
An algorithm that can be simultaneously executed in multiple threads.
TrigNavSlimmingMTAlg(const std::string &name, ISvcLocator *pSvcLocator)
Handle class for recording to StoreGate.
SG::WriteHandleKey< xAOD::ParticleContainer > m_outputRepackedFeaturesCollectionKey_Particle
Property holding a SG store/key/clid from which a WriteHandle is made.
Gaudi::Property< bool > m_propagateL1Nodes
::StatusCode StatusCode
StatusCode definition for legacy code.
StatusCode propagateSeedingRelation(const TrigCompositeUtils::NavGraphNode *inputNode, IOCacheMap &cache, const EventContext &ctx) const
Copy the subset of "seed" links which are present in the inputNode.
Gaudi::Property< bool > m_repackMET
StatusCode fillChainIDs(TrigCompositeUtils::DecisionIDContainer &chainIDs, const TrigCompositeUtils::Decision *applyPassingChainsFilter) const
Convert the ChainsFilter into the set of chain-IDd and chain-leg-IDs which comprises all of the Decis...
Gaudi::Property< std::vector< std::string > > m_chainsFilter
Gaudi::Property< std::vector< std::string > > m_allOutputContainers
Class used to describe composite objects in the HLT.
Gaudi::Property< bool > m_propagatePrescaledNode
void printIParticleRepackingDebug(const TrigCompositeUtils::Decision *output, const std::string &when) const
Print debug information relating to the re-packing of feature links as Particle objects.
StatusCode inputToOutput(const TrigCompositeUtils::Decision *input, TrigCompositeUtils::Decision **output, IOCacheMap &cache, Outputs &outputContainers, const TrigCompositeUtils::DecisionIDContainer &chainIDs, const EventContext &ctx) const
Map a const Decision object from an input collection to its equivalent in the output collection Where...
Gaudi::Property< std::vector< std::string > > m_repackFeaturesExclusionList
Consumes a set of Run 3 trigger navigation collection(s), applies slimming/thinning,...
PublicToolHandle< Trig::TrigDecisionTool > m_trigDec
SG::WriteHandleKey< TrigRoiDescriptorCollection > m_outputRepackedROICollectionKey
std::set< DecisionID > DecisionIDContainer
Gaudi::Property< bool > m_removeEmptySteps
Gaudi::Property< bool > m_applyChainsFilterToSummaryNodes
SG::WriteHandle< xAOD::TrigCompositeContainer > * nav
Transient utility class to represent a node in a graph (m_decisionObject), and a vector of edges (m_f...
StatusCode doRepackCopy(const typename COLLECTION::base_value_type *object, SG::WriteHandle< COLLECTION > *writeHandle) const
Performs the xAOD Copy.
Gaudi::Property< bool > m_keepOnlyFinalFeatures
virtual StatusCode initialize() override
Handle class for reading from StoreGate.
StatusCode propagateLinks(const TrigCompositeUtils::Decision *input, TrigCompositeUtils::Decision *output) const
Copy links (graph edges) from input to output.
StatusCode createPresaledGraphNode(Outputs &outputContainers, const TrigCompositeUtils::DecisionIDContainer &chainIDs) const
Creates a new graph node from scratch, populates it with the Chain IDs of all HLT chains which were n...
SG::WriteHandle< xAOD::TrigMissingETContainer > * mets
StatusCode repackLinks(TrigCompositeUtils::Decision *output, Outputs &outputContainers) const
Repacks ElementLinks in the DecisionObject to point to compact output containers written by this alg.
StatusCode propagateDecisionIDs(const TrigCompositeUtils::Decision *input, TrigCompositeUtils::Decision *output, const TrigCompositeUtils::DecisionIDContainer &chainIDs) const
Copy DecisionIDs (passing chains and passing chain-legs) from input to output.
Gaudi::Property< std::vector< std::string > > m_nodesToDrop