|
ATLAS Offline Software
|
Go to the documentation of this file.
8 #ifndef SYSTEMATICS_HANDLES__SYS_WRITE_DECOR_HANDLE_H
9 #define SYSTEMATICS_HANDLES__SYS_WRITE_DECOR_HANDLE_H
20 #include <type_traits>
21 #include <unordered_map>
62 const std::string& propertyValue,
63 const std::string& propertyDescription);
75 explicit operator
bool ()
const noexcept;
139 std::unordered_map<CP::SystematicSet,std::tuple<std::string,SG::AuxElement::Decorator<T> > >
m_dataCache;
147 template <
typename T>
virtual StatusCode fillSystematics(const ISystematicsSvc &svc, const CP::SystematicSet &fullAffecting, const std::vector< CP::SystematicSet > &sysList) override
register and cache the systematics
void set(const SG::AuxElement &object, const T &value, const CP::SystematicSet &sys) const
set the object decoration for the given systematic
a class managing the property to configure the list of systematics to process
the interface for the central systematics service
base class to forward messages to another class
virtual std::string getNamePattern() const override
get the name pattern before substitution
virtual CP::SystematicSet getInputAffecting(const ISystematicsSvc &svc) const override
get the affecting systematics if this is an input handle
Class to wrap a set of SystematicVariations.
bool const RAWDATA *ch2 const
Select isolated Photons, Electrons and Muons.
std::unordered_map< CP::SystematicSet, std::tuple< std::string, SG::AuxElement::Decorator< T > > > m_dataCache
the cache of names we use
std::string m_decorName
the input name we use
SysWriteDecorHandle(T2 *owner, const std::string &propertyName, const std::string &propertyValue, const std::string &propertyDescription)
Standard constructor.
constexpr float invalidScaleFactor()
the decoration value to use if there is no valid scale factor decoration
a basic interface for all systematics handles
SysWriteDecorHandle(const std::string &decorName, T2 *owner)
Construct the handle directly without declaring a property.
::StatusCode StatusCode
StatusCode definition for legacy code.
StatusCode initialize(SysListHandle &sysListHandle, const ISysHandleBase &objectHandle)
initialize this handle
AthROOTErrorHandlerSvc * svc
virtual bool empty() const noexcept override
whether we have a name configured
const std::string & getName(const CP::SystematicSet &sys) const
get the name we retrieve from the event store
void lock(const SG::AuxElement &object, const CP::SystematicSet &sys) const
lock the object decoration for the given systematic You should call this after all set() calls for a ...
const ISysHandleBase * m_objectHandle
the object handle we use
Vector-like class for systematic handles which interact with decorations.
a data handle for reading systematics varied input data
const auto & getData(const CP::SystematicSet &sys) const
get the data for the given systematics
constexpr float invalidEfficiency()
the decoration value to use if there is no valid efficiency decoration
Base class for elements of a container that can have aux data.