xAOD::AuxContainerBase Class Reference

#include <AuxContainerBase.h>

Inheritance diagram for xAOD::AuxContainerBase:
SG::IAuxStore SG::IAuxStoreIO SG::IAuxStoreHolder SG::IConstAuxStore xAOD::AFPDataAuxContainer_v1 xAOD::AFPSiHitAuxContainer_v1 xAOD::AFPTrackAuxContainer_v1 xAOD::ALFADataAuxContainer_v1 xAOD::BCMRawDataAuxContainer_v1 xAOD::BTaggingAuxContainer_v1 xAOD::BTaggingTrigAuxContainer_v1 xAOD::BTagVertexAuxContainer_v1 xAOD::BunchConfAuxContainer_v1 xAOD::CaloClusterAuxContainer_v1 xAOD::CaloClusterAuxContainer_v2 xAOD::CaloClusterTrigAuxContainer_v1 xAOD::CaloTowerAuxContainer_v1 xAOD::CMMCPHitsAuxContainer_v1 xAOD::CMMEtSumsAuxContainer_v1 xAOD::CMMJetHitsAuxContainer_v1 xAOD::CMXCPHitsAuxContainer_v1 xAOD::CMXCPTobAuxContainer_v1 xAOD::CMXEtSumsAuxContainer_v1 xAOD::CMXJetHitsAuxContainer_v1 xAOD::CMXJetTobAuxContainer_v1 xAOD::CMXRoIAuxContainer_v1 xAOD::CompositeParticleAuxContainer_v1 xAOD::CPMHitsAuxContainer_v1 xAOD::CPMRoIAuxContainer_v1 xAOD::CPMTobRoIAuxContainer_v1 xAOD::CPMTowerAuxContainer_v1 xAOD::CPMTowerAuxContainer_v2 xAOD::CutBookkeeperAuxContainer_v1 xAOD::DiTauJetAuxContainer_v1 xAOD::EgammaAuxContainer_v1 xAOD::ElectronAuxContainer_v2 xAOD::ElectronAuxContainer_v3 xAOD::ElectronTrigAuxContainer_v1 xAOD::EmTauRoIAuxContainer_v1 xAOD::EmTauRoIAuxContainer_v2 xAOD::EventInfoAuxContainer_v1 xAOD::ForwardEventInfoAuxContainer_v1 xAOD::HIEventShapeAuxContainer_v1 xAOD::HIEventShapeAuxContainer_v2 xAOD::JEMEtSumsAuxContainer_v1 xAOD::JEMEtSumsAuxContainer_v2 xAOD::JEMHitsAuxContainer_v1 xAOD::JEMRoIAuxContainer_v1 xAOD::JEMTobRoIAuxContainer_v1 xAOD::JetAuxContainer_v1 xAOD::JetElementAuxContainer_v1 xAOD::JetElementAuxContainer_v2 xAOD::JetRoIAuxContainer_v1 xAOD::JetRoIAuxContainer_v2 xAOD::L1TopoRawDataAuxContainer_v1 xAOD::L2CombinedMuonAuxContainer_v1 xAOD::L2IsoMuonAuxContainer_v1 xAOD::L2StandAloneMuonAuxContainer_v1 xAOD::L2StandAloneMuonAuxContainer_v2 xAOD::LumiBlockRangeAuxContainer_v1 xAOD::MBTSModuleAuxContainer_v1 xAOD::MissingETAuxAssociationMap_v1 xAOD::MissingETAuxAssociationMap_v2 xAOD::MissingETAuxComponentMap_v1 xAOD::MissingETAuxContainer_v1 xAOD::MuonAuxContainer_v1 xAOD::MuonAuxContainer_v2 xAOD::MuonAuxContainer_v3 xAOD::MuonRoIAuxContainer_v1 xAOD::MuonSegmentAuxContainer_v1 xAOD::NeutralParticleAuxContainer_v1 xAOD::ParticleAuxContainer_v1 xAOD::PFOAuxContainer_v1 xAOD::PhotonAuxContainer_v2 xAOD::PhotonAuxContainer_v3 xAOD::PhotonTrigAuxContainer_v1 xAOD::RODHeaderAuxContainer_v1 xAOD::RODHeaderAuxContainer_v2 xAOD::SCTRawHitValidationAuxContainer_v1 xAOD::SlowMuonAuxContainer_v1 xAOD::TauJetAuxContainer_v1 xAOD::TauJetAuxContainer_v2 xAOD::TrackMeasurementValidationAuxContainer_v1 xAOD::TrackParticleAuxContainer_v1 xAOD::TrackParticleAuxContainer_v2 xAOD::TrackParticleAuxContainer_v3 xAOD::TrackParticleClusterAssociationAuxContainer_v1 xAOD::TrackStateValidationAuxContainer_v1 xAOD::TrigBphysAuxContainer_v1 xAOD::TrigCaloClusterAuxContainer_v1 xAOD::TrigElectronAuxContainer_v1 xAOD::TrigEMClusterAuxContainer_v2 xAOD::TriggerMenuAuxContainer_v1 xAOD::TriggerTowerAuxContainer_v1 xAOD::TriggerTowerAuxContainer_v2 xAOD::TrigHisto2DAuxContainer_v1 xAOD::TrigMissingETAuxContainer_v1 xAOD::TrigPassBitsAuxContainer_v1 xAOD::TrigPhotonAuxContainer_v1 xAOD::TrigRingerRingsAuxContainer_v1 xAOD::TrigRingerRingsAuxContainer_v2 xAOD::TrigRNNOutputAuxContainer_v1 xAOD::TrigRNNOutputAuxContainer_v2 xAOD::TrigSpacePointCountsAuxContainer_v1 xAOD::TrigT2MbtsBitsAuxContainer_v1 xAOD::TrigT2ZdcSignalsAuxContainer_v1 xAOD::TrigTrackCountsAuxContainer_v1 xAOD::TrigVertexCountsAuxContainer_v1 xAOD::TruthEventAuxContainer_v1 xAOD::TruthMetaDataAuxContainer_v1 xAOD::TruthParticleAuxContainer_v1 xAOD::TruthPileupEventAuxContainer_v1 xAOD::TruthVertexAuxContainer_v1 xAOD::VertexAuxContainer_v1 xAOD::ZdcModuleAuxContainer_v1

