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