ATLAS Offline Software
|
a data handle for reading systematics varied input data More...
#include <SysReadHandleArray.h>
Public Member Functions | |
template<typename T2 > | |
SysReadHandleArray (T2 *owner, const std::string &propertyName, const std::string &propertyDescription) | |
standard constructor More... | |
StatusCode | initialize () |
initialize this data handle More... | |
std::size_t | size () const noexcept |
the number of read objects configured More... | |
const std::string & | getName (const CP::SystematicSet &sys, std::size_t index) const |
get the name we retrieve from the event store More... | |
::StatusCode | retrieve (const T *&object, const CP::SystematicSet &sys, std::size_t index) const |
retrieve the object for the given name More... | |
virtual std::string | getInputAffecting () const override |
virtual bool | empty () const noexcept=0 |
whether this is an empty handle More... | |
virtual std::string | getNamePattern () const =0 |
get the name pattern before substitution More... | |
virtual CP::SystematicSet | getInputAffecting (const ISystematicsSvc &svc) const =0 |
get the affecting systematics if this is an input handle More... | |
virtual StatusCode | fillSystematics (const ISystematicsSvc &svc, const CP::SystematicSet &fullAffecting, const std::vector< CP::SystematicSet > &sysList)=0 |
register and cache the systematics More... | |
bool | msgLvl (const MSG::Level lvl) const |
Test the output level of the object. More... | |
MsgStream & | msg () const |
The standard message stream. More... | |
MsgStream & | msg (const MSG::Level lvl) const |
The standard message stream. More... | |
Private Types | |
typedef std::decay< decltype(*(std::declval< EL::AnaAlgorithm >).evtStore()))>::type | StoreType |
the type of the event store we use More... | |
Private Attributes | |
std::string | m_propertyName |
the name of the property we configured More... | |
bool | m_isInitialized {false} |
whether we have been initialized More... | |
std::vector< std::string > | m_inputName |
the input name we use More... | |
std::vector< std::string > | m_affectingRegex |
the regular expression for affecting systematics More... | |
std::unordered_map< std::pair< CP::SystematicSet, std::size_t >, std::string, boost::hash< std::pair< CP::SystematicSet, std::size_t > > > | m_inputNameCache |
the cache of names we use More... | |
StoreType * | m_evtStore = nullptr |
the event store we use More... | |
std::function< StoreType *()> | m_evtStoreGetter |
the function to retrieve the event store More... | |
std::function< MsgStream &()> | m_msg |
the message stream we use More... | |
a data handle for reading systematics varied input data
Definition at line 28 of file SysReadHandleArray.h.
|
private |
the type of the event store we use
Definition at line 104 of file SysReadHandleArray.h.
CP::SysReadHandleArray< T >::SysReadHandleArray | ( | T2 * | owner, |
const std::string & | propertyName, | ||
const std::string & | propertyDescription | ||
) |
standard constructor
|
pure virtualnoexceptinherited |
whether this is an empty handle
Implemented in CP::SysCopyHandle< T >, CP::SysReadSelectionHandle, CP::SysWriteSelectionHandle, CP::SysWriteDecorHandle< T >, CP::SysReadDecorHandle< T >, CP::SysReadHandle< T >, and CP::SysWriteHandle< T, Aux >.
|
pure virtualinherited |
register and cache the systematics
Implemented in CP::SysCopyHandle< T >, CP::SysCopyHandle< DataVector >, CP::SysCopyHandle< xAOD::MissingETContainer_v1 >, CP::SysCopyHandle< const DataVector >, CP::SysWriteDecorHandle< T >, CP::SysWriteDecorHandle< uint32_t >, CP::SysWriteDecorHandle< double >, CP::SysWriteDecorHandle< std::vector< int > >, CP::SysWriteDecorHandle< float >, CP::SysWriteDecorHandle< int >, CP::SysWriteDecorHandle< char >, CP::SysWriteDecorHandle< ElementLink< DataVector > >, CP::SysWriteDecorHandle< bool >, CP::SysWriteDecorHandle< std::vector< std::uint8_t > >, CP::SysWriteDecorHandle< PtEtaPhiMVector >, CP::SysWriteHandle< T, Aux >, CP::SysWriteHandle< ConstDataVector< xAOD::DiTauJetContainer > >, CP::SysWriteHandle< DataVector >, CP::SysWriteHandle< xAOD::MissingETContainer_v1, xAOD::MissingETAuxContainer_v1 >, CP::SysWriteHandle< ConstDataVector< C > >, CP::SysWriteHandle< ConstDataVector< xAOD::PhotonContainer > >, CP::SysWriteHandle< ConstDataVector< xAOD::TauJetContainer > >, CP::SysWriteHandle< ConstDataVector< xAOD::ElectronContainer > >, CP::SysWriteHandle< DataVector, xAOD::JetAuxContainer_v1 >, CP::SysWriteHandle< ConstDataVector< xAOD::JetContainer > >, CP::SysWriteHandle< ConstDataVector< xAOD::MuonContainer > >, CP::SysReadDecorHandle< T >, CP::SysReadDecorHandle< float >, CP::SysReadHandle< T >, CP::SysReadHandle< xAOD::ElectronContainer >, CP::SysReadHandle< xAOD::MuonContainer >, CP::SysReadHandle< xAOD::MissingETContainer_v1 >, CP::SysReadHandle< DataVector >, CP::SysReadHandle< xAOD::DiTauJetContainer >, CP::SysReadHandle< xAOD::PhotonContainer >, CP::SysReadHandle< C >, CP::SysReadHandle< xAOD::TauJetContainer >, CP::SysReadHandle< xAOD::EventInfo_v1 >, CP::SysReadHandle< xAOD::JetContainer >, CP::SysReadSelectionHandle, and CP::SysWriteSelectionHandle.
|
overridevirtual |
|
pure virtualinherited |
get the affecting systematics if this is an input handle
This returns the empty set if this is either not an input handle, or if the input handle is not affected by systematics.
Implemented in CP::SysCopyHandle< T >, CP::SysCopyHandle< DataVector >, CP::SysCopyHandle< xAOD::MissingETContainer_v1 >, CP::SysCopyHandle< const DataVector >, CP::SysWriteDecorHandle< T >, CP::SysWriteDecorHandle< uint32_t >, CP::SysWriteDecorHandle< double >, CP::SysWriteDecorHandle< std::vector< int > >, CP::SysWriteDecorHandle< float >, CP::SysWriteDecorHandle< int >, CP::SysWriteDecorHandle< char >, CP::SysWriteDecorHandle< ElementLink< DataVector > >, CP::SysWriteDecorHandle< bool >, CP::SysWriteDecorHandle< std::vector< std::uint8_t > >, CP::SysWriteDecorHandle< PtEtaPhiMVector >, CP::SysWriteHandle< T, Aux >, CP::SysWriteHandle< ConstDataVector< xAOD::DiTauJetContainer > >, CP::SysWriteHandle< DataVector >, CP::SysWriteHandle< xAOD::MissingETContainer_v1, xAOD::MissingETAuxContainer_v1 >, CP::SysWriteHandle< ConstDataVector< C > >, CP::SysWriteHandle< ConstDataVector< xAOD::PhotonContainer > >, CP::SysWriteHandle< ConstDataVector< xAOD::TauJetContainer > >, CP::SysWriteHandle< ConstDataVector< xAOD::ElectronContainer > >, CP::SysWriteHandle< DataVector, xAOD::JetAuxContainer_v1 >, CP::SysWriteHandle< ConstDataVector< xAOD::JetContainer > >, CP::SysWriteHandle< ConstDataVector< xAOD::MuonContainer > >, CP::SysReadDecorHandle< T >, CP::SysReadDecorHandle< float >, CP::SysReadHandle< T >, CP::SysReadHandle< xAOD::ElectronContainer >, CP::SysReadHandle< xAOD::MuonContainer >, CP::SysReadHandle< xAOD::MissingETContainer_v1 >, CP::SysReadHandle< DataVector >, CP::SysReadHandle< xAOD::DiTauJetContainer >, CP::SysReadHandle< xAOD::PhotonContainer >, CP::SysReadHandle< C >, CP::SysReadHandle< xAOD::TauJetContainer >, CP::SysReadHandle< xAOD::EventInfo_v1 >, CP::SysReadHandle< xAOD::JetContainer >, CP::SysReadSelectionHandle, and CP::SysWriteSelectionHandle.
const std::string& CP::SysReadHandleArray< T >::getName | ( | const CP::SystematicSet & | sys, |
std::size_t | index | ||
) | const |
get the name we retrieve from the event store
|
pure virtualinherited |
get the name pattern before substitution
Implemented in CP::SysCopyHandle< T >, CP::SysReadSelectionHandle, CP::SysWriteSelectionHandle, CP::SysWriteDecorHandle< T >, CP::SysReadDecorHandle< T >, CP::SysReadHandle< T >, and CP::SysWriteHandle< T, Aux >.
StatusCode CP::SysReadHandleArray< T >::initialize | ( | ) |
initialize this data handle
|
inherited |
The standard message stream.
Definition at line 24 of file AsgMessagingForward.cxx.
|
inherited |
|
inherited |
Test the output level of the object.
lvl | The message level to test against |
true
If messages at level "lvl" will be printed Definition at line 11 of file AsgMessagingForward.cxx.
::StatusCode CP::SysReadHandleArray< T >::retrieve | ( | const T *& | object, |
const CP::SystematicSet & | sys, | ||
std::size_t | index | ||
) | const |
retrieve the object for the given name
|
noexcept |
the number of read objects configured
|
private |
the regular expression for affecting systematics
Definition at line 94 of file SysReadHandleArray.h.
|
mutableprivate |
the event store we use
Definition at line 108 of file SysReadHandleArray.h.
|
private |
the function to retrieve the event store
This is an std::function to allow the parent to be either a tool or an algorithm. Though we are not really supporting tools as parents when using SysListHandle, so in principle this could be replaced with a pointer to the algorithm instead.
Definition at line 118 of file SysReadHandleArray.h.
|
private |
the input name we use
Definition at line 90 of file SysReadHandleArray.h.
|
mutableprivate |
the cache of names we use
Definition at line 98 of file SysReadHandleArray.h.
|
private |
whether we have been initialized
Definition at line 85 of file SysReadHandleArray.h.
|
privateinherited |
the message stream we use
This used to be a simple pointer to the MsgStream
itself, but in AthenaMT the actual object used is local to the thread. So instead of pointing to it directly we are now using a function to look it up, which will get the thread-local object.
Definition at line 77 of file AsgMessagingForward.h.
|
private |
the name of the property we configured
Definition at line 81 of file SysReadHandleArray.h.