ATLAS Offline Software
SystObjectLinkerAlg.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 
4  SystObjectLinkerAlg:
5  This alg applies bidirectional decorations to a set of object collections,
6  allowing navigation from the nominal to all systematic variations, and
7  from the variations back to the nominal.
8 */
9 
11 
12 
13 // Always protect against multiple includes!
14 #ifndef CP_SYSTOBJECTLINKERALG
15 #define CP_SYSTOBJECTLINKERALG
16 
17 #include <vector>
18 #include <utility>
19 
25 
27 
28 #include <AthLinks/ElementLink.h>
29 
30 class EventContext;
31 
32 namespace CP
33 {
34 
36  {
38 public:
39  SystObjectLinkerAlg(const std::string &name, ISvcLocator *pSvcLocator);
40 
43  StatusCode initialize() override;
45  StatusCode execute(const EventContext& ctx) const override;
47 
48 private:
49 
50  // Members for configurable properties
51 
54 
57  m_inputHandle{ this, "input", "", "Container to read" };
58 
61  m_syst_link_decor {"systVarLink_%SYS%", this};
62 
63  };
64 }
65 
66 #endif
CP::SystObjectLinkerAlg::initialize
StatusCode initialize() override
Initialisation method, for setting up tools and other persistent configs.
Definition: SystObjectLinkerAlg.cxx:26
CP::SysListHandle
a class managing the property to configure the list of systematics to process
Definition: SysListHandle.h:33
SysWriteDecorHandle.h
SysListHandle.h
CP::SystObjectLinkerAlg::execute
StatusCode execute(const EventContext &ctx) const override
Execute method, for actions to be taken in the event loop.
Definition: SystObjectLinkerAlg.cxx:43
CP::SysReadHandle
a data handle for reading systematics varied input data
Definition: SysReadHandle.h:32
CP
Select isolated Photons, Electrons and Muons.
Definition: Control/xAODRootAccess/xAODRootAccess/TEvent.h:48
CP::SystObjectLinkerAlg
Definition: SystObjectLinkerAlg.h:36
SysReadHandle.h
CP::SystObjectLinkerAlg::SystObjectLinkerAlg
SystObjectLinkerAlg(const std::string &name, ISvcLocator *pSvcLocator)
The standard constructor.
Definition: SystObjectLinkerAlg.cxx:19
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
IParticleContainer.h
CP::SystObjectLinkerAlg::m_systematicsList
CP::SysListHandle m_systematicsList
We use default finalize() – this is for cleanup, and we don't do any.
Definition: SystObjectLinkerAlg.h:53
CP::SystObjectLinkerAlg::m_inputHandle
CP::SysReadHandle< xAOD::IParticleContainer > m_inputHandle
Setup syst-aware input container handles.
Definition: SystObjectLinkerAlg.h:57
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ISysHandleBase.h
EL::AnaReentrantAlgorithm
the base class for EventLoop reentrant algorithms
Definition: AnaReentrantAlgorithm.h:51
CP::SystObjectLinkerAlg::m_syst_link_decor
CP::SysWriteDecorHandle< ElementLink< xAOD::IParticleContainer > > m_syst_link_decor
Setup sys-aware output decorations.
Definition: SystObjectLinkerAlg.h:61
AnaReentrantAlgorithm.h
CP::SysWriteDecorHandle
a data handle for reading systematics varied input data
Definition: SysWriteDecorHandle.h:42