ATLAS Offline Software
TrigCompositeUtils.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TrigCompositeUtils_TrigCompositeUtils_h
6 #define TrigCompositeUtils_TrigCompositeUtils_h
7 
8 #include <set>
9 #include <memory>
10 #include <functional>
11 
12 #include "AthLinks/ElementLink.h"
18 #include "AsgMessaging/MsgStream.h"
20 
21 
22 #ifdef XAOD_STANDALONE
23 #include "AsgTools/SgTEvent.h"
24 #endif
25 
29 
31 
32 #include "HLTIdentifier.h"
33 #include "NavGraph.h"
38 #include "CxxUtils/sgkey_t.h"
39 
40 #define TRIGCOMPUTILS_ENABLE_EARLY_EXIT 1
41 
42 namespace TrigCompositeUtils {
44 
45  // cppcheck-suppress unknownMacro
46  ANA_MSG_HEADER (msgRejected)
47 
48 
49  typedef SG::WriteHandle<DecisionContainer> DecisionWriteHandle;
50 
56  template<class CONT>
57  SG::WriteHandle<CONT> createAndStoreNoAux( const SG::WriteHandleKey<CONT>& key, const EventContext& ctx );
58 
64  template<class CONT, class AUX>
65  SG::WriteHandle<CONT> createAndStoreWithAux( const SG::WriteHandleKey<CONT>& key, const EventContext& ctx );
66 
71  SG::WriteHandle<DecisionContainer> createAndStore( const SG::WriteHandleKey<DecisionContainer>& key, const EventContext& ctx );
72 
76  void createAndStore( SG::WriteHandle<DecisionContainer>& handle );
77 
88  Decision* newDecisionIn ( DecisionContainer* dc, const std::string& name = "" );
89 
97  Decision* newDecisionIn( DecisionContainer* dc, const Decision* dOld, const std::string& name, const EventContext& ctx );
98 
104  void addDecisionID( DecisionID id, Decision* d);
105 
112 
118 
125 
126 
131 
138 
145 
146 
150  bool allFailed( const Decision* d );
151 
156  template<typename T>
158 
163 
168 
173 
177  void linkToPrevious(Decision* d, const std::string& previousCollectionKey, size_t previousIndex);
178 
182  void linkToPrevious(Decision* d, const Decision* dOld, const EventContext& ctx);
183 
188 
193 
200 
207  HLT::Identifier createLegName(const HLT::Identifier& chainIdentifier, size_t counter);
208 
215  HLT::Identifier createLegName(const std::string& name, size_t counter);
216 
222  HLT::Identifier getIDFromLeg(const HLT::Identifier& legIdentifier);
223 
229  int32_t getIndexFromLeg(const HLT::Identifier& legIdentifier);
230 
236  int32_t getIndexFromLeg(const std::string& name);
237 
244  std::pair<std::string, int32_t> getNameAndIndexFromLeg(const std::string& name);
245 
251  bool isLegId(const HLT::Identifier& legIdentifier);
252 
258  bool isLegId(const std::string& name);
259 
265  bool isChainId(const HLT::Identifier& chainIdentifier);
266 
272  bool isChainId(const std::string& name);
273 
278  const Decision* find(const Decision*, const std::function<bool(const Decision*)>& filter);
279 
283  class HasObject {
284  public:
288  HasObject(const std::string& name): m_name(name) {}
293  bool operator()(const Decision* ) const;
294  private:
295  std::string m_name;
296  };
297 
302  public:
306  HasObjectCollection(const std::string& name): m_name(name) {}
311  bool operator()(const Decision* ) const;
312  private:
313  std::string m_name;
314  };
315 
316 
322  const Decision* getTerminusNode(const DecisionContainer& container);
323  const Decision* getTerminusNode(SG::ReadHandle<DecisionContainer>& container); // older signature
324 
325 
331  const Decision* getExpressTerminusNode(const DecisionContainer& container);
332 
333 
340  const Decision* getNodeByName(const DecisionContainer& container, const std::string& nodeName);
341 
342 
352  std::vector<const Decision*> getRejectedDecisionNodes(const asg::EventStoreType* eventStore,
353  const EventContext& ctx,
354  const std::string& summaryCollectionKey,
355  const DecisionIDContainer& ids = {},
356  const std::set<std::string>& keysToIgnore = std::set<std::string>());
357 
358 
368  void recursiveGetDecisions(const Decision* node,
369  NavGraph& navGraph,
370  const DecisionIDContainer& ids = {},
371  const bool enforceDecisionOnStartNode = true);
372 
373 
381  const Decision* comingFrom,
382  NavGraph& navGraph,
383  std::set<const Decision*>& fullyExploredFrom,
384  const DecisionIDContainer& ids,
385  const bool enforceDecisionOnNode);
386 
387 
395  void recursiveFlagForThinning(NavGraph& node,
396  const bool keepOnlyFinalFeatures,
397  const bool removeEmptySteps,
398  const std::vector<std::string>& nodesToDrop);
399 
400 
406  void recursiveFlagForThinningInternal(NavGraphNode* node,
407  bool modeKeep,
408  std::set<NavGraphNode*>& fullyExploredFrom,
409  const bool keepOnlyFinalFeatures,
410  const bool removeEmptySteps,
411  const std::vector<std::string>& nodesToDrop);
412 
413 
416  inline const std::string& initialRoIString() { return Decision::s_initialRoIString; }
417  inline const std::string& initialRecRoIString() { return Decision::s_initialRecRoIString; }
418  inline const std::string& roiString() { return Decision::s_roiString; }
419  inline const std::string& viewString() { return Decision::s_viewString; }
420  inline const std::string& featureString() { return Decision::s_featureString; }
421  inline const std::string& seedString() { return Decision::s_seedString; }
422 
423  inline const std::string& hltSeedingNodeName() { return Decision::s_hltSeedingNodeNameString; }
424  inline const std::string& filterNodeName() { return Decision::s_filterNodeNameString; }
425  inline const std::string& inputMakerNodeName() { return Decision::s_inputMakerNodeNameString; }
426  inline const std::string& hypoAlgNodeName() { return Decision::s_hypoAlgNodeNameString; }
427  inline const std::string& comboHypoAlgNodeName() { return Decision::s_comboHypoAlgNodeNameString; }
428  inline const std::string& summaryFilterNodeName() { return Decision::s_summaryFilterNodeNameString; }
429  inline const std::string& summaryPassNodeName() { return Decision::s_summaryPassNodeNameString; }
433 
439  template<class CONTAINER>
440  void filterLinkVectorByContainerKey(const std::string& containerSGKey, std::vector<ElementLink<CONTAINER>>& vector);
441 
453  template<class CONTAINER>
454  const std::vector< LinkInfo<CONTAINER> > recursiveGetFeaturesOfType(
455  const NavGraph& navGraph,
456  const std::string& containerSGKey = "",
457  const unsigned int behaviour = TrigDefs::lastFeatureOfType,
458  const std::string& navElementLinkKey = featureString(),
459  const DecisionIDContainer& chainIDs = DecisionIDContainer());
460 
468  template<class CONTAINER>
470  std::vector< LinkInfo<CONTAINER> >& features,
471  std::set<const NavGraphNode*>& fullyExploredFrom,
472  const NavGraphNode* navGraphNode,
473  const std::string& containerSGKey,
474  const unsigned int behaviour,
475  const std::string& navElementLinkKey,
476  const DecisionIDContainer& chainIDs);
477 
486  template<typename T>
489  const std::string& linkName,
490  const bool suppressMultipleLinksWarning = false);
491 
504  template<typename T>
505  void
507  const std::string& linkName,
508  std::vector<LinkInfo<T>>& links,
509  unsigned int behaviour = TrigDefs::allFeaturesOfType,
510  std::set<const xAOD::TrigComposite*>* fullyExploredFrom = nullptr);
511 
523  template<typename T>
524  std::vector<LinkInfo<T>>
526  const std::string& linkName,
527  unsigned int behaviour = TrigDefs::allFeaturesOfType);
528 
542  bool typelessFindLink(const Decision* start,
543  const std::string& linkName,
544  sgkey_t& key,
545  uint32_t& clid,
547  const Decision*& source,
548  const bool suppressMultipleLinksWarning = false);
549 
554  bool typelessFindLink(const NavGraph& subGraph,
555  const std::string& linkName,
556  sgkey_t& key,
557  uint32_t& clid,
559  const Decision*& source,
560  const bool suppressMultipleLinksWarning = false);
561 
577  bool typelessFindLinks(const Decision* start,
578  const std::string& linkName,
579  std::vector<sgkey_t>& keyVec,
580  std::vector<uint32_t>& clidVec,
581  std::vector<Decision::index_type>& indexVec,
582  std::vector<const Decision*>& sourceVec,
583  const unsigned int behaviour = TrigDefs::allFeaturesOfType,
584  std::set<const Decision*>* fullyExploredFrom = nullptr);
585 
589  bool typelessFindLinks(const NavGraphNode* start,
590  const std::string& linkName,
591  std::vector<sgkey_t>& key,
592  std::vector<uint32_t>& clid,
593  std::vector<Decision::index_type>& index,
594  std::vector<const Decision*>& sourceVec,
595  const unsigned int behaviour = TrigDefs::allFeaturesOfType,
596  std::set<const Decision*>* fullyExploredFrom = nullptr);
597 
603  const std::string& linkName,
604  std::vector<sgkey_t>& keyVec,
605  std::vector<uint32_t>& clidVec,
606  std::vector<Decision::index_type>& indexVec,
607  std::vector<const Decision*>& sourceVec);
608 
623  const std::string& chainName,
624  const std::vector<LinkInfo<xAOD::IParticleContainer>>& features,
625  const std::vector<std::size_t>& legMultiplicities,
626  const std::function<bool(const std::vector<LinkInfo<xAOD::IParticleContainer>>&)>& filter);
627 
642  const std::string& chainName,
643  const std::vector<LinkInfo<xAOD::IParticleContainer>>& features,
644  const std::vector<std::size_t>& legMultiplicities,
646 
663  const std::string& chainName,
664  const std::vector<LinkInfo<xAOD::IParticleContainer>>& features,
665  const TrigConf::HLTChain *chainInfo,
666  const std::function<bool(const std::vector<LinkInfo<xAOD::IParticleContainer>>&)>& filter);
667 
684  const std::string& chainName,
685  const std::vector<LinkInfo<xAOD::IParticleContainer>>& features,
686  const TrigConf::HLTChain *chainInfo,
688 
693  std::string dump( const Decision* tc, const std::function< std::string( const Decision* )>& printerFnc );
694 
695 }
696 
698 
699 #endif // TrigCompositeUtils_TrigCompositeUtils_h
WriteHandle.h
Handle class for recording to StoreGate.
TrigCompositeUtils::featureString
const std::string & featureString()
Definition: TrigCompositeUtils.h:420
TrigCompositeUtils::buildCombinations
Combinations buildCombinations(const std::string &chainName, const std::vector< LinkInfo< xAOD::IParticleContainer >> &features, const std::vector< std::size_t > &legMultiplicities, const std::function< bool(const std::vector< LinkInfo< xAOD::IParticleContainer >> &)> &filter)
Produce the combinations for a set of features.
Definition: TrigCompositeUtilsRoot.cxx:824
TrigCompositeUtils::find
const Decision * find(const Decision *start, const std::function< bool(const Decision *)> &filter)
traverses Decision object links for another Decision object fulfilling the prerequisite specified by ...
Definition: TrigCompositeUtilsRoot.cxx:236
TrigCompositeUtils::createAndStoreWithAux
SG::WriteHandle< CONT > createAndStoreWithAux(const SG::WriteHandleKey< CONT > &key, const EventContext &ctx)
Creates and right away records the Container CONT with the key.
TrigCompositeUtils::HasObjectCollection
Prerequisite object usable with.
Definition: TrigCompositeUtils.h:301
TrigCompositeUtils::DecisionID
unsigned int DecisionID
Definition: TrigComposite_v1.h:27
SG
Forward declaration.
Definition: CaloCellPacker_400_500.h:32
TrigCompositeUtils::passed
bool passed(DecisionID id, const DecisionIDContainer &idSet)
checks if required decision ID is in the set of IDs in the container
Definition: TrigCompositeUtilsRoot.cxx:118
TrigCompositeUtils::recursiveGetDecisions
void recursiveGetDecisions(const Decision *start, NavGraph &navGraph, const DecisionIDContainer &ids, const bool enforceDecisionOnStartNode)
Search back in time from "node" and locate all paths back through Decision objects for a given chain.
Definition: TrigCompositeUtilsRoot.cxx:446
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
TrigCompositeUtils::HasObjectCollection::operator()
bool operator()(const Decision *) const
checks if the arg Decision object has link collection of name specified at construction
Definition: TrigCompositeUtilsRoot.cxx:254
WriteCellNoiseToCool.src
src
Definition: WriteCellNoiseToCool.py:513
IPartCombItr.h
TrigCompositeUtils::newDecisionIn
Decision * newDecisionIn(DecisionContainer *dc, const std::string &name)
Helper method to create a Decision object, place it in the container and return a pointer to it.
Definition: TrigCompositeUtilsRoot.cxx:44
EventStoreType.h
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
index
Definition: index.py:1
hist_file_dump.d
d
Definition: hist_file_dump.py:142
TrigCompositeUtils::summaryFilterNodeName
const std::string & summaryFilterNodeName()
Definition: TrigCompositeUtils.h:428
TrigCompositeUtils::FilterType::UniqueObjects
@ UniqueObjects
Do not allow any repeated objects.
TrigCompositeUtils::summaryPassExpressNodeName
const std::string & summaryPassExpressNodeName()
Definition: TrigCompositeUtils.h:430
TrigCompositeUtils::addDecisionID
void addDecisionID(DecisionID id, Decision *d)
Appends the decision (given as ID) to the decision object.
Definition: TrigCompositeUtilsRoot.cxx:59
mergePhysValFiles.start
start
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:13
HLTChain.h
TrigCompositeUtils::summaryPassNodeName
const std::string & summaryPassNodeName()
Definition: TrigCompositeUtils.h:429
TrigCompositeUtils::HasObject::HasObject
HasObject(const std::string &name)
constructor specifying the link name
Definition: TrigCompositeUtils.h:288
taskman.template
dictionary template
Definition: taskman.py:314
xAOD::TrigComposite_v1::s_featureString
static const std::string s_featureString
Constant used to identify a feature.
Definition: TrigComposite_v1.h:251
TrigCompositeUtils::typelessFindLinksCommonLinkCollection
bool typelessFindLinksCommonLinkCollection(const Decision *start, const std::string &linkName, std::vector< sgkey_t > &keyVec, std::vector< uint32_t > &clidVec, std::vector< Decision::index_type > &indexVec, std::vector< const Decision * > &sourceVec)
Common functionality shared by both typelessFindLinks interfaces Returns true if at least one link wa...
Definition: TrigCompositeUtilsRoot.cxx:697
TrigCompositeUtils::insertDecisionIDs
void insertDecisionIDs(const Decision *src, Decision *dest)
Appends the decision IDs of src to the dest decision object.
Definition: TrigCompositeUtilsRoot.cxx:78
TrigCompositeUtils::passedDecisionIDs
DecisionIDContainer passedDecisionIDs(const Decision *d, const T &required)
return DecisionIDs in Decision object that match the required ones
TrigCompositeUtils::recursiveGetFeaturesOfTypeInternal
void recursiveGetFeaturesOfTypeInternal(std::vector< LinkInfo< CONTAINER > > &features, std::set< const NavGraphNode * > &fullyExploredFrom, const NavGraphNode *navGraphNode, const std::string &containerSGKey, const unsigned int behaviour, const std::string &navElementLinkKey, const DecisionIDContainer &chainIDs)
Internal implimentation called by recursiveGetFeaturesOfType, and by itself.
TrigCompositeUtils::findLinks
void findLinks(const Decision *start, const std::string &linkName, std::vector< LinkInfo< T >> &links, unsigned int behaviour=TrigDefs::allFeaturesOfType, std::set< const xAOD::TrigComposite * > *fullyExploredFrom=nullptr)
search back the TC links for the object of type T linked to the one of TC (recursively) Populates pro...
TrigCompositeUtils::comboHypoAlgNodeName
const std::string & comboHypoAlgNodeName()
Definition: TrigCompositeUtils.h:427
perfmonmt-printer.dest
dest
Definition: perfmonmt-printer.py:189
xAOD::TrigComposite_v1::s_seedString
static const std::string s_seedString
Constant used to identify a seed (parent)
Definition: TrigComposite_v1.h:253
xAOD::TrigComposite_v1::s_initialRoIString
static const std::string s_initialRoIString
Constant used to identify an initial ROI from L1.
Definition: TrigComposite_v1.h:243
TrigCompositeUtils::recursiveFlagForThinningInternal
void recursiveFlagForThinningInternal(NavGraphNode *node, bool modeKeep, std::set< NavGraphNode * > &fullyExploredFrom, const bool keepOnlyFinalFeatures, const bool removeEmptySteps, const std::vector< std::string > &nodesToDrop)
Used by recursiveFlagForThinning.
Definition: TrigCompositeUtilsRoot.cxx:471
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
TrigConf::HLTChain
HLT chain configuration information.
Definition: TrigConfHLTData/TrigConfHLTData/HLTChain.h:35
m_name
std::string m_name
Definition: ColumnarPhysliteTest.cxx:63
Conditions.h
TrigCompositeUtils::getNameAndIndexFromLeg
std::pair< std::string, int32_t > getNameAndIndexFromLeg(const std::string &name)
Extract the name and numeric index of a leg identifier.
Definition: TrigCompositeUtilsRoot.cxx:207
TrigCompositeUtils::createAndStore
SG::WriteHandle< DecisionContainer > createAndStore(const SG::WriteHandleKey< DecisionContainer > &key, const EventContext &ctx)
Creates and right away records the DecisionContainer with the key.
Definition: TrigCompositeUtilsRoot.cxx:28
TrigCompositeUtils::roiString
const std::string & roiString()
Definition: TrigCompositeUtils.h:418
TrigCompositeUtils::HasObject::m_name
std::string m_name
Definition: TrigCompositeUtils.h:295
TrigCompositeUtils::filterLinkVectorByContainerKey
void filterLinkVectorByContainerKey(const std::string &containerSGKey, std::vector< ElementLink< CONTAINER >> &vector)
Removes ElementLinks from the supplied vector if they do not come from the specified collection (sub-...
TrigCompositeUtils::HasObjectCollection::m_name
std::string m_name
Definition: TrigCompositeUtils.h:313
xAOD::TrigComposite_v1::s_hypoAlgNodeNameString
static const std::string s_hypoAlgNodeNameString
Constant used to identify a navigation graph node as being from a Hypo Alg.
Definition: TrigComposite_v1.h:262
covarianceTool.filter
filter
Definition: covarianceTool.py:514
ANA_MSG_HEADER
#define ANA_MSG_HEADER(NAME)
for standalone code this creates a new message category
Definition: Control/AthToolSupport/AsgMessaging/AsgMessaging/MessageCheck.h:113
TrigCompositeUtils::FilterType
FilterType
Definition: IPartCombItr.h:22
xAOD::TrigComposite_v1::s_summaryPassNodeNameString
static const std::string s_summaryPassNodeNameString
Constant used to identify the single terminus graph node the end point of all chains which accept the...
Definition: TrigComposite_v1.h:270
TrigCompositeUtils::getTerminusNode
const Decision * getTerminusNode(SG::ReadHandle< DecisionContainer > &container)
Definition: TrigCompositeUtilsRoot.cxx:258
TrigCompositeUtils::HasObject
Prerequisite object usable with.
Definition: TrigCompositeUtils.h:283
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:122
TrigCompositeUtils::filterNodeName
const std::string & filterNodeName()
Definition: TrigCompositeUtils.h:424
TrigCompositeUtils::initialRecRoIString
const std::string & initialRecRoIString()
Definition: TrigCompositeUtils.h:417
HLT
It used to be useful piece of code for replacing actual SG with other store of similar functionality ...
Definition: HLTResultReader.h:26
xAOD::TrigComposite_v1::s_comboHypoAlgNodeNameString
static const std::string s_comboHypoAlgNodeNameString
Constant used to identify a navigation graph node as being from a Combo Hypo Alg.
Definition: TrigComposite_v1.h:264
TrigCompositeUtils::getLinkToPrevious
const std::vector< ElementLink< DecisionContainer > > getLinkToPrevious(const Decision *d)
returns links to previous decision object 'seed'
Definition: TrigCompositeUtilsRoot.cxx:157
TrigCompositeUtils::typelessFindLinks
bool typelessFindLinks(const Decision *start, const std::string &linkName, std::vector< sgkey_t > &keyVec, std::vector< uint32_t > &clidVec, std::vector< Decision::index_type > &indexVec, std::vector< const Decision * > &sourceVec, const unsigned int behaviour, std::set< const Decision * > *fullyExploredFrom)
search back the TC links for the object of type T linked to the one of TC (recursively) Returns the l...
Definition: TrigCompositeUtilsRoot.cxx:603
TrigCompositeUtils::getExpressTerminusNode
const Decision * getExpressTerminusNode(const DecisionContainer &container)
Returns the express-accept navigation node from a collection or nullptr if missing.
Definition: TrigCompositeUtilsRoot.cxx:266
vector
Definition: MultiHisto.h:13
DMTest::links
links
Definition: CLinks_v1.cxx:22
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
xAOD::TrigComposite_v1::s_filterNodeNameString
static const std::string s_filterNodeNameString
Constant used to identify a navigation graph node as being from a Filter.
Definition: TrigComposite_v1.h:258
MessageCheck.h
macros for messaging and checking status codes
TrigCompositeUtils::copyLinks
bool copyLinks(const Decision *src, Decision *dest)
copy all links from src to dest TC objects
Definition: TrigCompositeUtilsRoot.cxx:162
TrigCompositeUtils::createAndStoreNoAux
SG::WriteHandle< CONT > createAndStoreNoAux(const SG::WriteHandleKey< CONT > &key, const EventContext &ctx)
Creates and right away records the Container CONT with the key.
xAOD::TrigComposite_v1::s_summaryFilterNodeNameString
static const std::string s_summaryFilterNodeNameString
Constant used to identify a navigation graph node as being from a final Filter created by the Decisio...
Definition: TrigComposite_v1.h:267
TrigCompositeUtils::NavGraph
Structure to hold a transient Directed Acyclic Graph (DAG) structure. NavGraph is populated from,...
Definition: NavGraph.h:111
TrigCompositeUtils::Combinations
Definition: Combinations.h:18
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
xAOD::TrigComposite_v1
Class used to describe composite objects in the HLT.
Definition: TrigComposite_v1.h:49
TrigCompositeUtils::initialRoIString
const std::string & initialRoIString()
Definition: TrigCompositeUtils.h:416
TrigCompositeUtils::summaryPrescaledNodeName
const std::string & summaryPrescaledNodeName()
Definition: TrigCompositeUtils.h:431
DataVector
Derived DataVector<T>.
Definition: DataVector.h:795
TrigCompositeUtils::hltSeedingNodeName
const std::string & hltSeedingNodeName()
Definition: TrigCompositeUtils.h:423
TrigCompositeAuxContainer.h
xAOD::TrigComposite_v1::s_hltSeedingNodeNameString
static const std::string s_hltSeedingNodeNameString
Constant used to identify a navigation graph node as being from the HLTSeeding.
Definition: TrigComposite_v1.h:256
TrigCompositeContainer.h
perfmonmt-printer.required
required
Definition: perfmonmt-printer.py:184
TrigCompositeUtils::recursiveGetFeaturesOfType
const std::vector< LinkInfo< CONTAINER > > recursiveGetFeaturesOfType(const NavGraph &navGraph, const std::string &containerSGKey="", const unsigned int behaviour=TrigDefs::lastFeatureOfType, const std::string &navElementLinkKey=featureString(), const DecisionIDContainer &chainIDs=DecisionIDContainer())
Extract features from the supplied linkVector (obtained through recursiveGetDecisions).
TrigCompositeUtils::isChainId
bool isChainId(const HLT::Identifier &chainIdentifier)
Recognise whether the HLT identifier corresponds to a whole chain.
Definition: TrigCompositeUtilsRoot.cxx:227
TrigCompositeUtils.icc
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
python.subdetectors.mmg.ids
ids
Definition: mmg.py:8
ReadHandle.h
Handle class for reading from StoreGate.
TrigCompositeUtils::Decision
xAOD::TrigComposite Decision
Definition: Event/xAOD/xAODTrigger/xAODTrigger/TrigComposite.h:20
LinkInfo.h
xAOD::TrigComposite_v1::index_type
uint32_t index_type
Definition: TrigComposite_v1.h:53
xAOD::TrigComposite_v1::s_initialRecRoIString
static const std::string s_initialRecRoIString
Constant used to identify an initial HLT ROI derived from L1.
Definition: TrigComposite_v1.h:245
TrigCompositeUtils::viewString
const std::string & viewString()
Definition: TrigCompositeUtils.h:419
SG::sgkey_t
uint32_t sgkey_t
Type used for hashed StoreGate key+CLID pairs.
Definition: CxxUtils/CxxUtils/sgkey_t.h:32
TrigCompositeUtils::seedString
const std::string & seedString()
Definition: TrigCompositeUtils.h:421
python.Dumpers.typename
def typename(t)
Definition: Dumpers.py:193
TrigCompositeUtils::createLegName
HLT::Identifier createLegName(const HLT::Identifier &chainIdentifier, size_t counter)
Generate the HLT::Identifier which corresponds to a specific leg of a given chain.
Definition: TrigCompositeUtilsRoot.cxx:166
TrigCompositeUtils::HasObjectCollection::HasObjectCollection
HasObjectCollection(const std::string &name)
constructor specifying the link name
Definition: TrigCompositeUtils.h:306
TrigCompositeUtils::hasLinkToPrevious
bool hasLinkToPrevious(const Decision *d)
checks if there is at least one 'seed' link to previous object
Definition: TrigCompositeUtilsRoot.cxx:153
TrigCompositeUtils::getRejectedDecisionNodes
std::vector< const Decision * > getRejectedDecisionNodes([[maybe_unused]] const asg::EventStoreType *eventStore, const EventContext &ctx, const std::string &summaryCollectionKey, const DecisionIDContainer &ids, const std::set< std::string > &keysToIgnore)
Definition: TrigCompositeUtilsRoot.cxx:276
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:73
TrigCompositeUtils::linkToPrevious
void linkToPrevious(Decision *d, const std::string &previousCollectionKey, size_t previousIndex)
Links to the previous object, location of previous 'seed' decision supplied by hand.
Definition: TrigCompositeUtilsRoot.cxx:140
TrigCompositeUtils::isLegId
bool isLegId(const HLT::Identifier &legIdentifier)
Recognise whether the chain ID is a leg ID.
Definition: TrigCompositeUtilsRoot.cxx:219
TrigCompositeUtils::LinkInfo
Helper to keep a Decision object, ElementLink and ActiveState (with respect to some requested ChainGr...
Definition: LinkInfo.h:29
sgkey_t.h
Define the type used for hashed StoreGate key+CLID pairs.
TrigCompositeUtils::getIndexFromLeg
int32_t getIndexFromLeg(const HLT::Identifier &legIdentifier)
Extract the numeric index of a leg identifier.
Definition: TrigCompositeUtilsRoot.cxx:191
TrigCompositeUtils::DecisionIDContainer
std::set< DecisionID > DecisionIDContainer
Definition: TrigComposite_v1.h:28
TrigCompositeUtils::sgkey_t
SG::sgkey_t sgkey_t
Definition: TrigCompositeUtils.h:43
TrigCompositeUtils::NavGraphNode
Transient utility class to represent a node in a graph (m_decisionObject), and a vector of edges (m_f...
Definition: NavGraph.h:20
TrigCompositeUtils::findLink
LinkInfo< T > findLink(const Decision *start, const std::string &linkName, const bool suppressMultipleLinksWarning=false)
Perform a recursive search for ElementLinks of type T and name 'linkName', starting from Decision obj...
TrigCompositeUtils::hypoAlgNodeName
const std::string & hypoAlgNodeName()
Definition: TrigCompositeUtils.h:426
python.TriggerAPI.TriggerAPISession.chainName
chainName
Definition: TriggerAPISession.py:426
HLTIdentifier.h
TrigCompositeUtils::allFailed
bool allFailed(const Decision *d)
return true if there is no positive decision stored
Definition: TrigCompositeUtilsRoot.cxx:104
TrigCompositeUtils::decisionIDs
void decisionIDs(const Decision *d, DecisionIDContainer &destination)
Extracts DecisionIDs stored in the Decision object.
Definition: TrigCompositeUtilsRoot.cxx:65
TrigCompositeUtils::recursiveFlagForThinning
void recursiveFlagForThinning(NavGraph &graph, const bool keepOnlyFinalFeatures, const bool removeEmptySteps, const std::vector< std::string > &nodesToDrop)
Used by trigger navigation thinning.
Definition: TrigCompositeUtilsRoot.cxx:459
TrigCompositeUtils::dump
std::string dump(const Decision *tc, const std::function< std::string(const Decision *)> &printerFnc)
Prints the Decision object including the linked seeds @warnign expensive call.
Definition: TrigCompositeUtilsRoot.cxx:880
TrigCompositeUtils
Definition: Event/xAOD/xAODTrigger/xAODTrigger/TrigComposite.h:19
NavGraph.h
xAOD::TrigComposite_v1::s_viewString
static const std::string s_viewString
Constant used to identify a view.
Definition: TrigComposite_v1.h:249
copySelective.source
string source
Definition: copySelective.py:31
TrigCompositeUtils::getNodeByName
const Decision * getNodeByName(const DecisionContainer &container, const std::string &nodeName)
Returns the navigation node with a given name from a collection or nullptr if missing.
Definition: TrigCompositeUtilsRoot.cxx:270
TrigCompositeUtils::getIDFromLeg
HLT::Identifier getIDFromLeg(const HLT::Identifier &legIdentifier)
Generate the HLT::Identifier which corresponds to the chain name from the leg name.
Definition: TrigCompositeUtilsRoot.cxx:180
xAOD::TrigComposite_v1::s_inputMakerNodeNameString
static const std::string s_inputMakerNodeNameString
Constant used to identify a navigation graph node as being from a Input Maker.
Definition: TrigComposite_v1.h:260
xAOD::TrigComposite_v1::s_summaryPrescaledNodeNameString
static const std::string s_summaryPrescaledNodeNameString
Constant used to identify the single prescaled graph node.
Definition: TrigComposite_v1.h:276
TrigCompositeUtils::uniqueDecisionIDs
void uniqueDecisionIDs(Decision *dest)
Make unique list of decision IDs of dest Decision object.
Definition: TrigCompositeUtilsRoot.cxx:98
xAOD::TrigComposite_v1::s_summaryPassExpressNodeNameString
static const std::string s_summaryPassExpressNodeNameString
Constant used to identify the single express-accept graph node.
Definition: TrigComposite_v1.h:273
test_pyathena.counter
counter
Definition: test_pyathena.py:15
columnar::operator()
decltype(auto) operator()(ObjectId< CI, CM > id) const noexcept
Definition: ColumnAccessor.h:173
TrigCompositeUtils::isAnyIDPassing
bool isAnyIDPassing(const Decision *d, const DecisionIDContainer &required)
Checks if any of the DecisionIDs passed in arg required is availble in Decision object.
Definition: TrigCompositeUtilsRoot.cxx:109
TrigCompositeUtils::inputMakerNodeName
const std::string & inputMakerNodeName()
Definition: TrigCompositeUtils.h:425
Combinations.h
node
Definition: node.h:21
AuxElement.h
Base class for elements of a container that can have aux data.
TrigCompositeUtils::recursiveGetDecisionsInternal
void recursiveGetDecisionsInternal(const Decision *node, const Decision *comingFrom, NavGraph &navGraph, std::set< const Decision * > &fullyExploredFrom, const DecisionIDContainer &ids, const bool enforceDecisionOnNode)
Used by recursiveGetDecisions.
Definition: TrigCompositeUtilsRoot.cxx:407
xAOD::TrigComposite_v1::s_roiString
static const std::string s_roiString
Constant used to identify an (explicitly) updated HLT ROI.
Definition: TrigComposite_v1.h:247
SgTEvent.h
TrigCompositeUtils::decisionToElementLink
ElementLink< DecisionContainer > decisionToElementLink(const Decision *d, const EventContext &ctx)
Takes a raw pointer to a Decision and returns an ElementLink to the Decision.
Definition: TrigCompositeUtilsRoot.cxx:123
MsgStream.h
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
TrigCompositeUtils::typelessFindLink
bool typelessFindLink(const Decision *start, const std::string &linkName, sgkey_t &key, uint32_t &clid, Decision::index_type &index, const Decision *&source, const bool suppressMultipleLinksWarning)
Perform a recursive search for ElementLinks of any time and name 'linkName', starting from Decision o...
Definition: TrigCompositeUtilsRoot.cxx:747
Identifier
Definition: IdentifierFieldParser.cxx:14