ATLAS Offline Software
Loading...
Searching...
No Matches
SysListHandle.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7
8#ifndef SYSTEMATICS_HANDLES__SYS_LIST_HANDLE_H
9#define SYSTEMATICS_HANDLES__SYS_LIST_HANDLE_H
10
17#include <functional>
18#include <string>
19#include <vector>
20
21class StatusCode;
22
23namespace CP
24{
26 class ISysHandleBase;
27 class SystematicSet;
28
31
33 {
34 //
35 // public interface
36 //
37
39 public:
40 template<typename T>
41 SysListHandle (T *owner, const std::string& propertyName = "systematicsService",
42 const std::string& propertyDescription = "systematics to evaluate");
43
44
52 public:
53 StatusCode addHandle (ISysHandleBase& handle);
54
55
65 public:
66 StatusCode addSystematics (const CP::SystematicSet& recommended,
67 const CP::SystematicSet& affecting);
68 StatusCode addSystematics (const IReentrantSystematicsTool& tool);
70
71
76 public:
77 ::StatusCode initialize ();
78
79
81 public:
82 bool isInitialized () const noexcept;
83
84
86 public:
88
89
104 public:
106
107
108 //
109 // private interface
110 //
111
113 private:
115
117 private:
118 std::string m_affectingFilter;
119
121 private:
122 std::vector<ISysHandleBase*> m_sysHandles;
123
125 private:
127
129 private:
130 std::vector<CP::SystematicSet> m_systematicsVector;
131
133 private:
134 bool m_isInitialized = false;
135
136 private:
137 StatusCode fillSystematicsVector ();
138 };
139}
140
141#include "SysListHandle.icc"
142
143#endif
interface for all CP tools supporting systematic variations within a reentrant algorithm
a basic interface for all systematics handles
the interface for the central systematics service
StatusCode addSystematics(const CP::SystematicSet &recommended, const CP::SystematicSet &affecting)
register a set of affecting variables for the current algorithm (usually obtained from an CP::ISystem...
StatusCode fillSystematicsVector()
CP::SystematicSet m_affecting
this set of affecting systematics
SysListHandle(T *owner, const std::string &propertyName="systematicsService", const std::string &propertyDescription="systematics to evaluate")
standard constructor
std::vector< ISysHandleBase * > m_sysHandles
the list of systematics handles we have
std::vector< CP::SystematicSet > m_systematicsVector
the value of systematicsVector
bool isInitialized() const noexcept
whether initialize has been called successfully
const ISystematicsSvc & service() const
the service we use
bool m_isInitialized
the value of isInitialized
StatusCode addHandle(ISysHandleBase &handle)
register an input handle we are using
const std::vector< CP::SystematicSet > & systematicsVector() const
the list of systematics to loop over
::StatusCode initialize()
intialize this property
ServiceHandle< ISystematicsSvc > m_systematicsService
the handle for the systematics service
std::string m_affectingFilter
an (optional) filter to remove affecting systematics
Class to wrap a set of SystematicVariations.
base class to forward messages to another class
Select isolated Photons, Electrons and Muons.
STL namespace.
#define private