ATLAS Offline Software
LinkInfo.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 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 #include "ActiveState.h"
12 #include "TypelessLinkInfo.h"
13 
14 #include <optional>
15 #include <unordered_set>
16 
17 namespace TrigCompositeUtils {
21  template<typename T>
22  struct LinkInfo {
23  LinkInfo() = default;
25  : source{s}, link{l}, state{as} {
26  if (s) decisions.emplace(s->decisions().begin(), s->decisions().end());
27  }
28 
30  : source{s}, link{l}, state{as} {
31  decisions.emplace(decisionIDs.begin(), decisionIDs.end());
32  }
33 
34  LinkInfo(const TypelessLinkInfo& li, const ElementLink<T>& l) : source{li.source}, link{l}, state{li.state}, decisions{li.decisions} {
35  }
36 
37  bool isValid() const {
38  return source && link.isValid();
39  }
43  operator StatusCode () {
44  return (isValid() ? StatusCode::SUCCESS : StatusCode::FAILURE);
45  }
46 
53  const Decision* source{nullptr};
60  std::optional<std::unordered_set<DecisionID>> decisions;
61  };
62 } //> end namespace TrigCompositeUtils
63 
64 #endif //> !TRIGCOMPOSITEUTILS_LINKINFO_H
TypelessLinkInfo.h
TrigCompositeUtils::ActiveState
ActiveState
Additional information returned by the TrigerDecisionTool's feature retrieval, contained within the L...
Definition: ActiveState.h:18
TrigCompositeUtils::LinkInfo::source
const Decision * source
The node in the NavGraph for this feature.
Definition: LinkInfo.h:53
TrigCompositeUtils::LinkInfo::link
ElementLink< T > link
Link to the feature.
Definition: LinkInfo.h:55
TrigCompositeUtils::LinkInfo::isValid
bool isValid() const
Definition: LinkInfo.h:37
TrigCompositeUtils::LinkInfo::LinkInfo
LinkInfo()=default
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:157
TrigCompositeUtils::TypelessLinkInfo
Helper to keep a Decision object, ElementLink and ActiveState (with respect to some requested ChainGr...
Definition: TypelessLinkInfo.h:19
ActiveState.h
TrigCompositeUtils::LinkInfo::LinkInfo
LinkInfo(const TypelessLinkInfo &li, const ElementLink< T > &l)
Definition: LinkInfo.h:34
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:57
xAOD::TrigComposite_v1
Class used to describe composite objects in the HLT.
Definition: TrigComposite_v1.h:49
StatusCode.h
TrigCompositeUtils::TypelessLinkInfo::source
const Decision * source
The node in the NavGraph for this feature.
Definition: TypelessLinkInfo.h:41
TrigCompositeUtils::LinkInfo::LinkInfo
LinkInfo(const Decision *s, const ElementLink< T > &l, ActiveState as=ActiveState::UNSET)
Definition: LinkInfo.h:24
TrigCompositeUtils::DecisionIDContainer
std::set< DecisionID > DecisionIDContainer
Definition: TrigComposite_v1.h:28
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:29
jet::ExtendedBool::UNSET
@ UNSET
Definition: UncertaintyEnum.h:232
TrigComposite.h
TrigCompositeUtils::LinkInfo::decisions
std::optional< std::unordered_set< DecisionID > > decisions
All decision IDs active for this feature.
Definition: LinkInfo.h:60