SG::IConstAuxStore Class Reference

Interface for const operations on an auxiliary store. More...

#include <IConstAuxStore.h>

Inheritance diagram for SG::IConstAuxStore:
SG::IAuxStore SG::AuxStoreInternal xAOD::AuxContainerBase xAOD::AuxInfoBase xAOD::ByteStreamAuxContainer_v1 xAOD::ShallowAuxContainer xAOD::TAuxStore SG::AuxStoreStandalone 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 xAOD::CMMRoIAuxInfo_v1 xAOD::EnergySumRoIAuxInfo_v1 xAOD::EventAuxInfo_v1 xAOD::EventShapeAuxInfo_v1 xAOD::FileMetaDataAuxInfo_v1 xAOD::JetEtRoIAuxInfo_v1 xAOD::RoiDescriptorStoreAuxInfo_v1 xAOD::TrigDecisionAuxInfo_v1 xAOD::TrigNavigationAuxInfo_v1 xAOD::JetTrigAuxContainer_v1 xAOD::TrigCompositeAuxContainer_v1 xAOD::ShallowAuxInfo

List of all members.

Public Member Functions

virtual ~IConstAuxStore ()
 Destructor.
virtual const void * getData (SG::auxid_t auxid) const =0
 Return the data vector for one aux data item.
virtual void * getDecoration (auxid_t auxid, size_t size, size_t capacity)=0
 Return the data vector for one aux data decoration item.
virtual const SG::auxid_set_tgetAuxIDs () const =0
 Return a set of identifiers for existing data items in this store.
virtual void lock ()=0
 Lock the container.
virtual void clearDecorations ()=0
 Clear all decorations.
virtual size_t size () const =0
 Return the number of elements in the store.

Detailed Description

Interface for const operations on an auxiliary store.

A DataVector may have auxiliary data associated with it. These data are kept in separate AuxStore objects; this defines the interface for const operations on such a store.

An AuxStore may store a number of different aux data items; these are identified by an integer of type auxid_t. Each item is stored as a vector with one entry per entry in the containing DataVector.

This interface provides methods for getting a const pointer to an existing vector of aux data items and for getting the set of existing aux data items.

In addition, sometimes we want to add additional auxiliary data to an existing, const container; this is called `decorating' it. For example, we retrieve a const container from StoreGate, run some algorithm on it, and attach additional data to the object that can be accessed by downstream algorithms or written to a file. To support this, we add the getDecoration operation, as well as lock and clearDecorations. When the object is first being filled, it is unlocked. It gets locked when StoreGateSvc::setConst is called on it. From then on, we can only create decorations. Calling clearDecorations will restore the state back to where it was when lock was called. (Be sure that the container's cache also gets cleared.)

getDecoration then works as follows:


Member Function Documentation

virtual void SG::IConstAuxStore::clearDecorations (  )  [pure virtual]

Clear all decorations.

Erase all decorations from the store, restoring the state to when lock was called. Be sure to clear the cache of the referencing container!

Implemented in SG::AuxStoreInternal, xAOD::AuxContainerBase, xAOD::AuxInfoBase, xAOD::ShallowAuxContainer, xAOD::TAuxStore, and xAOD::ByteStreamAuxContainer_v1.

virtual const SG::auxid_set_t& SG::IConstAuxStore::getAuxIDs (  )  const [pure virtual]

Return a set of identifiers for existing data items in this store.

This should include identifiers for all items, const and non-const.

Implemented in SG::AuxStoreInternal, xAOD::AuxContainerBase, xAOD::AuxInfoBase, xAOD::ShallowAuxContainer, xAOD::TAuxStore, and xAOD::ByteStreamAuxContainer_v1.

virtual const void* SG::IConstAuxStore::getData ( SG::auxid_t  auxid  )  const [pure virtual]

Return the data vector for one aux data item.

Parameters:
auxid The identifier of the desired aux data item.

Each aux data item is stored as a vector, with one entry per entry in the owning container. This returns a pointer to the start of the vector.

This should return 0 if the item doesn't exist.

Implemented in SG::AuxStoreInternal.

virtual void* SG::IConstAuxStore::getDecoration ( auxid_t  auxid,
size_t  size,
size_t  capacity 
) [pure virtual]

Return the data vector for one aux data decoration item.

Parameters:
auxid The identifier of the desired aux data item.
size The current size of the container (in case the data item does not already exist).
capacity The current capacity of the container (in case the data item does not already exist).

Each aux data item is stored as a vector, with one entry per entry in the owning container. This returns a pointer to the start of the vector.

If the data item does not exist, it then it will be created and initialized with default values. If the container is locked, then the new item will be marked as a decoration. size and capacity give the size for the new aux data item vector.

If the data item already exists, then we return it if either the container is not locked or the item is marked as a decoration. Otherwise we throw an exception.

Implemented in SG::AuxStoreInternal.

virtual void SG::IConstAuxStore::lock (  )  [pure virtual]

Lock the container.

After this, only decorations can be changed/modified. If the container is already locked, this is a no-op.

Implemented in SG::AuxStoreInternal, xAOD::AuxContainerBase, xAOD::AuxInfoBase, xAOD::ShallowAuxContainer, xAOD::TAuxStore, and xAOD::ByteStreamAuxContainer_v1.

virtual size_t SG::IConstAuxStore::size (  )  const [pure virtual]

Return the number of elements in the store.

May return 0 for a store with no aux data.

Implemented in SG::AuxStoreInternal, xAOD::AuxContainerBase, xAOD::AuxInfoBase, xAOD::ShallowAuxContainer, xAOD::TAuxStore, and xAOD::ByteStreamAuxContainer_v1.


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

Generated on 1 Dec 2017 for RootCore Packages by  doxygen 1.6.1