List of all members.

Classes

struct  TSAuxidSet
 Helper class for the thread-local auxid set implementation.

Public Types

typedef SG::auxid_t auxid_t
 The aux ID type definition.
typedef SG::auxid_set_t auxid_set_t
 The aux ID set type definition.

Public Member Functions

 AuxContainerBase (bool allowDynamicVars=true)
 Default constructor.
 AuxContainerBase (const AuxContainerBase &parent)
 Copy constructor.
 AuxContainerBase (const SG::IAuxStore *store)
 Constructor receiving a "dynamic auxiliary store".
 ~AuxContainerBase ()
 Destructor.
AuxContainerBaseoperator= (const AuxContainerBase &rhs)
 Assignment operator.
Functions implementing the SG::IAuxStoreHolder interface



virtual SG::IAuxStoregetStore () const
 Get the currently used internal store object.
virtual void setStore (SG::IAuxStore *store)
 Set a different internal store object.
virtual AuxStoreType getStoreType () const
 Return the type of the store object.
Functions implementing the SG::IConstAuxStore interface



virtual const void * getData (auxid_t auxid) const
 Get a pointer to a given array.
virtual const auxid_set_tgetAuxIDs () const
 Get the types(names) of variables handled by this container.
virtual void * getDecoration (auxid_t auxid, size_t size, size_t capacity)
 Get a pointer to a given array, as a decoration.
virtual void lock ()
 Lock the container.
virtual void clearDecorations ()
 Clear all decorations.
virtual size_t size () const
 Get the size of the container.
Functions implementing the SG::IAuxStore interface



virtual void * getData (auxid_t auxid, size_t size, size_t capacity)
 Get a pointer to a given array, creating the array if necessary.
