5#ifndef XAODCORE_AUXINFOBASE_H
6#define XAODCORE_AUXINFOBASE_H
99 size_t capacity )
override;
102 virtual void lock()
override;
108 virtual size_t size()
const override;
123 size_t capacity )
override;
133 virtual void shift(
size_t pos, ptrdiff_t offs )
override;
167 const char*
name()
const;
174 template <
class T,
class ALLOC = std::allocator<T> >
176 template <
class T,
class ALLOC = std::allocator<T> >
180 template<
typename T >
187 template<
typename T >
195 std::vector< SG::IAuxTypeVector* >
m_vecs;
208 typedef AthContainers_detail::lock_guard< mutex_t >
guard_t;
223#include "xAODCore/BaseInfo.h"
Handle mappings between names and auxid_t.
#define SG_BASES3(D, B1, B2, B3)
Declare that class D derives from classes B1, B2, and B3.
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
File providing the different SG_BASE macros.
Interface providing I/O for a generic auxiliary store.
Interface for non-const operations on an auxiliary store.
Interface to allow an object to lock itself when made const in SG.
Hold information about an option setting request.
Interface for objects taking part in direct ROOT I/O.
AuxStoreType
Type of the auxiliary store.
@ AST_ObjectStore
The store describes a single object.
Interface providing I/O for a generic auxiliary store.
Interface for non-const operations on an auxiliary store.
Abstract interface for manipulating vectors of arbitrary types.
A set of aux data identifiers.
Common base class for auxiliary info objects.
virtual const auxid_set_t & getDecorIDs() const override
Get the types(names) of decorations handled by this container.
virtual SG::IAuxStore * getStore() override
Get the currently used internal store object.
virtual const std::type_info * getIOType(auxid_t auxid) const override
Return the type of the data to be stored for one aux data item.
bool m_ownsStore
Flag deciding if the object owns the dynamic store or not.
const char * name() const
Get the name of the container instance.
std::vector< T, ALLOC > LinkedVariable_t
auxid_t getAuxID(const std::string &name, T &, SG::AuxVarFlags flags=SG::AuxVarFlags::None, const SG::auxid_t linkedVariable=SG::null_auxid)
Get the auxiliary ID for one of the persistent variables.
virtual void lockDecoration(SG::auxid_t auxid) override
Lock a decoration.
virtual void setStore(SG::IAuxStore *store) override
Set a different internal store object.
~AuxInfoBase()
Destructor.
auxid_set_t m_auxids
Internal list of all available variables.
T AuxVariable_t
Declare how to wrap variables for this sort of base.
void setName(const char *name)
Set the name of the container instance.
SG::IAuxStoreIO * m_storeIO
The IO interface to the internal auxiliary store.
AuxInfoBase & operator=(const AuxInfoBase &rhs)
Assignment operator.
std::vector< SG::IAuxTypeVector * > m_vecs
Internal list of all managed variables.
virtual bool insertMove(size_t pos, IAuxStore &other, const SG::auxid_set_t &ignore) override
Insert contents of another store via move.
virtual void lock() override
Lock the container.
virtual size_t size() const override
Get the size of the container.
virtual const auxid_set_t & getAuxIDs() const override
Get the types(names) of variables handled by this container.
AuxInfoBase(bool allowDynamicVars=true)
Default constructor.
virtual void reserve(size_t size) override
Reserve a given size for the arrays.
virtual bool setOption(auxid_t id, const SG::AuxDataOption &option) override
Make an option setting on an aux variable.
virtual const SG::IAuxTypeVector * getVector(SG::auxid_t auxid) const override final
Return vector interface for one aux data item.
SG::auxid_t auxid_t
The aux ID type definition.
AthContainers_detail::lock_guard< mutex_t > guard_t
virtual bool isDecoration(auxid_t auxid) const override
Test if a variable is a decoration.
bool m_locked
Has the container been locked?
virtual const auxid_set_t & getDynamicAuxIDs() const override
Get the types(names) of variables created dynamically.
void regAuxVar(auxid_t auxid, const std::string &name, T &info)
Register one of the persistent variables internally.
virtual SG::auxid_set_t getSelectedAuxIDs() const override
Get the IDs of the selected dynamic Aux variables (for writing)
virtual bool resize(size_t size) override
Resize the arrays to a given size.
virtual const SG::IAuxTypeVector * linkedVector(SG::auxid_t auxid) const override
Return interface for a linked variable.
virtual const void * getData(auxid_t auxid) const override
Get a pointer to a given array.
virtual const auxid_set_t & getWritableAuxIDs() const override
Return a set of writable data identifiers.
virtual void shift(size_t pos, ptrdiff_t offs) override
Shift the contents of the stored arrays.
std::string m_name
Name of the container in memory. Set externally.
virtual const void * getIOData(auxid_t auxid) const override
Get a pointer to the data being stored for one aux data item.
virtual void * getDecoration(auxid_t auxid, size_t size, size_t capacity) override
Get a pointer to a given array, as a decoration.
virtual bool clearDecorations() override
Clear all decorations.
SG::IAuxStore * m_store
Internal dynamic auxiliary store object.
AthContainers_detail::mutex mutex_t
Mutex for multithread synchronization.
SG::auxid_set_t auxid_set_t
The aux ID set type definition.
virtual AuxStoreType getStoreType() const override
Return the type of the store object.
AuxVarFlags
Additional flags to qualify an auxiliary variable.
@ None
No special flags set.
static const auxid_t null_auxid
To signal no aux data item.
size_t auxid_t
Identifier for a particular aux data item.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.