![]() |
ATLAS Offline Software
|
Interface for objects taking part in direct ROOT I/O. More...
#include <IAuxStoreHolder.h>
Public Types | |
| enum | AuxStoreType { AST_ObjectStore = 0 , AST_ContainerStore = 1 } |
| Type of the auxiliary store. More... | |
Public Member Functions | |
| virtual | ~IAuxStoreHolder () |
| Virtual destructor to make vtable happy... | |
| virtual void | setStore (IAuxStore *store)=0 |
| Give an auxiliary store object to the holder object. | |
| virtual IAuxStore * | getStore ()=0 |
| Return the pointer to the store object currently in use. | |
| virtual const IAuxStore * | getStore () const =0 |
| virtual AuxStoreType | getStoreType () const =0 |
| Return the type of the store object. | |
| virtual void | toTransient (const EventContext &ctx)=0 |
| Perform post-read processing on this store. | |
Interface for objects taking part in direct ROOT I/O.
This interface needs to be implemented by classes that serve as auxiliary containers that we want to use in our EDM directly. It allows the I/O infrastructure to give a store object to the object implementing this interface. At that point the object given to this interface will be the one doing the ROOT I/O for the "dynamic" auxiliary variables. Currently there's a single implementation of this, "xAODCore/AuxContainerBase.h", but we may want to have other implementations later on as well.
Definition at line 38 of file IAuxStoreHolder.h.
Type of the auxiliary store.
In the xAOD EDM we use auxiliary store objects in some cases to describe a single object, and in most cases to describe a container of objects. This enumeration declares which type the object implementing this interface is.
| Enumerator | |
|---|---|
| AST_ObjectStore | The store describes a single object. |
| AST_ContainerStore | The store describes a container. |
Definition at line 68 of file IAuxStoreHolder.h.
|
inlinevirtual |
Implemented in APRTest::AuxStore, xAOD::AuxContainerBase, xAOD::AuxInfoBase, and xAOD::ShallowAuxContainer.
|
pure virtual |
Return the pointer to the store object currently in use.
There's not much use case for this function yet, but it makes the interface complete at least.
Implemented in APRTest::AuxStore, xAOD::AuxContainerBase, xAOD::AuxInfoBase, and xAOD::ShallowAuxContainer.
|
pure virtual |
Return the type of the store object.
Implemented in APRTest::AuxStore, xAOD::AuxContainerBase, xAOD::AuxInfoBase, xAOD::ShallowAuxContainer, and xAOD::ShallowAuxInfo.
|
pure virtual |
Give an auxiliary store object to the holder object.
The purpose of this function is to give an alternate store object to this object instead of the one it uses normally.
| store | Pointer to an object implementing direct ROOT I/O |
Implemented in xAOD::AuxContainerBase, xAOD::AuxInfoBase, and xAOD::ShallowAuxContainer.
|
pure virtual |
Perform post-read processing on this store.
| ctx | The current event context. |
Some object types require some processing after being read before they are usable. This can be indicated by specializing SG::ToTransient for the vector type containing the variable. This method will call such a ToTransient method for all contained variables for which this is required.
This is also declared in IAuxStore. We declare it here as well to prevent the need for from cross-hierarchy dynamic casting.
Implemented in APRTest::AuxStore, xAOD::AuxContainerBase, xAOD::AuxInfoBase, xAOD::EventAuxInfo_v1, xAOD::EventAuxInfo_v2, xAOD::EventAuxInfo_v3, xAOD::EventInfoAuxContainer_v1, xAOD::ShallowAuxContainer, xAOD::TrackParticleAuxContainer_v2, xAOD::TrackParticleAuxContainer_v3, and xAOD::TrackParticleAuxContainer_v4.