virtual const auxid_set_tgetWritableAuxIDs () const
 Return a set of writable data identifiers.
virtual void resize (size_t size)
 Resize the arrays to a given size.
virtual void reserve (size_t size)
 Reserve a given size for the arrays.
virtual void shift (size_t pos, ptrdiff_t offs)
 Shift the contents of the stored arrays.
virtual bool setOption (auxid_t id, const SG::AuxDataOption &option)
 Make an option setting on an aux variable.
Functions implementing the SG::IAuxStoreIO interface



virtual const void * getIOData (auxid_t auxid) const
 Get a pointer to the data being stored for one aux data item.
virtual const std::type_info * getIOType (auxid_t auxid) const
 Return the type of the data to be stored for one aux data item.
virtual const auxid_set_tgetDynamicAuxIDs () const
 Get the types(names) of variables created dynamically.
virtual void selectAux (const std::set< std::string > &attributes)
 Select dynamic Aux attributes by name (for writing).
virtual const SG::auxid_set_tgetSelectedAuxIDs () const
 Get the IDs of the selected dynamic Aux variables (for writing).
Functions managing the instance name of the container



const char * name () const
 Get the name of the container instance.
void setName (const char *name)
 Set the name of the container instance.

Protected Member Functions

template<typename T >
void regAuxVar (const std::string &name, std::vector< T > &vec)
 Register one of the persistent variables internally.
template<typename T >
void regAuxVar (const std::string &name, SG::PackedContainer< T > &vec)
 Register one of the persistent variables internally.

Detailed Description

Common base class for the auxiliary containers

To make the development of auxiliary containers simpler, they can all inherit from this one class. Then all they need to do is just to declare their data members, everything else is taken care of by this transient base class.

Author:
Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch>
Revision
633391
Date
2014-12-03 16:58:38 +0100 (Wed, 03 Dec 2014)

Constructor & Destructor Documentation

xAOD::AuxContainerBase::AuxContainerBase ( const AuxContainerBase parent  ) 

Copy constructor.

This is an interesting one. The internal variables of AuxContainerBase are set up by the derived class(es) at construction. So, this internal state is not to be copied!

However, since the derived classes (the contents of their regular members) are allowed to be copied, let's not make this constructor private.

xAOD::AuxContainerBase::AuxContainerBase ( const SG::IAuxStore store  ) 

Constructor receiving a "dynamic auxiliary store".

This constructor is used to wrap another object that is stored in StoreGate, and hence we should not take ownership of.

Parameters:
store Another store that should be wrapped, but not owned

Member Function Documentation

AuxContainerBase & xAOD::AuxContainerBase::operator= ( const AuxContainerBase rhs  ) 

Assignment operator.

Just like the copy constructor, this operator doesn't actually copy anything either. It's just here to make it clear to C++ that the internal state of these objects is not to be messed with.

Returns:
A reference to this same object
template<typename T >
void xAOD::AuxContainerBase::regAuxVar ( const std::string &  name,
SG::PackedContainer< T > &  vec 
) [inline, protected]

Register one of the persistent variables internally.

The user is expected to use this function inside the constructor of the derived class.

Parameters:
name The name of the variable. Same as the C++ variable's name.
vec A reference to the auxiliary variable inside the object
template<typename T >
void xAOD::AuxContainerBase::regAuxVar ( const std::string &  name,
std::vector< T > &  vec 
) [inline, protected]

Register one of the persistent variables internally.

The user is expected to use this function inside the constructor of the derived class.

Parameters:
name The name of the variable. Same as the C++ variable's name.
vec A reference to the auxiliary variable inside the object
void xAOD::AuxContainerBase::setStore ( SG::IAuxStore store  )  [virtual]

Set a different internal store object.

This function is used by the I/O infrastructure to possibly put a store object into this one, which can interact with dynamic variables directly.

Note that the object takes ownership of the received store.

Parameters:
store The store that should be used for dynamic variable handling inside the object from now on

Implements SG::IAuxStoreHolder.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 15 Apr 2017 for RootCore Packages by  doxygen 1.6.1