![]() |
ATLAS Offline Software
|
Consumes a set of Run 3 trigger navigation collection(s), applies slimming/thinning, writes out a single output collection. More...
#include <TrigNavSlimmingMTAlg.h>
Classes | |
| struct | Outputs |
Public Member Functions | |
| TrigNavSlimmingMTAlg (const std::string &name, ISvcLocator *pSvcLocator) | |
| virtual StatusCode | initialize () override |
| virtual StatusCode | execute (const EventContext &ctx) const override |
| template<> | |
| StatusCode | doRepack (TrigCompositeUtils::Decision *decision, SG::WriteHandle< xAOD::ParticleContainer > *writeHandle, const std::string &edgeName) const |
| template<> | |
| StatusCode | doRepackCopy (const TrigRoiDescriptor *object, SG::WriteHandle< TrigRoiDescriptorCollection > *writeHandle) const |
| virtual StatusCode | sysInitialize () override |
| Override sysInitialize. | |
| virtual bool | isClonable () const override |
| Specify if the algorithm is clonable. | |
| virtual unsigned int | cardinality () const override |
| Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. | |
| virtual StatusCode | sysExecute (const EventContext &ctx) override |
| Execute an algorithm. | |
| virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. | |
| virtual bool | filterPassed (const EventContext &ctx) const |
| virtual void | setFilterPassed (bool state, const EventContext &ctx) const |
| ServiceHandle< StoreGateSvc > & | evtStore () |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. | |
| const ServiceHandle< StoreGateSvc > & | detStore () const |
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. | |
| virtual StatusCode | sysStart () override |
| Handle START transition. | |
| virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. | |
| virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. | |
| Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T, V, H > &t) |
| void | updateVHKA (Gaudi::Details::PropertyBase &) |
| MsgStream & | msg () const |
| bool | msgLvl (const MSG::Level lvl) const |
Protected Member Functions | |
| void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
| remove all handles from I/O resolution | |
| std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > | renounce (T &h) |
| void | extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps) |
| Add StoreName to extra input/output deps as needed. | |
Private Types | |
| typedef std::map< const TrigCompositeUtils::Decision *, TrigCompositeUtils::Decision * > | IOCacheMap |
| typedef ServiceHandle< StoreGateSvc > | StoreGateSvc_t |
Private Member Functions | |
| 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 DecisionIDs used by the members of the ChainsFilter. | |
| 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 not run in this event due to application of HLT prescales. | |
| StatusCode | createL1GraphNodes (Outputs &outputContainers) const |
| Creates two new graph node from scratch, populates it using the TriggerDecisionTool with the hash of the item names L1 items which passed before prescale and after veto. | |
| 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 a new Decision object is required in the output collection, the propagateLinks function is applied. | |
| StatusCode | propagateLinks (const TrigCompositeUtils::Decision *input, TrigCompositeUtils::Decision *output) const |
| Copy links (graph edges) from input to output. | |
| 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. | |
| StatusCode | propagateSeedingRelation (const TrigCompositeUtils::NavGraphNode *inputNode, IOCacheMap &cache, const EventContext &ctx) const |
| Copy the subset of "seed" links which are present in the inputNode. | |
| StatusCode | repackLinks (TrigCompositeUtils::Decision *output, Outputs &outputContainers) const |
| Repacks ElementLinks in the DecisionObject to point to compact output containers written by this alg. | |
| 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. | |
| std::vector< size_t > | lookupHardCodedLegMultiplicities (const std::string &chain) const |
| Supplemental leg multiplicity information to support MC20. | |
| template<typename COLLECTION> | |
| 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 of the linked object to the supplied writeHandle and update the link in 'decision' to point to this rewritten object. | |
| template<typename COLLECTION> | |
| StatusCode | doRepackCopy (const typename COLLECTION::base_value_type *object, SG::WriteHandle< COLLECTION > *writeHandle) const |
| Performs the xAOD Copy. | |
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> | |
Private Attributes | |
| SG::ReadHandleKey< xAOD::TrigCompositeContainer > | m_primaryInputCollection |
| SG::WriteHandleKey< xAOD::TrigCompositeContainer > | m_outputCollection |
| SG::WriteHandleKey< TrigRoiDescriptorCollection > | m_outputRepackedROICollectionKey |
| SG::WriteHandleKey< xAOD::ParticleContainer > | m_outputRepackedFeaturesCollectionKey_Particle |
| SG::WriteHandleKey< xAOD::TrigMissingETContainer > | m_outputRepackedFeaturesCollectionKey_MET |
| Gaudi::Property< bool > | m_keepFailedBranches |
| Gaudi::Property< bool > | m_keepOnlyFinalFeatures |
| Gaudi::Property< bool > | m_removeEmptySteps |
| Gaudi::Property< bool > | m_propagatePrescaledNode |
| Gaudi::Property< bool > | m_propagateL1Nodes |
| Gaudi::Property< bool > | m_repackROIs |
| Gaudi::Property< bool > | m_repackMET |
| Gaudi::Property< bool > | m_repackFeatures |
| Gaudi::Property< std::vector< std::string > > | m_repackFeaturesExclusionList |
| Gaudi::Property< std::vector< std::string > > | m_edgesToDrop |
| Gaudi::Property< std::vector< std::string > > | m_nodesToDrop |
| Gaudi::Property< std::vector< std::string > > | m_allOutputContainers |
| Gaudi::Property< bool > | m_applyChainsFilterToSummaryNodes |
| Gaudi::Property< std::vector< std::string > > | m_chainsFilter |
| PublicToolHandle< Trig::TrigDecisionTool > | m_trigDec |
| Gaudi::Property< bool > | m_runtimeValidation |
| std::set< std::string > | m_allOutputContainersSet |
| Processed form of m_allOutputContainers. | |
| DataObjIDColl | m_extendedExtraObjects |
| Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks. | |
| StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) | |
| StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) | |
| std::vector< SG::VarHandleKeyArray * > | m_vhka |
| bool | m_varHandleArraysDeclared |
Consumes a set of Run 3 trigger navigation collection(s), applies slimming/thinning, writes out a single output collection.
Operations include:
Definition at line 34 of file TrigNavSlimmingMTAlg.h.
|
private |
Definition at line 42 of file TrigNavSlimmingMTAlg.h.
|
privateinherited |
Definition at line 388 of file AthCommonDataStore.h.
| TrigNavSlimmingMTAlg::TrigNavSlimmingMTAlg | ( | const std::string & | name, |
| ISvcLocator * | pSvcLocator ) |
Definition at line 84 of file TrigNavSlimmingMTAlg.cxx.
|
overridevirtualinherited |
Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
Override this to return 0 for reentrant algorithms.
Definition at line 75 of file AthCommonReentrantAlgorithm.cxx.
|
private |
Creates two new graph node from scratch, populates it using the TriggerDecisionTool with the hash of the item names L1 items which passed before prescale and after veto.
This makes available L1 trigger is-passed data in the same format as used for HLT navigation. This creates two nodes which were never made at P1 during Run 3.
| [out] | output | Pointer to the Decision object ptr in the output collection. |
Definition at line 393 of file TrigNavSlimmingMTAlg.cxx.
|
private |
Creates a new graph node from scratch, populates it with the Chain IDs of all HLT chains which were not run in this event due to application of HLT prescales.
The data are read from the trigger bits using the TrigDecisionTool. This re-creates a node which is available at P1 in Run 3, but which was never persisted into the online slimmed navigation.
| [out] | output | Pointer to the Decision object ptr in the output collection. |
| [in] | chainIDs | DecisionIDs are used to filter the output DecisionObjects. |
Definition at line 367 of file TrigNavSlimmingMTAlg.cxx.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
|
inlineinherited |
Definition at line 145 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition at line 95 of file AthCommonDataStore.h.
|
private |
Look for an ElementLink<COLLECTION> with the given edge-name in 'decision', if found then make a copy of the linked object to the supplied writeHandle and update the link in 'decision' to point to this rewritten object.
| [in] | decision | A mutable decision object we're outputting from the nav slimming |
| [in] | writeHandle | Mutable write handle where we can make a copy of the roi or feature. |
| StatusCode TrigNavSlimmingMTAlg::doRepack | ( | TrigCompositeUtils::Decision * | decision, |
| SG::WriteHandle< xAOD::ParticleContainer > * | writeHandle, | ||
| const std::string & | edgeName ) const |
Definition at line 22 of file TrigNavSlimmingMTAlg.cxx.
| StatusCode TrigNavSlimmingMTAlg::doRepackCopy | ( | const TrigRoiDescriptor * | object, |
| SG::WriteHandle< TrigRoiDescriptorCollection > * | writeHandle ) const |
Definition at line 75 of file TrigNavSlimmingMTAlg.cxx.
|
private |
Performs the xAOD Copy.
Any non-xAOD collections will need to provide an explicit implementation of this function. For example, TrigRoiDescriptorCollection for example.
|
inlineinherited |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition at line 85 of file AthCommonDataStore.h.
|
overridevirtual |
Definition at line 126 of file TrigNavSlimmingMTAlg.cxx.
|
protectedinherited |
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 94 of file AthCommonReentrantAlgorithm.cxx.
|
private |
Convert the ChainsFilter into the set of chain-IDd and chain-leg-IDs which comprises all of the DecisionIDs used by the members of the ChainsFilter.
| [out] | chainIDs | The set to be populated from m_chainsFilter and, optionally, the navigation terminus node |
| [in] | applyPassingChainsFilter | Set to the terminus node to additionally filter on per-event passing chains. Or set to nullptr to skip this filter. |
Definition at line 327 of file TrigNavSlimmingMTAlg.cxx.
|
inlinevirtualinherited |
Definition at line 96 of file AthCommonReentrantAlgorithm.h.
|
overridevirtual |
Definition at line 90 of file TrigNavSlimmingMTAlg.cxx.
|
overridevirtualinherited |
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
|
private |
Map a const Decision object from an input collection to its equivalent in the output collection Where a new Decision object is required in the output collection, the propagateLinks function is applied.
| [in] | input | The const Decision object from a input collection. |
| [out] | output | Pointer to the Decision object ptr in the output collection. |
| [in,out] | cache | Cached mapping of input->output objects. Cached output is returned if present. |
| [in,out] | outputContainers | The write handles, contains the nav write handle which should own any new Decision objects which need to be created. |
| [in] | chainIDs | DecisionIDs which should propagate from input to output DecisionObjects. |
| [in] | ctx | Event context. |
Definition at line 419 of file TrigNavSlimmingMTAlg.cxx.
|
overridevirtualinherited |
Specify if the algorithm is clonable.
Reentrant algorithms are clonable.
Reimplemented in InDet::GNNSeedingTrackMaker, InDet::SCT_Clusterization, InDet::SiSPGNNTrackMaker, InDet::SiSPSeededTrackFinder, InDet::SiTrackerSpacePointFinder, ITkPixelCablingAlg, ITkStripCablingAlg, RoIBResultToxAOD, SCT_ByteStreamErrorsTestAlg, SCT_CablingCondAlgFromCoraCool, SCT_CablingCondAlgFromText, SCT_ConditionsParameterTestAlg, SCT_ConditionsSummaryTestAlg, SCT_ConfigurationConditionsTestAlg, SCT_FlaggedConditionTestAlg, SCT_LinkMaskingTestAlg, SCT_MajorityConditionsTestAlg, SCT_ModuleVetoTestAlg, SCT_MonitorConditionsTestAlg, SCT_PrepDataToxAOD, SCT_RawDataToxAOD, SCT_ReadCalibChipDataTestAlg, SCT_ReadCalibDataTestAlg, SCT_RODVetoTestAlg, SCT_SensorsTestAlg, SCT_SiliconConditionsTestAlg, SCT_StripVetoTestAlg, SCT_TdaqEnabledTestAlg, SCT_TestCablingAlg, SCTEventFlagWriter, SCTRawDataProvider, SCTSiLorentzAngleTestAlg, SCTSiPropertiesTestAlg, and Simulation::BeamEffectsAlg.
Definition at line 68 of file AthCommonReentrantAlgorithm.cxx.
|
private |
Supplemental leg multiplicity information to support MC20.
Definition at line 322 of file TrigNavSlimmingMTAlg.cxx.
|
inlineinherited |
Definition at line 24 of file AthCommonMsg.h.
|
inlineinherited |
Definition at line 30 of file AthCommonMsg.h.
|
overridevirtualinherited |
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
|
private |
Print debug information relating to the re-packing of feature links as Particle objects.
Definition at line 557 of file TrigNavSlimmingMTAlg.cxx.
|
private |
Copy DecisionIDs (passing chains and passing chain-legs) from input to output.
Applies the ChainsFilter.
| [in] | input | The Decision object to copy from. |
| [out] | output | The Decision object to copy to. |
| [in] | chainIDs | DecisionIDs which should propagate from input to output DecisionObjects. |
Definition at line 531 of file TrigNavSlimmingMTAlg.cxx.
|
private |
Copy links (graph edges) from input to output.
Applies the EdgesToDrop thinning. Note: Does not copy "seed" links which form the underlying graph structure.
Definition at line 493 of file TrigNavSlimmingMTAlg.cxx.
|
private |
Copy the subset of "seed" links which are present in the inputNode.
This function uses the IOCacheMap to perform all linking only against the mutable Decision objects which form the slimmed and thinned navigation. It must only be called after inputToOutput has been used to create all of the output Decision objects.
| [in] | inputNode | The thinned transient NavGraphNode which only now has seed links which we want to keep |
| [in,out] | cache | Cached mapping of input->output objects. |
| [in] | ctx | Event context. |
Definition at line 441 of file TrigNavSlimmingMTAlg.cxx.
|
inlineprotectedinherited |
Definition at line 380 of file AthCommonDataStore.h.
|
inlineprotectedinherited |
remove all handles from I/O resolution
Definition at line 364 of file AthCommonDataStore.h.
|
private |
Repacks ElementLinks in the DecisionObject to point to compact output containers written by this alg.
| [in] | decision | A mutable decision object we're outputting from the nav slimming |
| [in] | outputContainers | The mutable write handles, in these we will make a copy of the rois or features we repack. |
Definition at line 572 of file TrigNavSlimmingMTAlg.cxx.
|
inlinevirtualinherited |
Definition at line 100 of file AthCommonReentrantAlgorithm.h.
|
overridevirtualinherited |
Execute an algorithm.
We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.
Definition at line 85 of file AthCommonReentrantAlgorithm.cxx.
|
overridevirtualinherited |
Override sysInitialize.
Override sysInitialize from the base class.
Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc
Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc
Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.
Reimplemented in HypoBase, and InputMakerBase.
Definition at line 61 of file AthCommonReentrantAlgorithm.cxx.
|
overridevirtualinherited |
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
|
inlineinherited |
Definition at line 308 of file AthCommonDataStore.h.
|
private |
Definition at line 116 of file TrigNavSlimmingMTAlg.h.
|
private |
Processed form of m_allOutputContainers.
Definition at line 138 of file TrigNavSlimmingMTAlg.h.
|
private |
Definition at line 120 of file TrigNavSlimmingMTAlg.h.
|
private |
Definition at line 125 of file TrigNavSlimmingMTAlg.h.
|
privateinherited |
Pointer to StoreGate (detector store by default)
Definition at line 393 of file AthCommonDataStore.h.
|
private |
Definition at line 108 of file TrigNavSlimmingMTAlg.h.
|
privateinherited |
Pointer to StoreGate (event store by default)
Definition at line 390 of file AthCommonDataStore.h.
|
privateinherited |
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 114 of file AthCommonReentrantAlgorithm.h.
|
private |
Definition at line 71 of file TrigNavSlimmingMTAlg.h.
|
private |
Definition at line 75 of file TrigNavSlimmingMTAlg.h.
|
private |
Definition at line 112 of file TrigNavSlimmingMTAlg.h.
|
private |
Definition at line 55 of file TrigNavSlimmingMTAlg.h.
|
private |
Definition at line 67 of file TrigNavSlimmingMTAlg.h.
|
private |
Definition at line 63 of file TrigNavSlimmingMTAlg.h.
|
private |
Definition at line 59 of file TrigNavSlimmingMTAlg.h.
|
private |
Definition at line 51 of file TrigNavSlimmingMTAlg.h.
|
private |
Definition at line 87 of file TrigNavSlimmingMTAlg.h.
|
private |
Definition at line 83 of file TrigNavSlimmingMTAlg.h.
|
private |
Definition at line 79 of file TrigNavSlimmingMTAlg.h.
|
private |
Definition at line 99 of file TrigNavSlimmingMTAlg.h.
|
private |
Definition at line 103 of file TrigNavSlimmingMTAlg.h.
|
private |
Definition at line 95 of file TrigNavSlimmingMTAlg.h.
|
private |
Definition at line 91 of file TrigNavSlimmingMTAlg.h.
|
private |
Definition at line 134 of file TrigNavSlimmingMTAlg.h.
|
private |
Definition at line 130 of file TrigNavSlimmingMTAlg.h.
|
privateinherited |
Definition at line 399 of file AthCommonDataStore.h.
|
privateinherited |
Definition at line 398 of file AthCommonDataStore.h.