ATLAS Offline Software
LinkInfo.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_LINKINFO_H
6 #define TRIGCOMPOSITEUTILS_LINKINFO_H
7 
9 #include "AthLinks/ElementLink.h"
11 
12 #include <optional>
13 #include <unordered_set>
14 
15 namespace TrigCompositeUtils {
19  enum ActiveState {
22  INACTIVE
23  };
24 
28  template<typename T>
29  struct LinkInfo {
30  LinkInfo() = default;
32  : source{s}, link{l}, state{as} {
33  if (s) decisions.emplace(s->decisions().begin(), s->decisions().end());
34  }
35 
37  : source{s}, link{l}, state{as} {
38  decisions.emplace(decisionIDs.begin(), decisionIDs.end());
39  }
40 
41  bool isValid() const {
42  return source && link.isValid();
43  }
47  operator StatusCode () {
48  return (isValid() ? StatusCode::SUCCESS : StatusCode::FAILURE);
49  }
50 
57  const Decision* source{nullptr};
64  std::optional<std::unordered_set<DecisionID>> decisions;
65  };
66 } //> end namespace TrigCompositeUtils
67 
68 #endif //> !TRIGCOMPOSITEUTILS_LINKINFO_H
TrigCompositeUtils::ActiveState
ActiveState
Additional information returned by the TrigerDecisionTool's feature retrieval, contained within the L...
Definition: LinkInfo.h:19
TrigCompositeUtils::LinkInfo::source
const Decision * source
The node in the NavGraph for this feature.
Definition: LinkInfo.h:57
TrigCompositeUtils::LinkInfo::link
ElementLink< T > link
Link to the feature.
Definition: LinkInfo.h:59
TrigCompositeUtils::UNSET
@ UNSET
Default property of state.
Definition: LinkInfo.h:20
TrigCompositeUtils::LinkInfo::isValid
bool isValid() const
Definition: LinkInfo.h:41
TrigCompositeUtils::LinkInfo::LinkInfo
LinkInfo()=default
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:157
TrigCompositeUtils::INACTIVE
@ INACTIVE
The link was inactive for all of the HLT Chains requested in the TDT.
Definition: LinkInfo.h:22
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TrigCompositeUtils::LinkInfo::state
ActiveState state
Was the linked feature active for any requested chains.
Definition: LinkInfo.h:61
xAOD::TrigComposite_v1
Class used to describe composite objects in the HLT.
Definition: TrigComposite_v1.h:49
StatusCode.h
TrigCompositeUtils::LinkInfo::LinkInfo
LinkInfo(const Decision *s, const ElementLink< T > &l, ActiveState as=ActiveState::UNSET)
Definition: LinkInfo.h:31
TrigCompositeUtils::LinkInfo
Helper to keep a Decision object, ElementLink and ActiveState (with respect to some requested ChainGr...
Definition: LinkInfo.h:29
TrigCompositeUtils::DecisionIDContainer
std::set< DecisionID > DecisionIDContainer
Definition: TrigComposite_v1.h:28
TrigCompositeUtils::ACTIVE
@ ACTIVE
The link was still active for one-or-more of the HLT Chains requested in the TDT.
Definition: LinkInfo.h:21
TrigCompositeUtils::decisionIDs
void decisionIDs(const Decision *d, DecisionIDContainer &destination)
Extracts DecisionIDs stored in the Decision object.
Definition: TrigCompositeUtilsRoot.cxx:65
python.SystemOfUnits.s
float s
Definition: SystemOfUnits.py:147
TrigCompositeUtils
Definition: Event/xAOD/xAODTrigger/xAODTrigger/TrigComposite.h:19
TrigCompositeUtils::LinkInfo::LinkInfo
LinkInfo(const Decision *s, const ElementLink< T > &l, ActiveState as, const DecisionIDContainer &decisionIDs)
Definition: LinkInfo.h:36
TrigComposite.h
TrigCompositeUtils::LinkInfo::decisions
std::optional< std::unordered_set< DecisionID > > decisions
All decision IDs active for this feature.
Definition: LinkInfo.h:64