ATLAS Offline Software
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
SG Namespace Reference

Forward declaration. More...

Namespaces

 ArenaBlockAlignDetail
 
 CondHandleDefault
 
 detail
 

Classes

class  Accessor
 Helper class to provide type-safe access to aux data. More...
 
class  Accessor< JaggedVecElt< PAYLOAD_T >, ALLOC >
 Helper class to provide type-safe access to aux data, specialized for JaggedVecElt. More...
 
class  Accessor< PackedLink< CONT >, ALLOC >
 Helper class to provide constant type-safe access to aux data, specialized for PackedLink. More...
 
class  Accessor< std::vector< PackedLink< CONT >, VALLOC >, ALLOC >
 Helper class to provide constant type-safe access to aux data, specialized for a vector of PackedLink. More...
 
class  Arena
 Collection of memory allocators with a common lifetime,. More...
 
class  ArenaAllocatorBase
 Common base class for arena allocator classes. More...
 
class  ArenaAllocatorCreator
 Provide an interface for creating an arena Allocator. More...
 
class  ArenaAllocatorRegistry
 Registry of allocator factories. More...
 
class  ArenaAllocatorRegistryImpl
 ArenaAllocatorRegistry implementation class. More...
 
class  ArenaBase
 Part of Arena dealing with the list of allocators. More...
 
class  ArenaBlock
 A large memory block that gets carved into smaller uniform elements. More...
 
class  ArenaBlockAllocatorBase
 Common functionality for block-oriented allocators. More...
 
class  ArenaCachingHandle
 User interface for allocating memory that caches constructed objects. More...
 
class  ArenaHandle
 User interface for allocating memory. More...
 
class  ArenaHandleBase
 Base class for all Handle classes, containing parts that do not depend on the referenced type. More...
 
class  ArenaHandleBaseAllocT
 Base class for Handle classes, containing parts that depend only on the Allocator. More...
 
class  ArenaHandleBaseT
 Base class for Handle classes, containing parts that are independent of how the Allocator gets created. More...
 
class  ArenaHeader
 Proxy for a group of Arenas. More...
 
class  ArenaHeapAllocator
 Heap-based allocator. More...
 
class  ArenaHeapSTLAllocator
 STL-style allocator wrapper for ArenaHeapAllocator. More...
 
class  ArenaHeapSTLAllocator< T, T >
 STL-style allocator wrapper for ArenaHeapAllocator. More...
 
class  ArenaHeapSTLAllocator_initParams
 Initializer for pool allocator parameters. More...
 
class  ArenaNonConstHeapSTLAllocator
 Forward declaration. More...
 
class  ArenaNonConstPoolSTLAllocator
 Forward declaration. More...
 
class  ArenaPoolAllocator
 Pool-based allocator. More...
 
class  ArenaPoolSTLAllocator
 STL-style allocator wrapper for ArenaPoolAllocator. More...
 
class  ArenaPoolSTLAllocator< T *, VETO >
 STL-style allocator wrapper for ArenaPoolAllocator. More...
 
class  ArenaPoolSTLAllocator< T, typename std::enable_if<!std::is_pointer_v< T >, T >::type >
 STL-style allocator wrapper for ArenaPoolAllocator. More...
 
class  ArenaPoolSTLAllocator_initParams
 Initializer for pool allocator parameters. More...
 
class  ArenaSharedHeapSTLAllocator
 Forward declaration. More...
 
class  ArenaSharedHeapSTLHeader
 Common header class for ArenaSharedHeapSTLAllocator. More...
 
class  AtomicConstAccessor
 Access an auxiliary variable atomically. More...
 
class  AtomicDecorator
 Access an auxiliary variable atomically. More...
 
class  AuxDataOption
 Hold information about an option setting request. More...
 
struct  AuxDataSpanBase
 Minimal span-like object describing the range of an auxiliary variable. More...
 
class  AuxDataTraits
 Allow customizing how aux data types are treated. More...
 
class  AuxDataTraits< bool, ALLOC >
 Allow customizing how aux data types are treated. More...
 
class  AuxElement
 Base class for elements of a container that can have aux data. More...
 
class  AuxElementComplete
 Wrapper to automatically create a private store for an element. More...
 
class  AuxElementData
 Internal data container. More...
 
class  AuxElementPrivateData
 Internal data container for private store. More...
 
class  AuxElementStandaloneData
 Internal data container for standalone store. More...
 
class  auxid_set_t
 A set of aux data identifiers. More...
 
struct  AuxStore_traits
 Associate AuxStore classes with EDM container classes (default implementation). More...
 
struct  AuxStore_traits1
 Helper for the case where DOBJ::base_value_type does not derive from SG::IAuxElement. More...
 
struct  AuxStore_traits1< DOBJ, typename std::is_base_of< IAuxElement, typename DOBJ::base_value_type >::type >
 Helper for the case where DOBJ::base_value_type does derive from SG::IAuxElement. More...
 
struct  AuxStore_traits< DOBJ * >
 Associate AuxStore classes with EDM container classes. More...
 
struct  AuxStore_traits_AuxDefault
 Default traits values for aux data case. More...
 
struct  AuxStore_traits_NoAuxDefault
 Default traits values for no-aux data case. More...
 
class  AuxStoreConstMem
 IConstAuxStore implementation referencing external buffers. More...
 
class  AuxStoreInternal
 An auxiliary data store that holds data internally. More...
 
class  AuxStoreStandalone
 Auxiliary data store for standalone objects. More...
 
class  AuxTypePlaceholder
 Used as type_info when we read an aux data item but it doesn't exist in the registry. More...
 
class  AuxTypeRegistry
 Handle mappings between names and auxid_t. More...
 
class  AuxTypeRegistryImpl
 @Brief Implementation class for AuxTypeRegistry. More...
 
class  AuxTypeVectorFactory
 Factory object that creates vectors using AuxTypeVector. More...
 
class  AuxTypeVectorFactory< JaggedVecElt< T >, ALLOC >
 Factory object that creates vectors using AuxTypeVector. More...
 
class  AuxTypeVectorFactory< PackedLink< CONT >, ALLOC >
 Factory object that creates vectors for packed links. More...
 
class  AuxTypeVectorFactory< std::vector< PackedLink< CONT >, VALLOC >, ALLOC >
 Factory object that creates vectors of vectors of packed links. More...
 
class  AuxTypeVectorFactoryImpl
 Factory object that creates vectors using AuxTypeVector. More...
 
class  AuxTypeVectorHolder
 Implementation of IAuxTypeVector for specific types. More...
 
class  AuxTypeVectorT
 Implementation of IAuxTypeVector holding a vector instance. More...
 
class  AuxVectorBase
 Manage index tracking and synchronization of auxiliary data. More...
 
class  AuxVectorData
 Manage lookup of vectors of auxiliary data. More...
 
class  AuxVectorInterface
 Make an AuxVectorData object from either a raw array or an aux store. More...
 
class  BaseInfo
 Provide an interface for finding inheritance information at run time. More...
 
class  BaseInfo< CaloConstCellContainer >
 
class  BaseInfo< ConstDataVector< DV > >
 Let the BaseInfo for ConstDataVector forward to that of the base DataVector. More...
 
class  BaseInfo< DataVectorWithAlloc< DV, ALLOC > >
 Let the BaseInfo for DataVectorWithAlloc forward to that of the base DataVector. More...
 
class  BaseInfoBase
 The non-template portion of the BaseInfo implementation. More...
 
struct  BaseInfoBaseImpl
 
class  BaseInfoImpl
 
struct  BaseList
 Represent a list of base classes. More...
 
struct  BaseList< BASE, REST... >
 Represent a non-empty list of base classes. More...
 
struct  Bases
 Traits class to hold derivation information. More...
 
struct  Bases< CondCont< T > >
 
struct  Bases< CondContMixed< T > >
 
struct  Bases< DataVector< T, DataModel_detail::NoBase > >
 Declare DataVector base class. More...
 
struct  Bases< TileContainer< T > >
 
struct  Bases< ViewVector< DV > >
 Specialize to declare that ViewVector<DV> derives from DV. More...
 
struct  BaseType
 Helper metafunction to get base class types. More...
 
struct  BaseType< Virtual< T > >
 
class  CondHandleKey
 
class  ConstAccessor
 Helper class to provide constant type-safe access to aux data. More...
 
class  ConstAccessor< SG::JaggedVecElt< PAYLOAD_T >, ALLOC >
 Helper class to provide constant type-safe access to aux data, specialized for JaggedVecElt. More...
 
class  ConstAccessor< SG::PackedLink< CONT >, ALLOC >
 Helper class to provide constant type-safe access to aux data, specialized for PackedLink. More...
 
class  ConstAccessor< std::vector< SG::PackedLink< CONT >, VALLOC >, ALLOC >
 Helper class to provide constant type-safe access to aux data, specialized for a vector of PackedLink. More...
 
class  ConstAuxElement
 Const part of AuxElement. More...
 
class  ConstIterator
 
class  CopyConversion
 Base class for copy conversions, templated on source and destination classes. More...
 
class  CopyConversionBase
 Base class for copy conversions. More...
 
class  CurrentEventStore
 Hold a pointer to the current event store. More...
 
class  DataBucket
 
struct  DataBucketTrait
 Metafunction to find the proper DataBucket class for T. More...
 
struct  DataBucketTrait< CaloConstCellContainer, U >
 
struct  DataBucketTrait< ConstDataVector< DV >, U >
 Metafunction to find the proper DataBucket class for the first template argument. More...
 
struct  DataBucketTrait< DataVector< T >, U >
 Metafunction to find the proper DataBucket class for T. More...
 
struct  DataBucketTrait< DataVectorWithAlloc< DV, ALLOC >, U >
 Metafunction to find the proper DataBucket class for the first template argument. More...
 
struct  DataBucketTrait< MetaCont< T >, U >
 Metafunction to find the proper DataBucket class for T. More...
 
class  DataObjectSharedPtr
 Smart pointer to manage DataObject reference counts. More...
 
class  DataProxy
 
class  DataProxyHolder
 Manage DataProxy reference in ElementLink/DataLink. More...
 
class  DataStore
 Hold DataProxy instances associated with a store. More...
 
class  Decorator
 Helper class to provide type-safe access to aux data. More...
 
class  Decorator< JaggedVecElt< PAYLOAD_T >, ALLOC >
 Helper class to provide type-safe access to aux data, specialized for JaggedVecElt. More...
 
class  Decorator< PackedLink< CONT >, ALLOC >
 Helper class to provide type-safe access to aux data, specialized for PackedLink. More...
 
class  Decorator< std::vector< PackedLink< CONT >, VALLOC >, ALLOC >
 Helper class to provide constant type-safe access to aux data, specialized for a vector of PackedLink. More...
 
class  DVLConstDataVectorBucket
 DataBucket class for ConstDataVector. More...
 
class  DVLDataBucket
 A DataBucket specialized for DataVector/DataList. More...
 
class  DVLDataVectorWithAllocBucket
 DataBucket class for DataVectorWithAlloc. More...
 
class  ElementLinkTraits
 ElementLinkTraits class to specialize. More...
 
class  ElementLinkTraits1
 ElementLink classes for the generic case. More...
 
class  ElementLinkTraits1< STORABLE, BASE_VALUE_TYPE *, true >
 ElementLink classes for the case of a vector-like container of pointers. More...
 
class  ELVRef
 a short ref to an ElementLink into an ElementLinkVector. Used to be an internal class of ElementLinkVector. Had to pull out because of brain-damaged pool converters More...
 
class  ExcAllocOwnership
 Exception — Bad allocation ownership. More...
 
class  ExcAuxTypeMismatch
 Exception — Type mismatch for aux variable. More...
 
class  ExcBadAuxVar
 Exception — Attempt to retrieve nonexistent aux data item. More...
 
class  ExcBadContext
 Exception — Bad EventContext extension while building ReadCondHandle. More...
 
class  ExcBadDataProxyCast
 Exception — Bad cast of DataProxy with CLID. More...
 
class  ExcBadDecorElement
 Exception — DecorHandle given an element not in the requested container. More...
 
class  ExcBadForwardLink
 Exception — ForwardIndexingPolicy: internal link state is invalid. More...
 
class  ExcBadHandleKey
 Exception — Bad key format for VarHandleKey. More...
 
class  ExcBadInitializedReadHandleKey
 Exception — Initialization of InitializedReadHandleKey failed. More...
 
class  ExcBadIterSwap
 Exception — Bad iter_swap. More...
 
class  ExcBadPrivateStore
 Exception — Bad use of private store. More...
 
class  ExcBadReadCondHandleInit
 Exception — ReadCondHandle didn't initialize in getRange(). More...
 
class  ExcBadThinning
 Exception – Bad thinning request. More...
 
class  ExcBadToTransient
 Exception — bad toTransient. More...
 
class  ExcBadVarName
 Exception — Bad name for auxiliary variable. More...
 
class  ExcCLIDMismatch
 Exception — Attempt to set DataLink / ElementLink with CLID <clid> to object with CLID <clid>. More...
 
class  ExcConstAuxData
 Exception — Non-const operation performed on const aux data. More...
 
class  ExcConstObject
 Exception — Tried to retrieve non-const pointer to const object. More...
 
class  ExcConstStorable
 Exception – Tried to retrieve const storable as a non-const pointer. More...
 
class  ExcDifferentArenas
 Exception — Attempt to assign between ArenaSharedHeapSTLAllocators for different arenas. More...
 
class  ExcDVToELV
 Exception — Can't convert DataVector to vector of ElementLinks. More...
 
class  ExcElementNotFound
 Exception — element not found. More...
 
class  ExcFlagMismatch
 Exception — Flag mismatch for aux variable. More...
 
class  ExcForbiddenMethod
 Exception — Forbidden method called. More...
 
class  ExcHandleInitError
 Exception — Error initializing VarHandle from VarHandleKey. More...
 
class  ExcIncomparableEL
 Exception — incomparable ElementLink. More...
 
class  ExcIndexNotFound
 Exception — index not found. More...
 
class  ExcInsertionInBaseClass
 Exception — Attempted to do OP on a BASE base class of COMPLETE; can only be done on the most-derived class. More...
 
class  ExcInsertMoveOwnershipMismatch
 Exception — Ownership mismatch for insertMove. More...
 
class  ExcInvalidIndex
 Exception — invalid index. More...
 
class  ExcInvalidIterator
 Exception — Deference invalid SG::Iterator. More...
 
class  ExcInvalidLink
 Exception — Attempt to dereference invalid DataLink / ElementLink ". More...
 
class  ExcInvalidThinningTarget
 Exception — ThinningHandle target does not exist. More...
 
class  ExcJaggedVecOverlappingCopy
 Exception — Overlapping copies not implemented for jagged vectors. More...
 
class  ExcLinkMismatch
 Exception — Linked variable mismatch. More...
 
class  ExcMissingBaseInfo
 Exception — Missing BaseInfo. More...
 
class  ExcMissingViewVectorCLID
 Exception — Missing CLID for ViewVector. More...
 
class  ExcNoAuxStore
 Exception — Aux data requested from object with no store. More...
 
class  ExcNoCondCont
 Exception — Can't retrieve CondCont from ReadCondHandle. More...
 
class  ExcNoLinkedVar
 Exception — Linked variable not found. More...
 
class  ExcNonConstHandleKey
 Exception — Attempt to get non-const VarHandleKey from non-owning VarHandle. More...
 
class  ExcNonowningContainer
 Exception — Attempted to insert a unique_ptr to a non-owning container. More...
 
class  ExcNoRange
 Exception — Range not set in ReadCondHandle::getRange(). More...
 
class  ExcNullHandleKey
 Exception — Attempt to dereference a Read/Write/UpdateHandle with a null key. More...
 
class  ExcNullReadHandle
 Exception — Deference of read handle failed. More...
 
class  ExcNullUpdateHandle
 Exception — Deference of update handle failed. More...
 
class  ExcNullWriteHandle
 Exception — Attempt to dereference write handle before record. More...
 
class  ExcOutOfRange
 Exception — Range reference out of bounds. More...
 
class  ExcPointerNotInSG
 Exception — The object referenced by a DataLink / ElementLink is not registered in SG. More...
 
class  ExcProtected
 Exception — Attempt to change protected arena. More...
 
class  ExcProtection
 Exception — Attempt to change memory protection failed. More...
 
class  ExcProxyCollision
 Exception — Proxy collision for clid/key. More...
 
class  ExcSgkeyCollision
 Exception — sgkey hash collision. More...
 
class  ExcStoreLocked
 Exception — Attempted to modify auxiliary data in a locked store. More...
 
class  ExcUninitKey
 Exception — Tried to create a handle from an uninitialized key. More...
 
class  ExcUnknownAuxItem
 Exception — Unknown aux data item. More...
 
class  ExcUntrackedSetStore
 Exception — Attempt to set aux data store on container that doesn't track indices, or disable index tracking for a container with aux data. More...
 
class  ExcViewVectorNotView
 Exception — ViewVector not in view mode. More...
 
class  Folder
 a run-time configurable list of data objects More...
 
class  FolderItem
 a Folder item (data object) is identified by the clid/key pair More...
 
class  ForwardIndexingPolicy
 Indexing policy for a vector-like container. More...
 
struct  GenerateIndexingPolicy
 
struct  GenericElementLinkBase
 Generic base class for ElementLinks. More...
 
struct  HandleClassifier
 Helper to classify the type of a handle property. More...
 
class  HandleKeyArray
 
struct  HiveEventSlot
 
class  HiveMgrSvc
 
class  IAuxElement
 Flag that a class may have auxiliary data associated with it. More...
 
class  IAuxSetOption
 Abstract interface for setting a option on a aux data container. More...
 
class  IAuxStore
 Interface for non-const operations on an auxiliary store. More...
 
class  IAuxStoreHolder
 Interface for objects taking part in direct ROOT I/O. More...
 
class  IAuxStoreIO
 Interface providing I/O for a generic auxiliary store. More...
 
class  IAuxTypeVector
 Abstract interface for manipulating vectors of arbitrary types. More...
 
class  IAuxTypeVectorFactory
 Interface for factory objects that create vectors. More...
 
class  IConstAuxStore
 Interface for const operations on an auxiliary store. More...
 
class  IdentContIndexingPolicy
 Indexing policy for an IdentifiableContainer. More...
 
class  IFolder
 a run-time configurable list of data objects More...
 
class  IndexHolder
 Store an ElementLink index for non-vector containers. More...
 
class  InitializedReadHandleKey
 ReadHandleKey that initializes during construction. More...
 
struct  InstallPackedContainerStreamer
 
struct  InstallViewVectorBaseStreamer
 
class  IRegisterTransient
 Interface for registering a transient object in t2p map. More...
 
class  IsMostDerivedFlag
 Holder for the is-most-derived flag. More...
 
struct  IsSTLSequence
 
struct  IsThreadSafeForUH
 
struct  IsThreadSafeForUH< int, std::true_type >
 
struct  IsThreadSafeForUH< T, typename T::thread_safe >
 
class  Iterator
 
class  JaggedVecElt
 Describe one element of a jagged vector. More...
 
class  JaggedVecEltBase
 Describe one element of a jagged vector (base class). More...
 
class  JaggedVecVectorFactory
 Factory objects that creates vectors for packed links. More...
 
class  JaggedVecVectorHolder
 Implementation of IAuxTypeVector for JaggedVec types. More...
 
class  JaggedVecVectorT
 Implementation of IAuxTypeVector holding a vector of JaggedVec. More...
 
class  LockedAllocator
 A pointer type that holds a lock on an allocator object. More...
 
class  MapIndexingPolicy
 Indexing policy for a map-like container. More...
 
class  MetaContDataBucket
 Allow converting MetaCont<T> to T. More...
 
class  MetaHandleKey
 
class  NoAuxStore
 Mark that there's no associated AuxStore class. More...
 
struct  NoBase
 Marker to indicate a nonexistent base class. More...
 
class  NotHandleType
 
class  ObjectWithVersion
 associate a data object with its VersionedKey The object is held by a ReadHandle to delay its retrieval in case the user is interested only in the versionedKey More...
 
class  PackedContainer
 Container to hold aux data to be stored in a packed form. More...
 
class  PackedContainerStreamer
 Streamer for reading/writing SG::PackedContainer instances. More...
 
class  PackedConverter
 Helper for packing/unpacking a PackedContainer to/from a stream. More...
 
struct  PackedLinkBase
 A packed version of ElementLink. More...
 
class  PackedLinkVectorFactory
 Factory object that creates vectors for packed links. More...
 
class  PackedLinkVectorHolder
 Implementation of IAuxTypeVector for PackedLink types. More...
 
class  PackedLinkVectorT
 Implementation of IAuxTypeVector holding a vector of PackedLink. More...
 
class  PackedLinkVVectorFactory
 Factory object that creates vectors of vectors of packed links. More...
 
class  PackedLinkVVectorHolder
 Implementation of IAuxTypeVector for a vector of PackedLink. More...
 
class  PackedParameters
 Describe how the contents of a PackedContainer are to be saved. More...
 
struct  ptrhash
 Improved hash function for pointers. More...
 
class  PyDataBucket
 Concrete DataBucket that holds the object via a void* and uses the Root dictionary to do conversions. More...
 
struct  PyProxyDict
 a python front-end to the IProxyDict interface PyProxyDict encapsulates getting python objects from the raw C++ ones ones gets from the C++ store. More...
 
struct  PyProxyMgr
 A helper class to manage accesses to PyProxies. More...
 
class  ReadCondHandle
 
class  ReadCondHandleKey
 
class  ReadDecorHandle
 Handle class for reading a decoration on an object. More...
 
class  ReadDecorHandleKey
 Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made. More...
 
class  ReadHandle
 
class  ReadHandleKey
 Property holding a SG store/key/clid from which a ReadHandle is made. More...
 
class  ReadMetaHandle
 
class  ReadMetaHandleKey
 
struct  RegisterAddBaseInit
 
struct  RegisterAddCopyConversionInit
 
struct  RemapImpl
 
class  RootAuxVector
 Dynamic implementation of IAuxTypeVector, relying on root vector proxy. More...
 
class  RootAuxVectorFactory
 Dynamic implementation of IAuxVectorFactory, relying on root's vector proxy. More...
 
class  SetIndexingPolicy
 Indexing policy for a set-like container. More...
 
struct  SGKeyEqual
 Comparison functional for sgkey_t. More...
 
struct  SGKeyHash
 Hash functional for sgkey_t. More...
 
class  ShallowCopyDecorDeps
 Helper to propagate decoration dependencies to a shallow copy. More...
 
class  SlotSpecificObj
 Maintain a set of objects, one per slot. More...
 
class  StringPool
 
class  StringPoolImpl
 
class  SymlinkDataObject
 Helper for symLink_impl. More...
 
class  T2pMap
 
struct  TestSequenceTag
 
struct  TestSequenceTag< CONTAINER, typename CONTAINER::isSequence >
 
class  ThinningCache
 Cache thinning decisions for converters. More...
 
class  ThinningDecision
 Hold thinning decisions for one container. More...
 
class  ThinningDecisionBase
 Hold thinning decisions for one container. More...
 
class  ThinningHandle
 Handle for requesting thinning for a data object. More...
 
class  ThinningHandleBase
 Handle for requesting thinning: factor out type-independent code. More...
 
class  ThinningHandleKey
 HandleKey object for adding thinning to an object. More...
 
class  ThinningInfo
 Hold thinning/slimming information for a given object. More...
 
struct  TopBase
 Calculate topmost base accessible via SG_BASES. More...
 
struct  TopBase< DataVector< T, DataModel_detail::NoBase > >
 
struct  TopBase< SG::NoBase >
 
class  TransientAddress
 
class  TypelessConstAccessor
 Helper class to provide const generic access to aux data. More...
 
class  TypelessWriteHandle
 Handle allowing writes to the event store with a configurable type. More...
 
class  TypelessWriteHandleKey
 Property holding a write key for which the type can be configured. More...
 
class  UpdateHandle
 
class  UpdateHandleKey
 Property holding a SG store/key/clid from which an UpdateHandle is made. More...
 
class  VarHandleBase
 Base class for VarHandle types. More...
 
class  VarHandleKey
 A property holding a SG store/key/clid from which a VarHandle is made. More...
 
class  VarHandleKeyArray
 
class  VarHandleKeyArrayCommon
 
class  VarHandleKeyArrayProperty
 
class  VarHandleKeyArrayType
 
class  VarHandleKeyProperty
 VarHandleKeyProperty is the class which wraps a SG::VarHandleKey. More...
 
class  VarHandleKeyType
 
class  VarHandleType
 
class  VersionedKey
 a StoreGateSvc key with a version number. Notice that StoreGate does not order multiple instances of an object with a given key by version number. A generic retrieve will always return the first version recorded. For example, if object ("MyKey",1) is recorded _before__ ("MyKey", 2) a sg.retrieve(pObj,"MyKey") will return ("MyKey",1). StoreGateSvc provides retrieveAllVersions and retrieveHighestVersion, which offer a better-defined behaviour. More...
 
class  View
 
class  ViewVectorBase
 Hold the persistent representation for a ViewVector. More...
 
struct  Virtual
 Wrapper to indicate virtual derivation. More...
 
class  WriteCondHandle
 
class  WriteCondHandleKey
 
class  WriteDecorHandle
 Handle class for adding a decoration to an object. More...
 
class  WriteDecorHandleKey
 Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made. More...
 
class  WriteHandle
 
class  WriteHandleKey
 Property holding a SG store/key/clid from which a WriteHandle is made. More...
 
struct  Zero
 Helper to specialize how to make an initialized instance of T. More...
 
struct  Zero< Eigen::Matrix< SCALAR, ROWS, COLS, OPTIONS, MAXROWS, MAXCOLS > >
 

Typedefs

template<class T >
using AuxAllocator_t = std::allocator< T >
 The default allocator type to use for auxiliary variables. More...
 
template<class T , class ALLOC = AuxAllocator_t<T>, class CONT = typename AuxDataTraits<T, ALLOC>::vector_type>
using AuxTypeVector = AuxTypeVectorT< AuxTypeVectorHolder< T, CONT > >
 Default type derives directly from AuxTypeVectorHolder. More...
 
template<class T , class ALLOC = AuxAllocator_t<JaggedVecElt<T> >>
using JaggedVecVector = JaggedVecVectorT< JaggedVecVectorHolder< T, ALLOC > >
 
template<class CONT , class ALLOC = AuxAllocator_t<PackedLink<CONT> >>
using PackedLinkVector = PackedLinkVectorT< PackedLinkVectorHolder< CONT, ALLOC > >
 
template<class CONT , class VALLOC = AuxAllocator_t<PackedLink<CONT> >, class VELT = typename AuxDataTraits<PackedLink<CONT>, VALLOC >::vector_type, class ALLOC = AuxAllocator_t<VELT>>
using PackedLinkVVector = PackedLinkVectorT< PackedLinkVVectorHolder< CONT, VALLOC, VELT, ALLOC > >
 
typedef size_t auxid_t
 Identifier for a particular aux data item. More...
 
typedef std::string SourceID
 
using CompressionInfo = std::unordered_map< std::string, SG::ThinningInfo::compression_map_t >
 Map of compressed variables and their compression levels. More...
 
using SelectionVetoes = std::unordered_map< std::string, SG::auxid_set_t >
 Map of vetoed variables. More...
 
typedef ExcElementNotFound maybe_thinning_error
 Backwards compatibility. More...
 
typedef uint32_t sgkey_t
 Type used for hashed StoreGate key+CLID pairs. More...
 
template<class T >
using SGKeyMap = std::unordered_map< sgkey_t, T >
 A map using sgkey_t as a key. More...
 
using SGKeySet = std::unordered_set< sgkey_t >
 A set of sgkey_t values. More...
 
typedef std::map< std::string, DataProxy * > ProxyMap
 
typedef ProxyMap::iterator ProxyIterator
 
typedef ProxyMap::const_iterator ConstProxyIterator
 
typedef IProxyDict ** getDataSourcePointerFunc_t(const std::string &)
 
template<class T >
using ReadCondHandleKeyArray = HandleKeyArray< ReadCondHandle< T >, CondHandleDefault::Key< ReadCondHandleKey< T > >, Gaudi::DataHandle::Reader >
 
template<class T >
using WriteCondHandleKeyArray = HandleKeyArray< WriteCondHandle< T >, CondHandleDefault::Key< WriteCondHandleKey< T > >, Gaudi::DataHandle::Writer >
 
template<class T_Handle , class T_HandleKey , Gaudi::DataHandle::Mode MODE>
using DecorHandleKeyArray = HandleKeyArray< T_Handle, T_HandleKey, MODE >
 
template<class T , class S = float>
using ReadDecorHandleKeyArray = DecorHandleKeyArray< ReadDecorHandle< T, S >, ReadDecorHandleKey< T >, Gaudi::DataHandle::Reader >
 
template<class T >
using RVar = ReadHandle< T >
 
template<class T >
using ReadHandleKeyArray = HandleKeyArray< ReadHandle< T >, ReadHandleKey< T >, Gaudi::DataHandle::Reader >
 
template<class T >
using WPtr = T *
 
template<class T >
using ThinningHandleKeyArray = HandleKeyArray< ThinningHandle< T >, ThinningHandleKey< T >, Gaudi::DataHandle::Reader >
 
template<class T >
using RWVar = UpdateHandle< T >
 
template<class T , class S = float>
using WriteDecorHandleKeyArray = DecorHandleKeyArray< WriteDecorHandle< T, S >, WriteDecorHandleKey< T >, Gaudi::DataHandle::Writer >
 
template<class T >
using WVar = WriteHandle< T >
 
template<class T >
using WriteHandleKeyArray = HandleKeyArray< WriteHandle< T >, WriteHandleKey< T >, Gaudi::DataHandle::Writer >
 

Enumerations

enum  IndexTrackingPolicy { DEFAULT_TRACK_INDICES, ALWAYS_TRACK_INDICES, NEVER_TRACK_INDICES }
 
enum  OwnershipPolicy { OWN_ELEMENTS, VIEW_ELEMENTS }
 describes the possible element ownership policies (see e.g. DataVector) More...
 
enum  AuxVarFlags {
  None = 0x00, Atomic = 0x01, Linked = 0x02, SkipNameCheck = 0x80,
  ATH_BITMASK
}
 Additional flags to qualify an auxiliary variable. More...
 
enum  AllowEmptyEnum { AllowEmpty = 1 }
 

Functions

template<>
bool findInContainer (const CaloCellContainer &data, CaloCell const *const &element, CaloCellContainer::size_type &index)
 
template<>
bool findInContainer (const CaloConstCellContainer &data, CaloCell const *const &element, CaloConstCellContainer::size_type &index)
 
std::ostream & operator<< (std::ostream &os, const ArenaAllocatorBase::Stats::Stat &stat)
 Format a statistic structure. More...
 
std::ostream & operator<< (std::ostream &os, const ArenaAllocatorBase::Stats &stats)
 Format a complete statistics structure. More...
 
template<class T , class VETO >
void maybeUnprotect (ArenaHeapSTLAllocator< T, VETO > &a)
 Hook for unprotecting an arena. More...
 
template<class T , class VETO >
void maybeUnprotect (ArenaPoolSTLAllocator< T, VETO > &a)
 Hook for unprotecting an arena. More...
 
template<class T >
void swap (ArenaSharedHeapSTLAllocator< T > &a, ArenaSharedHeapSTLAllocator< T > &b)
 
template<class T >
void maybeUnprotect (ArenaSharedHeapSTLAllocator< T > &a)
 Hook for unprotecting an arena. More...
 
template<class ALLOC >
void maybeUnprotect (ALLOC &)
 Hook for unprotecting an arena. More...
 
void null_arena_deleter (ArenaBase *)
 
ArenaPoolAllocator::pointer ArenaPoolAllocator_iterator_increment (ArenaPoolAllocator::pointer base, ArenaBlock *&block)
 Helper: common code for advancing an iterator. More...
 
ArenaPoolAllocator::const_pointer ArenaPoolAllocator_iterator_increment (ArenaPoolAllocator::const_pointer base, const ArenaBlock *&block)
 Helper: common code for advancing an iterator. More...
 
std::string excProtection_format (int errnum)
 
template<class DV >
void dataVectorViewAsELV (const std::true_type &, const DV &v, std::vector< ElementLink< DV > > &ret, IProxyDict *store)
 Helper for dataVectorViewAsELV. More...
 
template<class DV >
void dataVectorViewAsELV (const std::false_type &, const DV &, std::vector< ElementLink< DV > > &, IProxyDict *)
 Helper for dataVectorViewAsELV. More...
 
template<class DV >
std::vector< ElementLink< DV > > dataVectorAsELV (const DV &v, IProxyDict *store=0)
 Helper to make a vector<EL> from a DataVector. More...
 
void throwExcNonowningContainer ()
 Throw a SG::ExcNonowningContainer exception. More...
 
void throwExcUnknownAuxItem (const std::string &name, const std::string &clsname="", const std::type_info *typ=0)
 Throw a SG::ExcUnknownAuxItem exception. More...
 
void throwExcViewVectorNotView ()
 Throw a SG::ExcViewVectorNotView exception. More...
 
void throwExcMissingViewVectorCLID (const std::type_info &ti)
 Throw a SG::ExcMissingViewVectorCLID exception. More...
 
void throwExcMissingBaseInfo (const std::type_info &ti)
 Throw a SG::ExcMissingBaseInfo exception. More...
 
void throwExcAllocOwnership ()
 Throw a SG::ExcAllocOwnership exception. More...
 
void throwJaggedVecOverlappingCopy ()
 Throw a SG::ExcJaggedVecOverlappingCopy exception. More...
 
void throwExcOutOfRange (const char *what, size_t i, size_t size)
 Throw a SG::ExcOutOfRange exception. More...
 
std::string normalizedTypeinfoName (const std::type_info &info)
 Convert a type_info to a normalized string representation (matching the names used in the root dictionary). More...
 
void copyAuxStoreThinned (const SG::IConstAuxStore &orig, SG::IAuxStore &copy, const SG::ThinningInfo *info)
 Helper to copy an aux store while applying thinning. More...
 
void lossyFloatCompress (void *dst, const std::size_t dst_index, const std::size_t n, const std::size_t eltSize, const std::string &typeName, const unsigned int nmantissa)
 Helper method to apply lossy float compression. More...
 
template<class CONTAINER >
std::unique_ptr< CONTAINER > copyThinned (CONTAINER &orig, const SG::ThinningInfo *info)
 Helper to copy an object while applying thinning. More...
 
template<class CONTAINER >
std::unique_ptr< const CONTAINER > copyThinnedConst (const CONTAINER &orig, const SG::ThinningInfo *info)
 Helper to copy an object while applying thinning, const version. More...
 
template<class CONTAINER >
std::unique_ptr< CONTAINER > copyThinned1 (const CONTAINER &orig, const void *dummy, const SG::ThinningInfo *info)
 Helper to copy an object while applying thinning. More...
 
template<class CONTAINER >
std::unique_ptr< CONTAINER > copyThinned1 (CONTAINER &orig, DataVector< typename CONTAINER::base_value_type > *, const SG::ThinningInfo *info)
 Helper to copy an object while applying thinning. More...
 
template<class CONTAINER >
std::unique_ptr< const CONTAINER > copyThinned1 (const CONTAINER &orig, const DataVector< typename CONTAINER::base_value_type > *dummy, const SG::ThinningInfo *info)
 Helper to copy an object while applying thinning. More...
 
template<class CONTAINER >
std::unique_ptr< CONTAINER > copyThinned1 (const CONTAINER &orig, const SG::IAuxStore *dummy, const SG::ThinningInfo *info)
 Helper to copy an object while applying thinning. More...
 
template<class T , typename std::enable_if_t< is_xAODInterfaceObject_v< T > > * = nullptr>
constexpr bool xAODInterfaceSupportingThinning ()
 
template<class T , typename std::enable_if_t< is_xAODStoreObject_v< T > > * = nullptr>
constexpr bool xAODStoreSupportingThinning ()
 
void writePackedParameters (TBuffer &b, const SG::PackedParameters &parms)
 Write a set of packed parameters to a buffer. More...
 
SG::PackedParameters readPackedParameters (TBuffer &b)
 Read a set of packed parameters from a buffer. More...
 
void ViewVectorBaseStreamerFunc (TBuffer &b, void *p)
 
std::string excFormatName (SG::auxid_t auxid)
 Helper: format an aux data item name. More...
 
std::string excNoAuxStore_format (SG::auxid_t auxid)
 Helper: format exception error string. More...
 
std::string excNoAuxStore_format (const char *op)
 Helper: format exception error string. More...
 
std::string excBadAuxVar_format (SG::auxid_t auxid)
 Helper: format exception error string. More...
 
std::string excConstAuxData_format (const std::string &op, SG::auxid_t auxid)
 Helper: format exception error string. More...
 
std::string excAuxTypeMismatch_format (SG::auxid_t auxid, const std::type_info &new_type, const std::type_info &old_type, const std::string &new_alloc_type, const std::string &old_alloc_type)
 Helper: format exception error string. More...
 
std::string excInsertionInBaseClass_format (const char *op, const std::type_info &base_type, const std::type_info &complete_type)
 Helper: format exception error string. More...
 
std::string excStoreLocked_format (SG::auxid_t auxid)
 Helper: format exception error string. More...
 
std::string excStoreLocked_format (const char *op)
 Helper: format exception error string. More...
 
std::string excUnknownAuxItem_format (const std::string &name, const std::string &clsname, const std::type_info *typ)
 Helper: format exception error string. More...
 
std::string excDVToELV_format (const std::string &detail)
 Helper: format exception error string. More...
 
std::string excFormatFlags (SG::AuxVarFlags flags)
 Helper: format flags. More...
 
std::string excFlagMismatch_format (SG::auxid_t auxid, const std::type_info &type, SG::AuxVarFlags existing_flags, SG::AuxVarFlags requested_flags)
 Helper: format exception error string. More...
 
std::string excLinkMismatch_format (SG::auxid_t auxid, const std::type_info &type, SG::auxid_t existing_linked_id, SG::auxid_t requested_linked_id)
 Helper: format exception error string. More...
 
std::string excNoLinkedVar_format (SG::auxid_t auxid, const std::type_info &type)
 Helper: format exception error string. More...
 
std::string excInvalidThinningTarget_format (unsigned int clid, const std::string &key)
 Helper: format exception error string. More...
 
std::string excBadVarName_format (const std::string &name)
 Helper: format exception error string. More...
 
std::string excJaggedVecOverlappingCopy_format ()
 Helper: format exception error string. More...
 
std::string excOutOfRange_format (const char *what, size_t i, size_t size)
 Helper: format exception error string. More...
 
void throwOutOfRange (const char *what, size_t i, size_t size)
 Throw a SG::ExcOutOfRange exception. More...
 
void copyAuxStoreThinned NO_SANITIZE_UNDEFINED (const SG::IConstAuxStore &orig, SG::IAuxStore &copy, const SG::ThinningInfo *info)
 Helper to copy an aux store while applying thinning. More...
 
SG::auxid_t getDynamicAuxID (const std::type_info &ti, const std::string &name, const std::string &elementTypeName, const std::string &branch_type_name, bool standalone, SG::auxid_t linked_auxid)
 Find the auxid for a dynamic branch. More...
 
TClass * getClassIfDictionaryExists (const std::string &cname)
 Look up a TClass given a name. More...
 
const SG::ThinningCachegetThinningCache (const EventContext &ctx)
 Retrieve the current thinning cache from the event context. More...
 
const SG::ThinningCachegetThinningCache ()
 Retrieve the current thinning cache from the current event context. More...
 
const SG::ThinningInfogetThinningInfo (const EventContext &ctx, const std::string &key)
 Retrieve the current thinning information for key. More...
 
const SG::ThinningInfogetThinningInfo (const std::string &key)
 Retrieve the current thinning information for key. More...
 
const SG::ThinningDecisionBasegetThinningDecision (const EventContext &ctx, const std::string &key)
 Retrieve the current thinning decision for key. More...
 
const SG::ThinningDecisionBasegetThinningDecision (const std::string &key)
 Retrieve the current thinning decision for key. More...
 
const SG::ThinningDecisionBasegetThinningDecision (const EventContext &ctx, const sgkey_t sgkey)
 Retrieve the current thinning decision for sgkey. More...
 
const SG::ThinningDecisionBasegetThinningDecision (const sgkey_t sgkey)
 Retrieve the current thinning decision for sgkey. More...
 
size_t getNSlots ()
 Return the number of event slots. More...
 
void setNSlotsHiveMgrName ATLAS_NOT_THREAD_SAFE (const std::string &s)
 Allow setting the name of the whiteboard service. More...
 
template<typename T >
DataObject * asStorable (T *pObject)
 
template<typename T >
bool fromStorable (DataObject *pDObj, T *&pTrans, bool quiet=false, IRegisterTransient *irt=0, bool isConst=true)
 
template<typename T >
T * Storable_cast (DataObject *pDObj, bool quiet=true, IRegisterTransient *irt=0, bool isConst=true)
 
void * fromStorable (DataObject *pDObj, CLID clid, IRegisterTransient *irt=0, bool isConst=true)
 Try to get the pointer back from a DataObject, converted to be of type clid. More...
 
void * Storable_cast (DataObject *pDObj, CLID clid, IRegisterTransient *irt=0, bool isConst=true)
 Try to get the pointer back from a DataObject, converted to be of type clid. More...
 
template<typename T >
DataObject * asStorable (std::unique_ptr< T > pObject)
 
template<typename T >
DataObject * asStorable (SG::DataObjectSharedPtr< T > pObject)
 
template<class T >
constexpr CLID safe_clid ()
 Return the class ID of T, or CLID_NULL if it doesn't have one. More...
 
void dumpBaseInfo ()
 
size_t getNSlots_once ()
 Return the number of event slots. More...
 
void throwExcInvalidLink (CLID clid, const std::string &key, SG::sgkey_t sgkey)
 Throw a SG::ExcInvalidLink exception. More...
 
void throwExcBadForwardLink (size_t index, size_t size, const std::string &name)
 Throw a SG::ExcBadForwardLink exception. More...
 
void throwExcElementNotFound (const char *where)
 Throw a SG::ExcElementNotFound exception. More...
 
void throwExcInvalidIndex (const char *where)
 Throw a SG::ExcInvalidIndex exception. More...
 
void throwExcIndexNotFound (const char *where)
 Throw a SG::ExcIndexNotFound exception. More...
 
void throwExcIncomparableEL ()
 Throw a SG::IncomparableEL exception. More...
 
void throwExcBadToTransient ()
 Throw a SG::ExcBadToTransient exception. More...
 
void throwExcBadThinning (CLID clid, const std::string &key, SG::sgkey_t sgkey)
 Throw a SG::ExcBadThinning exception. More...
 
template<typename CONT , typename ELT >
bool findInContainer (const CONT &data, const ELT &element, typename CONT::size_type &index)
 Find the index of an object within a container. More...
 
void DataProxyHolder::setInputRenameMap ATLAS_NOT_THREAD_SAFE (const InputRenameRCU_t *map)
 Set map used for performing input renaming in toTransient. More...
 
void AthLinks_error ()
 For setting debugger breakpoints. More...
 
std::string excPointerNotInSG_format (const void *pointer)
 Helper: format exception error string. More...
 
std::string excCLIDMismatch_format (CLID obj_clid, CLID link_clid)
 Helper: format exception error string. More...
 
std::string excInvalidLink_format (CLID clid, const std::string &key, SG::sgkey_t sgkey)
 Helper: format exception error string. More...
 
std::string excBadForwardLink_format (size_t index, size_t size, const std::string &name)
 Helper: format exception error string. More...
 
std::string excConstStorable_format (CLID clid, const std::string &key, SG::sgkey_t sgkey)
 Helper: format exception error string. More...
 
std::string excBadThinning_format (CLID clid, const std::string &key, SG::sgkey_t sgkey)
 Helper: format exception error string. More...
 
std::ostream & operator<< (std::ostream &out, const VarHandleBase &o)
 Output stream. More...
 
bool operator== (const VarHandleBase &l, const VarHandleBase &r)
 Equality comparison. More...
 
bool operator!= (const VarHandleBase &l, const VarHandleBase &r)
 Inequality comparison. More...
 
constexpr bool sgkeyEqual (const sgkey_t a, const sgkey_t b)
 Compare two sgkeys for equality. More...
 
constexpr bool sgkeyLess (const sgkey_t a, const sgkey_t b)
 Compare two sgkeys for ordering. More...
 
constexpr uint32_t sgkeyShort (const sgkey_t k)
 Convert a sgkey to the 32-bit form used for older data. More...
 
template<typename DATA >
DATA * DataProxy_cast (DataProxy *proxy)
 cast the proxy into the concrete data object it proxies More...
 
template<typename DATA >
DATA DataProxy_cast (const DataProxy &proxy)
 const ref version of the cast. More...
 
void * DataProxy_cast (DataProxy *proxy, CLID clid)
 Try to get the pointer back from a DataProxy, converted to be of type clid. More...
 
void throwExcBadDataProxyCast (CLID id, const std::type_info &tid)
 Throw an ExcBadDataProxyCast exception. More...
 
std::ostream & operator<< (std::ostream &ost, const SG::VersionedKey &k)
 
IOpaqueAddress *TransientAddress::address ATLAS_NOT_CONST_THREAD_SAFE () const
 Retrieve IOpaqueAddress. More...
 
bool isTransientKey (const std::string &key)
 Test to see if a key is transoent. More...
 
std::string transientKey (const std::string &key)
 Make a key transient. More...
 
std::string excBadDataProxyCast_format (CLID id, const std::type_info &tid)
 Helper: Format exception string. More...
 
std::string excProxyCollision_format (CLID id, const std::string &key, CLID primary_id, const std::string &primary_key)
 Helper: Format exception string. More...
 
std::string excSgkeyCollision_format (const std::string &new_key, CLID new_clid, const std::string &old_key, CLID old_clid, sgkey_t sgkey)
 Helper: Format exception string. More...
 
std::string contKeyFromKey (const std::string &key)
 Extract the container part of key. More...
 
std::string decorKeyFromKey (const std::string &key)
 Extract the decoration part of key. More...
 
std::string makeContDecorKey (const std::string &cont, const std::string &decor)
 Make a StoreGate key from container and decoration name. More...
 
std::string makeContDecorKey (const VarHandleKey &contKey, const std::string &key)
 Make a StoreGate key from container and decoration. More...
 
void removeContFromDecorKey (const VarHandleKey &contKey, std::string &key)
 Remove container name from decoration key. More...
 
void throwExcNullHandleKey ()
 Throw a SG::ExcNullHandleKey exception. More...
 
std::string excHandleInitError_format (CLID clid, const std::string &sgkey, const std::string &storename)
 Helper: format exception error string. More...
 
std::string excUninitKey_format (CLID clid, const std::string &sgkey, const std::string &storename, const std::string &holdername, const std::string &htype)
 Helper: format exception error string. More...
 
std::string excConstObject_format (CLID clid, const std::string &sgkey, const std::string &storename)
 Helper: format exception error string. More...
 
std::string excNullWriteHandle_format (CLID clid, const std::string &sgkey, const std::string &storename)
 Helper: format exception error string. More...
 
void throwExcNullWriteHandle (CLID clid, const std::string &sgkey, const std::string &storename)
 Throw a SG::ExcNullWriteHandle exception. More...
 
std::string excNullReadHandle_format (CLID clid, const std::string &sgkey, const std::string &storename)
 Helper: format exception error string. More...
 
void throwExcNullReadHandle (CLID clid, const std::string &sgkey, const std::string &storename)
 Throw a SG::ExcNullReadHandle exception. More...
 
std::string excNullUpdateHandle_format (CLID clid, const std::string &sgkey, const std::string &storename)
 Helper: format exception error string. More...
 
void throwExcNullUpdateHandle (CLID clid, const std::string &sgkey, const std::string &storename)
 Throw a SG::ExcNullUpdateHandle exception. More...
 
std::string excNonConstHandleKey_format (CLID clid, const std::string &sgkey, const std::string &storename)
 Helper: format exception error string. More...
 
void throwExcNonConstHandleKey (CLID clid, const std::string &sgkey, const std::string &storename)
 Throw a SG::ExcNonConstHandleKey exception. More...
 
std::string excBadContext_format (const EventContext &ctx, const std::string &key)
 Helper: format exception error string. More...
 
std::string excNoCondCont_format (const std::string &key, const std::string &why)
 Helper: format exception error string. More...
 
std::string excBadDecorElement_format (Gaudi::DataHandle::Mode mode, CLID clid, const std::string &decorKey)
 Helper: format exception error string. More...
 
void throwExcBadDecorElement (Gaudi::DataHandle::Mode mode, CLID clid, const std::string &decorKey)
 Throw a SG::ExcBadDecorElement exception. More...
 
void ReadCondHandleNotFound (const CondContBase &cc, const EventIDBase &eid, const std::string &key)
 Report a conditions container lookup failure. More...
 
template<class T >
SG::ReadCondHandle< T > makeHandle (const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
 
template<class D , class T >
ReadDecorHandle< T, D > makeHandle (const ReadDecorHandleKey< T > &key)
 Return a ReadDecorHandle referencing key. More...
 
template<class D , class T >
ReadDecorHandle< T, D > makeHandle (const ReadDecorHandleKey< T > &key, const EventContext &ctx)
 Return a ReadDecorHandle referencing key for an explicit context. More...
 
template<class T >
void makeHandle (const ReadDecorHandleKey< T > &key)
 These two signatures are to catch cases where the explicit template argument is omitted from the makeHandle call and give an error tailored to that. More...
 
template<class T >
void makeHandle (const ReadDecorHandleKey< T > &key, const EventContext &ctx)
 
template<class T >
ReadHandle< T > makeHandle (const ReadHandleKey< T > &key)
 Return a ReadHandle referencing key. More...
 
template<class T >
ReadHandle< T > makeHandle (const ReadHandleKey< T > &key, const EventContext &ctx)
 Return a ReadHandle referencing key for an explicit context. More...
 
template<class T >
const T * get (const ReadHandleKey< T > &key)
 Convenience function to retrieve an object given a ReadHandleKey. More...
 
template<class T >
const T * get (const ReadHandleKey< T > &key, const EventContext &ctx)
 Convenience function to retrieve an object given a ReadHandleKey. More...
 
template<class T >
ThinningHandle< T > makeHandle (const ThinningHandleKey< T > &key)
 Return a ThinningHandle referencing key. More...
 
template<class T >
ThinningHandle< T > makeHandle (const ThinningHandleKey< T > &key, const EventContext &ctx)
 Return a ThinningHandle referencing key for an explicit context. More...
 
int simpleStringHash (const std::string &str, int maxInt=0xFFFF)
 simple hash function derived from Sedgewick Algorithms in C++ 3rd ed More...
 
template<class T >
UpdateHandle< T > makeHandle (const UpdateHandleKey< T > &key)
 Return an UpdateHandle referencing key. More...
 
template<class T >
UpdateHandle< T > makeHandle (const UpdateHandleKey< T > &key, const EventContext &ctx)
 Return an UpdateHandle referencing key for an explicit context. More...
 
template<class T >
SG::WriteCondHandle< T > makeHandle (const SG::WriteCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
 
template<class D , class T >
WriteDecorHandle< T, D > makeHandle (const WriteDecorHandleKey< T > &key)
 Return a WriteDecorHandle referencing key. More...
 
template<class D , class T >
WriteDecorHandle< T, D > makeHandle (const WriteDecorHandleKey< T > &key, const EventContext &ctx)
 Return a WriteDecorHandle referencing key for an explicit context. More...
 
template<class T >
void makeHandle (const WriteDecorHandleKey< T > &key)
 These two signatures are to catch cases where the explicit template argument is omitted from the makeHandle call and give an error tailored to that. More...
 
template<class T >
void makeHandle (const WriteDecorHandleKey< T > &key, const EventContext &ctx)
 
template<class T >
WriteHandle< T > makeHandle (const WriteHandleKey< T > &key)
 Return a WriteHandle referencing key. More...
 
template<class T >
WriteHandle< T > makeHandle (const WriteHandleKey< T > &key, const EventContext &ctx)
 Return a WriteHandle referencing key for an explicit context. More...
 
template<>
void ArenaAllocatorBase::destroy_fcn< HepMC::GenParticle > (ArenaAllocatorBase::pointer p)
 
template<>
void ArenaAllocatorBase::destroy_fcn< HepMC::GenVertex > (ArenaAllocatorBase::pointer p)
 
template<>
void ArenaAllocatorBase::destroy_fcn< HepMC::GenEvent > (ArenaAllocatorBase::pointer p)
 

Variables

constexpr const char * auxAllocatorNamePrefix = "std::allocator<"
 
template<class T >
constexpr bool is_xAODInterfaceObject_v
 Test for an xAOD interface class supporting thinning. More...
 
template<class T >
constexpr bool is_xAODStoreObject_v
 Test for an xAOD auxiliary store class supporting thinning. More...
 
InstallViewVectorBaseStreamer viewVectorBaseStreamerInstance
 
const std::string DEFAULTKEY = ""
 
getDataSourcePointerFunc_tgetDataSourcePointerFunc
 

Detailed Description

Forward declaration.

Selection rules: declare transient members.

Namespace used by StoreGate for some of its internal structures/classes

Typedef Documentation

◆ AuxAllocator_t

template<class T >
using SG::AuxAllocator_t = typedef std::allocator<T>

The default allocator type to use for auxiliary variables.

Definition at line 28 of file AuxDataTraits.h.

◆ auxid_t

typedef size_t SG::auxid_t

Identifier for a particular aux data item.

Definition at line 27 of file AuxTypes.h.

◆ AuxTypeVector

template<class T , class ALLOC = AuxAllocator_t<T>, class CONT = typename AuxDataTraits<T, ALLOC>::vector_type>
using SG::AuxTypeVector = typedef AuxTypeVectorT<AuxTypeVectorHolder<T, CONT> >

Default type derives directly from AuxTypeVectorHolder.

Definition at line 381 of file AuxTypeVector.h.

◆ CompressionInfo

using SG::CompressionInfo = typedef std::unordered_map<std::string, SG::ThinningInfo::compression_map_t>

Map of compressed variables and their compression levels.

Definition at line 37 of file CompressionInfo.h.

◆ ConstProxyIterator

typedef ProxyMap::const_iterator SG::ConstProxyIterator

Definition at line 28 of file ProxyMap.h.

◆ DecorHandleKeyArray

template<class T_Handle , class T_HandleKey , Gaudi::DataHandle::Mode MODE>
using SG::DecorHandleKeyArray = typedef HandleKeyArray< T_Handle, T_HandleKey, MODE>

Definition at line 25 of file StoreGate/StoreGate/DecorHandleKeyArray.h.

◆ getDataSourcePointerFunc_t

typedef IProxyDict** SG::getDataSourcePointerFunc_t(const std::string &)

Definition at line 33 of file DataProxy.cxx.

◆ JaggedVecVector

template<class T , class ALLOC = AuxAllocator_t<JaggedVecElt<T> >>
using SG::JaggedVecVector = typedef JaggedVecVectorT<JaggedVecVectorHolder<T, ALLOC> >

Definition at line 224 of file JaggedVecVector.h.

◆ maybe_thinning_error

Backwards compatibility.

Definition at line 161 of file Control/AthLinks/AthLinks/exceptions.h.

◆ PackedLinkVector

template<class CONT , class ALLOC = AuxAllocator_t<PackedLink<CONT> >>
using SG::PackedLinkVector = typedef PackedLinkVectorT<PackedLinkVectorHolder<CONT, ALLOC> >

Definition at line 271 of file PackedLinkVector.h.

◆ PackedLinkVVector

template<class CONT , class VALLOC = AuxAllocator_t<PackedLink<CONT> >, class VELT = typename AuxDataTraits<PackedLink<CONT>, VALLOC >::vector_type, class ALLOC = AuxAllocator_t<VELT>>
using SG::PackedLinkVVector = typedef PackedLinkVectorT<PackedLinkVVectorHolder<CONT, VALLOC, VELT, ALLOC> >

Definition at line 277 of file PackedLinkVector.h.

◆ ProxyIterator

typedef ProxyMap::iterator SG::ProxyIterator

Definition at line 27 of file ProxyMap.h.

◆ ProxyMap

typedef std::map<std::string, DataProxy*> SG::ProxyMap

Definition at line 26 of file ProxyMap.h.

◆ ReadCondHandleKeyArray

template<class T >
using SG::ReadCondHandleKeyArray = typedef HandleKeyArray<ReadCondHandle<T>, CondHandleDefault::Key<ReadCondHandleKey<T> >, Gaudi::DataHandle::Reader >

Definition at line 30 of file CondHandleKeyArray.h.

◆ ReadDecorHandleKeyArray

template<class T , class S = float>
using SG::ReadDecorHandleKeyArray = typedef DecorHandleKeyArray<ReadDecorHandle<T, S>, ReadDecorHandleKey<T>, Gaudi::DataHandle::Reader >

◆ ReadHandleKeyArray

template<class T >
using SG::ReadHandleKeyArray = typedef HandleKeyArray<ReadHandle<T>, ReadHandleKey<T>, Gaudi::DataHandle::Reader >

Definition at line 32 of file StoreGate/StoreGate/ReadHandleKeyArray.h.

◆ RVar

template<class T >
using SG::RVar = typedef ReadHandle<T>

Definition at line 310 of file StoreGate/StoreGate/ReadHandle.h.

◆ RWVar

template<class T >
using SG::RWVar = typedef UpdateHandle<T>

Definition at line 290 of file UpdateHandle.h.

◆ SelectionVetoes

using SG::SelectionVetoes = typedef std::unordered_map<std::string, SG::auxid_set_t>

Map of vetoed variables.

Map from object SG names to a mask of vetoed variables for that object.

Definition at line 50 of file SelectionVetoes.h.

◆ sgkey_t

typedef uint32_t SG::sgkey_t

Type used for hashed StoreGate key+CLID pairs.

Definition at line 32 of file CxxUtils/CxxUtils/sgkey_t.h.

◆ SGKeyMap

template<class T >
using SG::SGKeyMap = typedef std::unordered_map<sgkey_t, T>

A map using sgkey_t as a key.

Definition at line 93 of file CxxUtils/CxxUtils/sgkey_t.h.

◆ SGKeySet

using SG::SGKeySet = typedef std::unordered_set<sgkey_t>

A set of sgkey_t values.

Definition at line 97 of file CxxUtils/CxxUtils/sgkey_t.h.

◆ SourceID

typedef std::string SG::SourceID

Definition at line 23 of file AthenaKernel/AthenaKernel/SourceID.h.

◆ ThinningHandleKeyArray

template<class T >
using SG::ThinningHandleKeyArray = typedef HandleKeyArray<ReadHandle<T>, ThinningHandleKey<T>, Gaudi::DataHandle::Reader >

Definition at line 28 of file ThinningHandleKeyArray.h.

◆ WPtr

template<class T >
using SG::WPtr = typedef T*

Definition at line 17 of file SGWPtr.h.

◆ WriteCondHandleKeyArray

template<class T >
using SG::WriteCondHandleKeyArray = typedef HandleKeyArray<WriteCondHandle<T>,CondHandleDefault::Key<WriteCondHandleKey<T> >, Gaudi::DataHandle::Writer >

Definition at line 33 of file CondHandleKeyArray.h.

◆ WriteDecorHandleKeyArray

template<class T , class S = float>
using SG::WriteDecorHandleKeyArray = typedef DecorHandleKeyArray<WriteDecorHandle<T, S>,WriteDecorHandleKey<T>, Gaudi::DataHandle::Writer >

◆ WriteHandleKeyArray

template<class T >
using SG::WriteHandleKeyArray = typedef HandleKeyArray<WriteHandle<T>,WriteHandleKey<T>, Gaudi::DataHandle::Writer >

Definition at line 32 of file WriteHandleKeyArray.h.

◆ WVar

template<class T >
using SG::WVar = typedef WriteHandle<T>

Definition at line 702 of file StoreGate/StoreGate/WriteHandle.h.

Enumeration Type Documentation

◆ AllowEmptyEnum

Enumerator
AllowEmpty 

Definition at line 29 of file StoreGate/StoreGate/VarHandleKey.h.

29  {
30  AllowEmpty = 1
31 };

◆ AuxVarFlags

Additional flags to qualify an auxiliary variable.

Enumerator
None 

No special flags set.

Atomic 

Mark that this variable should only be accessed atomically.

If this is set, then the variable can be accessed only via AtomicDecorator. Be aware that this is not completely safe; it is still possible to have non-atomic accesses to the variable via either the implicit operations provided by this class or by explicit access to the value vector. Therefore, this is not recommended for general use. Contact core software before using this for new code.

Linked 

Mark that this variable is linked to another one.

Examples are the payload for a jagged vector and the array of DataLinks for packed ElementLinks. Linked variables are ‘global’ in that their entries do not correspond directly with entries of the container (and hence their size may be different).

SkipNameCheck 
ATH_BITMASK 

Enable bitwise functions on this enum; see bitmask.h.

Definition at line 58 of file AuxTypes.h.

58  {
60  None = 0x00,
61 
70  Atomic = 0x01,
71 
77  Linked = 0x02,
78 
79  // These flags control the behavior of findAuxID() but are not
80  // stored with the variable.
81  SkipNameCheck = 0x80,
82 
85 };

◆ IndexTrackingPolicy

Enumerator
DEFAULT_TRACK_INDICES 

Default value.

Set index tracking based on the ownership policy. If this container owns its elements, then track indices; otherwise do not.

ALWAYS_TRACK_INDICES 

Always track indices, regardless of the setting of the ownership policy.

NEVER_TRACK_INDICES 

Never track indices, regardless of the setting of the ownership policy.

Definition at line 37 of file IndexTrackingPolicy.h.

37  {
41 
44 
47 };

◆ OwnershipPolicy

describes the possible element ownership policies (see e.g. DataVector)

Author
Paolo Calafiura pcala.nosp@m.fiur.nosp@m.a@lbl.nosp@m..gov - ATLAS Collaboration
Id
OwnershipPolicy.h 581165 2014-02-03 10:42:54Z krasznaa


Enumerator
OWN_ELEMENTS 

this data object owns its elements

VIEW_ELEMENTS 

this data object is a view, it does not own its elmts

Definition at line 16 of file OwnershipPolicy.h.

16  {
17  OWN_ELEMENTS,
19  };

Function Documentation

◆ ArenaAllocatorBase::destroy_fcn< HepMC::GenEvent >()

template<>
void SG::ArenaAllocatorBase::destroy_fcn< HepMC::GenEvent > ( ArenaAllocatorBase::pointer  p)
inline

Definition at line 66 of file HepMcDataPool.h.

68  {
69  HepMC::GenEvent* evt = reinterpret_cast<HepMC::GenEvent*>(p);
70  evt->m_particle_barcodes.clear();
71  evt->m_vertex_barcodes.clear();
72  delete evt->m_pdf_info; evt->m_pdf_info = 0;
73  evt->~GenEvent();
74  }

◆ ArenaAllocatorBase::destroy_fcn< HepMC::GenParticle >()

Definition at line 45 of file HepMcDataPool.h.

47  {
48  HepMC::GenParticle* part = reinterpret_cast<HepMC::GenParticle*>(p);
49  part->m_production_vertex = 0;
50  part->m_end_vertex = 0;
51  part->~GenParticle();
52  }

◆ ArenaAllocatorBase::destroy_fcn< HepMC::GenVertex >()

template<>
void SG::ArenaAllocatorBase::destroy_fcn< HepMC::GenVertex > ( ArenaAllocatorBase::pointer  p)
inline

Definition at line 55 of file HepMcDataPool.h.

57  {
58  HepMC::GenVertex* vtx = reinterpret_cast<HepMC::GenVertex*>(p);
59  vtx->m_event = 0;
60  vtx->m_particles_in.clear();
61  vtx->m_particles_out.clear();
62  vtx->~GenVertex();
63  }

◆ ArenaPoolAllocator_iterator_increment() [1/2]

ArenaPoolAllocator::const_pointer SG::ArenaPoolAllocator_iterator_increment ( ArenaPoolAllocator::const_pointer  base,
const ArenaBlock *&  block 
)
inline

Helper: common code for advancing an iterator.

Parameters
baseElement pointer.
blockBlock pointer.

Definition at line 52 of file ArenaPoolAllocator.cxx.

54 {
55  // If we haven't yet reached the start of this block, move the iterator
56  // back one.
57  if (base > block->index(0,0)) {
58  return base - block->eltSize();
59  }
60 
61  // Move to the previous block.
62  block = block->link();
63  if (block) {
64  return block->index (block->size()-1, block->eltSize());
65  }
66  return nullptr;
67 }

◆ ArenaPoolAllocator_iterator_increment() [2/2]

ArenaPoolAllocator::pointer SG::ArenaPoolAllocator_iterator_increment ( ArenaPoolAllocator::pointer  base,
ArenaBlock *&  block 
)
inline

Helper: common code for advancing an iterator.

Parameters
baseElement pointer.
blockBlock pointer.

Definition at line 27 of file ArenaPoolAllocator.cxx.

29 {
30  // If we haven't yet reached the start of this block, move the iterator
31  // back one.
32  if (base > block->index(0,0)) {
33  return base - block->eltSize();
34  }
35 
36  // Move to the previous block.
37  block = block->link();
38  if (block) {
39  return block->index (block->size()-1, block->eltSize());
40  }
41  return nullptr;
42 }

◆ asStorable() [1/3]

template<typename T >
DataObject* SG::asStorable ( SG::DataObjectSharedPtr< T >  pObject)

Definition at line 171 of file StorableConversions.h.

171  {
172  typedef typename DataBucketTrait<T>::type bucket_t;
173  return new bucket_t (std::move(pObject));
174  }

◆ asStorable() [2/3]

template<typename T >
DataObject* SG::asStorable ( std::unique_ptr< T >  pObject)

Definition at line 164 of file StorableConversions.h.

164  {
165  typedef typename std::remove_const<T>::type T_nc;
166  typedef typename DataBucketTrait<T_nc>::type bucket_t;
167  return new bucket_t (std::move(pObject));
168  }

◆ asStorable() [3/3]

template<typename T >
DataObject * SG::asStorable ( T *  pObject)

Definition at line 158 of file StorableConversions.h.

158  {
159  typedef typename DataBucketTrait<T>::type bucket_t;
160  return new bucket_t (pObject);
161  }

◆ AthLinks_error()

void SG::AthLinks_error ( )

For setting debugger breakpoints.

Definition at line 21 of file Control/AthLinks/src/exceptions.cxx.

21 {}

◆ ATLAS_NOT_CONST_THREAD_SAFE()

IOpaqueAddress* TransientAddress::address SG::ATLAS_NOT_CONST_THREAD_SAFE ( ) const
inline

Retrieve IOpaqueAddress.

Definition at line 194 of file TransientAddress.h.

195  {
196  return m_address;
197  }

◆ ATLAS_NOT_THREAD_SAFE() [1/2]

void DataProxyHolder::setInputRenameMap SG::ATLAS_NOT_THREAD_SAFE ( const InputRenameRCU_t *  map)

Set map used for performing input renaming in toTransient.

Parameters
mapThe new map, or nullptr for no renmaing.

Definition at line 614 of file DataProxyHolder.cxx.

615 {
616  s_inputRenameMap = map;
617 }

◆ ATLAS_NOT_THREAD_SAFE() [2/2]

void setNSlotsHiveMgrName SG::ATLAS_NOT_THREAD_SAFE ( const std::string &  s)

Allow setting the name of the whiteboard service.

For testing.

Definition at line 35 of file SlotSpecificObj.cxx.

36 {
37  getNSlots_hiveMgrName = s;
38 }

◆ contKeyFromKey()

std::string SG::contKeyFromKey ( const std::string &  key)

Extract the container part of key.

Parameters
keyThe decoration handle key.

Given a key of the form CCC.DDD, returns the container part, CCC.

Definition at line 26 of file DecorKeyHelpers.cxx.

27 {
28  std::string::size_type ipos = key.find ('.');
29  if (ipos == std::string::npos)
30  return key;
31  return key.substr (0, ipos);
32 }

◆ copyAuxStoreThinned()

void SG::copyAuxStoreThinned ( const SG::IConstAuxStore orig,
SG::IAuxStore copy,
const SG::ThinningInfo info 
)

Helper to copy an aux store while applying thinning.

Parameters
origSource aux store from which to copy.
copyDestination aux store to which to copy.
infoThinning information for this object (or nullptr).

orig and copy are both auxiliary store objects. The data from orig will be copied to copy, with individual elements / variables removed according info.

◆ copyThinned()

template<class CONTAINER >
std::unique_ptr<CONTAINER> SG::copyThinned ( CONTAINER &  orig,
const SG::ThinningInfo info 
)

Helper to copy an object while applying thinning.

Parameters
origThe object to copy.
infoThinning information for this object (or nullptr).

Returns a new copy of orig with elements removed according to the thinning defined in svc. Ownership of the new object is passed back to the caller.

The code here handles IAuxStore objects. (For a DataVector object, use copyThinnedConst.) Support for additional object types may be added by adding overloads for copyThinned1.

◆ copyThinned1() [1/4]

template<class CONTAINER >
std::unique_ptr<const CONTAINER> SG::copyThinned1 ( const CONTAINER &  orig,
const DataVector< typename CONTAINER::base_value_type > *  dummy,
const SG::ThinningInfo info 
)

Helper to copy an object while applying thinning.

Parameters
origThe object to copy.
dummyDummy argument for overload resolution.
infoThinning information for this object (or nullptr).

This overload handles DataVector types. It returns a view container copy of orig, from which any thinned elements are removed.

◆ copyThinned1() [2/4]

template<class CONTAINER >
std::unique_ptr<CONTAINER> SG::copyThinned1 ( const CONTAINER &  orig,
const SG::IAuxStore dummy,
const SG::ThinningInfo info 
)

Helper to copy an object while applying thinning.

Parameters
origThe object to copy.
dummyDummy argument for overload resolution.
infoThinning information for this object (or nullptr).

This overload handles IAuxStore types. It returns a new copy of the store, with any thinned elements removed.

◆ copyThinned1() [3/4]

template<class CONTAINER >
std::unique_ptr<CONTAINER> SG::copyThinned1 ( const CONTAINER &  orig,
const void *  dummy,
const SG::ThinningInfo info 
)

Helper to copy an object while applying thinning.

Parameters
origThe object to copy.
dummyDummy argument for overload resolution.
infoThinning information for this object (or nullptr).

This is the generic version of copyThinned, which matches types for which there is not a more specific overload. It simply makes a copy of orig using the copy constructor.

◆ copyThinned1() [4/4]

template<class CONTAINER >
std::unique_ptr<CONTAINER> SG::copyThinned1 ( CONTAINER &  orig,
DataVector< typename CONTAINER::base_value_type > *  ,
const SG::ThinningInfo info 
)

Helper to copy an object while applying thinning.

Parameters
origThe object to copy.
dummyDummy argument for overload resolution.
infoThinning information for this object (or nullptr).

This overload handles DataVector types. It returns a view container copy of orig, from which any thinned elements are removed.

◆ copyThinnedConst()

template<class CONTAINER >
std::unique_ptr<const CONTAINER> SG::copyThinnedConst ( const CONTAINER &  orig,
const SG::ThinningInfo info 
)

Helper to copy an object while applying thinning, const version.

Parameters
origThe object to copy.
infoThinning information for this object (or nullptr).

Returns a new copy of orig with elements removed according to the thinning defined in svc. Ownership of the new object is passed back to the caller.

The code here handles DataVector and IAuxStore objects. Support for additional object types may be added by adding overloads for copyThinned1.

◆ DataProxy_cast() [1/3]

template<typename DATA >
DATA SG::DataProxy_cast ( const DataProxy proxy)

const ref version of the cast.

Exceptions
SG::ExcBadDataProxyCast.

◆ DataProxy_cast() [2/3]

template<typename DATA >
DATA* SG::DataProxy_cast ( DataProxy proxy)

cast the proxy into the concrete data object it proxies

◆ DataProxy_cast() [3/3]

void * SG::DataProxy_cast ( SG::DataProxy proxy,
CLID  clid 
)

Try to get the pointer back from a DataProxy, converted to be of type clid.

Parameters
proxyThe DataProxy.
clidThe ID of the class to which to convert.

Only works if the held object is a DataBucket. Returns 0 on failure,

Definition at line 600 of file DataProxy.cxx.

601 {
602  if (0 == proxy || !proxy->isValid())
603  return 0;
604  DataObject* pObject = proxy->accessData();
605  if (0 == pObject)
606  return 0;
607  return SG::Storable_cast (pObject, clid, proxy, proxy->isConst());
608 }

◆ dataVectorAsELV()

template<class DV >
std::vector<ElementLink<DV> > SG::dataVectorAsELV ( const DV &  v,
IProxyDict store = 0 
)

Helper to make a vector<EL> from a DataVector.

Given a DataVector, return a vector of ElementLink objects that reference the DataVector's elements. We can always do this if the DataVector owns its elements. However, if it is a view container, then the elements must derive from SG::AuxElement and must be part of some other container.

Definition at line 92 of file dataVectorAsELV.h.

93 {
94  std::vector<ElementLink<DV> > ret;
95  size_t sz = v.size();
96  ret.reserve (sz);
97 
99 
100  if (v.ownPolicy() == SG::OWN_ELEMENTS) {
101  // Could hoist the sgkey lookup.
102  // But this will probably not be a common case, so don't do that
103  // unless it's needed.
104  for (size_t i = 0; i < sz; i++)
105  ret.emplace_back (v, i, store);
106  }
107  else {
109  }
110 
111  return ret;
112 }

◆ dataVectorViewAsELV() [1/2]

template<class DV >
void SG::dataVectorViewAsELV ( const std::false_type &  ,
const DV &  ,
std::vector< ElementLink< DV > > &  ,
IProxyDict  
)

Helper for dataVectorViewAsELV.

Don't call this directly.

Handle the case of a view vector with elements not deriving from AuxElement (just throw an exception).

Definition at line 71 of file dataVectorAsELV.h.

75 {
76  throw SG::ExcDVToELV ("Element in view container does not derive from AuxElement.");
77 }

◆ dataVectorViewAsELV() [2/2]

template<class DV >
void SG::dataVectorViewAsELV ( const std::true_type &  ,
const DV &  v,
std::vector< ElementLink< DV > > &  ret,
IProxyDict store 
)

Helper for dataVectorViewAsELV.

Don't call this directly.

Handle the case of a view vector with elements deriving from AuxElement.

Definition at line 43 of file dataVectorAsELV.h.

47 {
48  const DV* last_d = nullptr;
49  const SG::AuxVectorData* last_b = nullptr;
50  for (const typename DV::base_value_type* elt : v) {
51  const SG::AuxVectorData* cont_b = elt->container();
52  if (cont_b != last_b) {
53  last_b = cont_b;
54  last_d = dynamic_cast<const DV*>(cont_b);
55  }
56  if (!last_d)
57  throw SG::ExcDVToELV ("Element not in a container");
58  ret.emplace_back (*last_d, elt->index(), store);
59  }
60 }

◆ decorKeyFromKey()

std::string SG::decorKeyFromKey ( const std::string &  key)

Extract the decoration part of key.

Parameters
keyThe decoration handle key.

Given a key of the form CCC.DDD, returns the decoration part, DDD.

Definition at line 41 of file DecorKeyHelpers.cxx.

42 {
43  std::string::size_type ipos = key.find ('.');
44  if (ipos == std::string::npos)
45  return "";
46  return key.substr (ipos+1, std::string::npos);
47 }

◆ dumpBaseInfo()

void SG::dumpBaseInfo ( )

Definition at line 735 of file BaseInfo.cxx.

736 {
738  std::cout << "map:\n";
739  if (BaseInfoBaseImpl::s_bi_by_ti) {
740  std::vector<const std::type_info*> vv;
741  for (const auto& x : *BaseInfoBaseImpl::s_bi_by_ti)
742  vv.push_back (x.first);
743  std::sort (vv.begin(), vv.end());
744  for (const std::type_info* ti : vv)
745  {
746  const BaseInfoBase* bib = (*BaseInfoBaseImpl::s_bi_by_ti)[ti];
747  std::cout << ti << " " << bib->clid() << " [" << System::typeinfoName (*ti)
748  << "]\n";
749  }
750  }
751 
752  std::cout << "\ninitlist:\n";
753  if (BaseInfoBaseImpl::s_init_list) {
754  for (const auto& x : *BaseInfoBaseImpl::s_init_list)
755  std::cout << x.first << " " << x.second << " ["
756  << System::typeinfoName (*x.first) << "]\n";
757  }
758 }

◆ excAuxTypeMismatch_format()

std::string SG::excAuxTypeMismatch_format ( SG::auxid_t  auxid,
const std::type_info &  new_type,
const std::type_info &  old_type,
const std::string &  new_alloc_type,
const std::string &  old_alloc_type 
)

Helper: format exception error string.

Definition at line 170 of file Control/AthContainers/Root/exceptions.cxx.

175 {
176  std::ostringstream os;
177  os << "SG::ExcAuxTypeMismatch: "
178  << "Type mismatch for aux variable "
179  << excFormatName (auxid)
180  << "; old type is " << AthContainers_detail::typeinfoName (old_type)
181  << " new type is " << AthContainers_detail::typeinfoName (new_type);
182  if (old_alloc_type != new_alloc_type)
183  {
184  os << ". Old allocator type is " << old_alloc_type
185  << " new allocator type is " << new_alloc_type;
186  }
187  return os.str();
188 }

◆ excBadAuxVar_format()

std::string SG::excBadAuxVar_format ( SG::auxid_t  auxid)

Helper: format exception error string.

Definition at line 90 of file Control/AthContainers/Root/exceptions.cxx.

91 {
92  std::ostringstream os;
93  os << "SG::ExcBadAuxVar: "
94  << "Attempt to retrieve nonexistent aux data item "
95  << excFormatName (auxid)
96  << ".";
97  return os.str();
98 }

◆ excBadContext_format()

std::string SG::excBadContext_format ( const EventContext &  ctx,
const std::string &  key 
)

Helper: format exception error string.

Definition at line 373 of file Control/StoreGate/src/exceptions.cxx.

376 {
377  std::ostringstream os;
378  os << "SG::ExcBadContext: Bad EventContext extension while building ReadCondHandle. "
379  << "The EventContext extension is not "
380  << (ctx.hasExtension() ? "of type Atlas::ExtendedEventContext" : "set")
381  << " for key " << key << ".";
382  return os.str();
383 }

◆ excBadDataProxyCast_format()

std::string SG::excBadDataProxyCast_format ( CLID  id,
const std::type_info &  tid 
)

Helper: Format exception string.

Definition at line 22 of file Control/SGTools/src/exceptions.cxx.

23 {
24  std::ostringstream os;
25  os << "Bad cast of DataProxy with CLID " << id
26  << " to type " << System::typeinfoName (tid);
27  return os.str();
28 }

◆ excBadDecorElement_format()

std::string SG::excBadDecorElement_format ( Gaudi::DataHandle::Mode  mode,
CLID  clid,
const std::string &  decorKey 
)

Helper: format exception error string.

Definition at line 451 of file Control/StoreGate/src/exceptions.cxx.

454 {
455  std::ostringstream os;
456  os << "SG::ExcBadDecorElement: ";
458  os << "Write";
459  else if (mode == Gaudi::DataHandle::Reader)
460  os << "Read";
461  else
462  os << "???";
463  os << "DecorHandle " << decorKey
464  << "[" << clid << "]"
465  << " given an element not in the requested container.";
466  return os.str();
467 }

◆ excBadForwardLink_format()

std::string SG::excBadForwardLink_format ( size_t  index,
size_t  size,
const std::string &  name 
)

Helper: format exception error string.

Definition at line 122 of file Control/AthLinks/src/exceptions.cxx.

123 {
124  std::ostringstream os;
125  os << "SG::ExcBadForwardLink: "
126  << "ForwardIndexingPolicy: internal link state of '" << name << "' is invalid";
127  if (index != static_cast<size_t>(-1)) {
128  os << ": m_index = " << index
129  << " is >= data container size = "
130  << size << std::ends;
131  }
132  return os.str();
133 }

◆ excBadThinning_format()

std::string SG::excBadThinning_format ( CLID  clid,
const std::string &  key,
SG::sgkey_t  sgkey 
)

Helper: format exception error string.

Definition at line 313 of file Control/AthLinks/src/exceptions.cxx.

314 {
315  std::ostringstream os;
316  os << "SG::ExcBadThinning: "
317  << "Bad thinning request "
318  << "[" << clid << "/" << key << "] (" << sgkey << ")";
319  return os.str();
320 }

◆ excBadVarName_format()

std::string SG::excBadVarName_format ( const std::string &  name)

Helper: format exception error string.

Definition at line 646 of file Control/AthContainers/Root/exceptions.cxx.

647 {
648  std::ostringstream os;
649  os << "SG::ExcBadVarName: "
650  << "Bad name for auxiliary variable `" << name << "'. "
651  << "Variable and class names must consist of only digits, letters, "
652  << "and underscores, and cannot start with a digit. "
653  << "Variable names may not be empty, but class names may be.";
654  return os.str();
655 }

◆ excCLIDMismatch_format()

std::string SG::excCLIDMismatch_format ( CLID  obj_clid,
CLID  link_clid 
)

Helper: format exception error string.

Definition at line 53 of file Control/AthLinks/src/exceptions.cxx.

54 {
55  std::ostringstream os;
56  os << "SG::ExcCLIDMismatch: "
57  << "Attempt to set DataLink / ElementLink with CLID " << link_clid
58  << " to object with CLID " << obj_clid;
59  return os.str();
60 }

◆ excConstAuxData_format()

std::string SG::excConstAuxData_format ( const std::string &  op,
SG::auxid_t  auxid 
)

Helper: format exception error string.

Definition at line 115 of file Control/AthContainers/Root/exceptions.cxx.

116 {
117  std::ostringstream os;
118  os << "SG::ExcConstAuxData: "
119  << "Non-const operation `" << op << "' performed on const aux data "
120  << excFormatName (auxid)
121  << ".";
122  return os.str();
123 }

◆ excConstObject_format()

std::string SG::excConstObject_format ( CLID  clid,
const std::string &  sgkey,
const std::string &  storename 
)

Helper: format exception error string.

Definition at line 138 of file Control/StoreGate/src/exceptions.cxx.

142 {
143  std::ostringstream os;
144  os << "SG::ExcConstObject: "
145  << "Tried to retrieve non-const pointer to const object via VarHandleKey: "
146  << storename << "+" << sgkey << "[" << clid << "]";
147  return os.str();
148 }

◆ excConstStorable_format()

std::string SG::excConstStorable_format ( CLID  clid,
const std::string &  key,
SG::sgkey_t  sgkey 
)

Helper: format exception error string.

Definition at line 283 of file Control/AthLinks/src/exceptions.cxx.

284 {
285  std::ostringstream os;
286  os << "SG::ExcConstStorable: "
287  << "Tried to retrieve const storable as a non-const pointer "
288  << "[" << clid << "/" << key << "] (" << sgkey << ")";
289  return os.str();
290 }

◆ excDVToELV_format()

std::string SG::excDVToELV_format ( const std::string &  detail)

Helper: format exception error string.

Definition at line 365 of file Control/AthContainers/Root/exceptions.cxx.

366 {
367  std::ostringstream os;
368  os << "SG::ExcDVToELV: "
369  << "Can't convert DataVector to vector of ElementLinks: "
370  << detail;
371  return os.str();
372 }

◆ excFlagMismatch_format()

std::string SG::excFlagMismatch_format ( SG::auxid_t  auxid,
const std::type_info &  type,
SG::AuxVarFlags  existing_flags,
SG::AuxVarFlags  requested_flags 
)

Helper: format exception error string.

Definition at line 484 of file Control/AthContainers/Root/exceptions.cxx.

488 {
489  std::ostringstream os;
490  os << "SG::ExcFlagMismatch: "
491  << "Flag mismatch for aux variable "
492  << excFormatName (auxid)
493  << " of type " << AthContainers_detail::typeinfoName (type)
494  << " between existing " << excFormatFlags (existing_flags)
495  << " and requested " << excFormatFlags (requested_flags) << " flags. "
496  << "This may occur as a result of not using AtomicDecorator to access an atomic variable.";
497  return os.str();
498 }

◆ excFormatFlags()

std::string SG::excFormatFlags ( SG::AuxVarFlags  flags)

Helper: format flags.

Definition at line 469 of file Control/AthContainers/Root/exceptions.cxx.

470 {
471  std::string out;
473  out = "atomic";
475  if (!out.empty()) out += " ";
476  out = "linked";
477  }
478 
479  return "[" + out + "]";
480 }

◆ excFormatName()

std::string SG::excFormatName ( SG::auxid_t  auxid)

Helper: format an aux data item name.

Definition at line 22 of file Control/AthContainers/Root/exceptions.cxx.

23 {
24  std::ostringstream os;
25  if (auxid != null_auxid) {
27  os << "`" << r.getClassName (auxid);
28  if (!os.str().empty())
29  os << "::";
30  os << r.getName (auxid);
31  os << "' (" << auxid << ")";
32  }
33  else {
34  os << "(null)";
35  }
36  return os.str();
37 }

◆ excHandleInitError_format()

std::string SG::excHandleInitError_format ( CLID  clid,
const std::string &  sgkey,
const std::string &  storename 
)

Helper: format exception error string.

Definition at line 68 of file Control/StoreGate/src/exceptions.cxx.

72 {
73  std::ostringstream os;
74  os << "SG::ExcHandleInitError: "
75  << "Error initializing VarHandle from VarHandleKey: "
76  << storename << "+" << sgkey << "[" << clid << "]";
77  return os.str();
78 }

◆ excInsertionInBaseClass_format()

std::string SG::excInsertionInBaseClass_format ( const char *  op,
const std::type_info &  base_type,
const std::type_info &  complete_type 
)

Helper: format exception error string.

Definition at line 216 of file Control/AthContainers/Root/exceptions.cxx.

219 {
220  std::ostringstream os;
221  os << "SG::ExcInsertionInBaseClass: "
222  << "Attempted to do " << op
223  << " on a " << AthContainers_detail::typeinfoName (base_type)
224  << " base class of " << AthContainers_detail::typeinfoName (complete_type)
225  << "; can only be done on the most-derived class.";
226  return os.str();
227 }

◆ excInvalidLink_format()

std::string SG::excInvalidLink_format ( CLID  clid,
const std::string &  key,
SG::sgkey_t  sgkey 
)

Helper: format exception error string.

Definition at line 80 of file Control/AthLinks/src/exceptions.cxx.

81 {
82  std::ostringstream os;
83  os << "SG::ExcInvalidLink: "
84  << "Attempt to dereference invalid DataLink / ElementLink "
85  << "[" << clid << "/" << key << "] (" << sgkey << ")";
86  return os.str();
87 }

◆ excInvalidThinningTarget_format()

std::string SG::excInvalidThinningTarget_format ( unsigned int  clid,
const std::string &  key 
)

Helper: format exception error string.

Definition at line 586 of file Control/AthContainers/Root/exceptions.cxx.

588 {
589  std::ostringstream os;
590  os << "SG::ExcInvalidThinningTarget: "
591  << "ThinningHandle target does not exist: "
592  << clid << "/" << key;
593  return os.str();
594 }

◆ excJaggedVecOverlappingCopy_format()

std::string SG::excJaggedVecOverlappingCopy_format ( )

Helper: format exception error string.

Definition at line 672 of file Control/AthContainers/Root/exceptions.cxx.

673 {
674  return "SG::ExcJaggedVecOverlappingCopy: Overlapping copies not implemented for jagged vectors. Talk to core software if this is an issue.";
675 }

◆ excLinkMismatch_format()

std::string SG::excLinkMismatch_format ( SG::auxid_t  auxid,
const std::type_info &  type,
SG::auxid_t  existing_linked_id,
SG::auxid_t  requested_linked_id 
)

Helper: format exception error string.

Definition at line 521 of file Control/AthContainers/Root/exceptions.cxx.

525 {
526  std::ostringstream os;
527  os << "SG::ExcLinkMismatch: "
528  << "Linked variable mismatch for aux variable "
529  << excFormatName (auxid)
530  << " of type " << AthContainers_detail::typeinfoName (type)
531  << " between existing " << excFormatName (existing_linked_id)
532  << " and requested " << excFormatName (requested_linked_id) << " linked variables.";
533  return os.str();
534 }

◆ excNoAuxStore_format() [1/2]

std::string SG::excNoAuxStore_format ( const char *  op)

Helper: format exception error string.

Definition at line 56 of file Control/AthContainers/Root/exceptions.cxx.

57 {
58  std::ostringstream os;
59  os << "SG::ExcNoAuxStore: "
60  << "Operation attempted on container with no associated aux data store: ";
61  os << op;
62  return os.str();
63 }

◆ excNoAuxStore_format() [2/2]

std::string SG::excNoAuxStore_format ( SG::auxid_t  auxid)

Helper: format exception error string.

Definition at line 44 of file Control/AthContainers/Root/exceptions.cxx.

45 {
46  std::ostringstream os;
47  os << "SG::ExcNoAuxStore: "
48  << "Requested aux data item "
49  << excFormatName (auxid)
50  << " but there is no associated aux data store.";
51  return os.str();
52 }

◆ excNoCondCont_format()

std::string SG::excNoCondCont_format ( const std::string &  key,
const std::string &  why 
)

Helper: format exception error string.

Definition at line 401 of file Control/StoreGate/src/exceptions.cxx.

404 {
405  std::ostringstream os;
406  os << "SG::ExcNoCondCont: Can't retrieve CondCont from ReadCondHandle for key "
407  << key << ". " << why;
408  return os.str();
409 }

◆ excNoLinkedVar_format()

std::string SG::excNoLinkedVar_format ( SG::auxid_t  auxid,
const std::type_info &  type 
)

Helper: format exception error string.

Definition at line 558 of file Control/AthContainers/Root/exceptions.cxx.

560 {
561  std::ostringstream os;
562  os << "SG::ExcNoLinkedVar: "
563  << "Linked variable not found for aux variable "
564  << excFormatName (auxid)
565  << " of type " << AthContainers_detail::typeinfoName (type);
566  return os.str();
567 }

◆ excNonConstHandleKey_format()

std::string SG::excNonConstHandleKey_format ( CLID  clid,
const std::string &  sgkey,
const std::string &  storename 
)

Helper: format exception error string.

Definition at line 304 of file Control/StoreGate/src/exceptions.cxx.

308 {
309  std::ostringstream os;
310  os << "SG::ExcNonConstHandleKey: "
311  << "Attempt to get non-const VarHandleKey from non-owning VarHandle: "
312  << storename << "+" << sgkey << "[" << clid << "]";
313  return os.str();
314 }

◆ excNullReadHandle_format()

std::string SG::excNullReadHandle_format ( CLID  clid,
const std::string &  sgkey,
const std::string &  storename 
)

Helper: format exception error string.

Definition at line 214 of file Control/StoreGate/src/exceptions.cxx.

218 {
219  std::ostringstream os;
220  os << "SG::ExcNullReadHandle: "
221  << "Dereference of read handle failed: "
222  << storename << "+" << sgkey << "[" << clid << "]";
223  return os.str();
224 }

◆ excNullUpdateHandle_format()

std::string SG::excNullUpdateHandle_format ( CLID  clid,
const std::string &  sgkey,
const std::string &  storename 
)

Helper: format exception error string.

Definition at line 259 of file Control/StoreGate/src/exceptions.cxx.

263 {
264  std::ostringstream os;
265  os << "SG::ExcNullUpdateHandle: "
266  << "Dereference of update handle failed: "
267  << storename << "+" << sgkey << "[" << clid << "]";
268  return os.str();
269 }

◆ excNullWriteHandle_format()

std::string SG::excNullWriteHandle_format ( CLID  clid,
const std::string &  sgkey,
const std::string &  storename 
)

Helper: format exception error string.

Definition at line 169 of file Control/StoreGate/src/exceptions.cxx.

173 {
174  std::ostringstream os;
175  os << "SG::ExcNullWriteHandle: "
176  << "Attempt to dereference write handle before record: "
177  << storename << "+" << sgkey << "[" << clid << "]";
178  return os.str();
179 }

◆ excOutOfRange_format()

std::string SG::excOutOfRange_format ( const char *  what,
size_t  i,
size_t  size 
)

Helper: format exception error string.

Definition at line 700 of file Control/AthContainers/Root/exceptions.cxx.

703 {
704  std::ostringstream os;
705  os << "SG::ExcOutOfRange: "
706  << "Range reference out of bounds in " << what << "; "
707  << i << " >= " << size;
708  return os.str();
709 }

◆ excPointerNotInSG_format()

std::string SG::excPointerNotInSG_format ( const void *  pointer)

Helper: format exception error string.

Definition at line 28 of file Control/AthLinks/src/exceptions.cxx.

29 {
30  std::ostringstream os;
31  os << "SG::ExcPointerNotInSG: "
32  << "The object referenced by a DataLink / ElementLink is not registered "
33  << "in StoreGate: " << pointer << ".";
34  return os.str();
35 }

◆ excProtection_format()

std::string SG::excProtection_format ( int  errnum)

Definition at line 34 of file Control/AthAllocators/src/exceptions.cxx.

35 {
36  std::ostringstream os;
37  os << "SG::ExcProtection: Attempt to change memory protection failed: ";
38  char errbuf[256];
39 #ifdef _GNU_SOURCE
40  os << strerror_r (errnum, errbuf, sizeof(errbuf));
41 #else
42  strerror_r (errnum, errbuf, sizeof(errbuf));
43  os << errbuf;
44 #endif
45  return os.str();
46 }

◆ excProxyCollision_format()

std::string SG::excProxyCollision_format ( CLID  id,
const std::string &  key,
CLID  primary_id,
const std::string &  primary_key 
)

Helper: Format exception string.

Definition at line 66 of file Control/SGTools/src/exceptions.cxx.

70 {
71  std::ostringstream os;
72  os << "ExcProxyCollision: proxy collision for clid/key "
73  << id << " / " << key
74  << " (primary " << primary_id << " / " << primary_key << ").";
75  return os.str();
76 }

◆ excSgkeyCollision_format()

std::string SG::excSgkeyCollision_format ( const std::string &  new_key,
CLID  new_clid,
const std::string &  old_key,
CLID  old_clid,
sgkey_t  sgkey 
)

Helper: Format exception string.

Definition at line 102 of file Control/SGTools/src/exceptions.cxx.

107 {
108  std::ostringstream os;
109  os << "ExcSgkeyCollision: sgkey hash collision; new key: "
110  << new_key << "/" << new_clid << " and existing key: "
111  << old_key << "/" << old_clid << " both hash to " << sgkey;
112  return os.str();
113 }

◆ excStoreLocked_format() [1/2]

std::string SG::excStoreLocked_format ( const char *  op)

Helper: format exception error string.

Definition at line 262 of file Control/AthContainers/Root/exceptions.cxx.

263 {
264  std::ostringstream os;
265  os << "SG::ExcStoreLocked: "
266  << "Attempted to modify auxiliary data in a locked store: ";
267  os << op;
268  return os.str();
269 }

◆ excStoreLocked_format() [2/2]

std::string SG::excStoreLocked_format ( SG::auxid_t  auxid)

Helper: format exception error string.

Definition at line 251 of file Control/AthContainers/Root/exceptions.cxx.

252 {
253  std::ostringstream os;
254  os << "SG::ExcStoreLocked: "
255  << "Attempted to modify auxiliary data in a locked store: ";
256  os << excFormatName (auxid);
257  return os.str();
258 }

◆ excUninitKey_format()

std::string SG::excUninitKey_format ( CLID  clid,
const std::string &  sgkey,
const std::string &  storename,
const std::string &  holdername,
const std::string &  htype 
)

Helper: format exception error string.

Definition at line 99 of file Control/StoreGate/src/exceptions.cxx.

105 {
106  std::ostringstream os;
107  os << "SG::ExcUninitKey: "
108  << "Error initializing " << htype << " from uninitialized " << htype << "Key: "
109  << storename << "+" << sgkey << "[" << clid << "]; "
110  << "keys should be initialized in your initialize().";
111  if ( holdername.size() ) os << " Key held by " << holdername << ".";
112  return os.str();
113 }

◆ excUnknownAuxItem_format()

std::string SG::excUnknownAuxItem_format ( const std::string &  name,
const std::string &  clsname,
const std::type_info *  typ 
)

Helper: format exception error string.

Definition at line 317 of file Control/AthContainers/Root/exceptions.cxx.

320 {
321  std::ostringstream os;
322  os << "SG::ExcUnknownAuxItem: "
323  << "Unknown aux data item ";
324  if (!clsname.empty())
325  os << clsname << "::";
326  os << name;
327  if (typ)
328  os << " (of type " << AthContainers_detail::typeinfoName (*typ) << ")";
329  return os.str();
330 }

◆ findInContainer() [1/3]

template<>
bool SG::findInContainer ( const CaloCellContainer data,
CaloCell const *const element,
CaloCellContainer::size_type index 
)

Definition at line 676 of file CaloCellContainer.cxx.

679 {
680  int ndx = data.findIndex (element->caloDDE()->calo_hash());
681  if (ndx >= 0) {
682  index = ndx;
683  return true;
684  }
685  return false;
686 }

◆ findInContainer() [2/3]

template<>
bool SG::findInContainer ( const CaloConstCellContainer data,
CaloCell const *const element,
CaloConstCellContainer::size_type index 
)
inline

Definition at line 211 of file CaloConstCellContainer.h.

214 {
215  return SG::findInContainer (*data.asDataVector(), element, index);
216 }

◆ findInContainer() [3/3]

template<typename CONT , typename ELT >
bool SG::findInContainer ( const CONT &  data,
const ELT &  element,
typename CONT::size_type &  index 
)

Find the index of an object within a container.

Parameters
dataThe container to search.
elementThe element for which to search.
[out]indexThe found index of the element.
Returns
true if the element was found; false otherwise.

By default, this function will do an exhaustive search through the container to find the element. However, this function may be specialized if this can be done more efficiently for some specific container.

Definition at line 37 of file findInContainer.h.

40 {
41  typedef typename CONT::const_iterator const_iterator;
42  const_iterator end = data.end();
43  index = 0;
44  for (const_iterator it = data.begin(); it != end; ++it) {
45  if (*it == element) return true;
46  ++index;
47  }
48  return false;
49 }

◆ fromStorable() [1/2]

void * SG::fromStorable ( DataObject *  pDObj,
CLID  clid,
IRegisterTransient irt = 0,
bool  isConst = true 
)

Try to get the pointer back from a DataObject, converted to be of type clid.

Parameters
pDObjThe DataObject.
clidThe ID of the class to which to convert.
irtTo be called if we make a new instance.
isConstTrue if the object being converted is regarded as const.

Only works if the DataObject is a DataBucket. Returns 0 on failure,

Definition at line 28 of file StorableConversions.cxx.

31 {
32  // Try to use BaseInfo information to convert pointers.
33  DataBucketBase* b = dynamic_cast<DataBucketBase*>(pDObj);
34  if (b)
35  return b->cast (clid, irt, isConst);
36  return 0;
37 }

◆ fromStorable() [2/2]

template<typename T >
bool SG::fromStorable ( DataObject *  pDObj,
T *&  pTrans,
bool  quiet = false,
IRegisterTransient irt = 0,
bool  isConst = true 
)

Definition at line 180 of file StorableConversions.h.

187  {
188  typedef typename std::remove_const<T>::type T_nc;
190 
191  //check inputs
192  if (0 == pDObj) {
193  pTrans=0;
194 #ifndef NDEBUG
195  MsgStream gLog(Athena::getMessageSvc(), "SG::fromStorable");
196  gLog << MSG::WARNING << "null input pointer " << endmsg;
197 #endif
198  return false;
199  }
200 
201  // get T* from DataBucket:
202  // All objects in the event store nowadays are instances
203  // of DataBucket, so just do a static_cast.
204  DataBucketBase* b = static_cast<DataBucketBase*>(pDObj);
205  pTrans = b->template cast<T_nc> (irt, isConst);
206  bool success = pTrans != nullptr;
207 
208 #ifndef NDEBUG
209  if (!quiet && !success) {
210  MsgStream gLog(Athena::getMessageSvc(), "SG::fromStorable");
211  gLog << MSG::WARNING
212  << "can't convert stored DataObject " << pDObj
213  << " to type ("
215  << ")\n Unless you are following a symlink,"
216  << " it probably means you have a duplicate "
217  << "CLID = " << pDObj->clID()
218  << endmsg;
219  }
220 #endif
221  return success;
222  }

◆ get() [1/2]

template<class T >
const T* SG::get ( const ReadHandleKey< T > &  key)

Convenience function to retrieve an object given a ReadHandleKey.

Parameters
keyThe key to retrieve.

Returns the object. Returns nullptr if the key is null or if there's an error.

◆ get() [2/2]

template<class T >
const T* SG::get ( const ReadHandleKey< T > &  key,
const EventContext &  ctx 
)

Convenience function to retrieve an object given a ReadHandleKey.

Parameters
keyThe key to retrieve.
ctxThe event context.

Returns the object. Returns nullptr if the key is null or if there's an error.

◆ getClassIfDictionaryExists()

TClass* SG::getClassIfDictionaryExists ( const std::string &  cname)

Look up a TClass given a name.

Try to avoid autoparsing.

Parameters
cnameName of the class to find.

Definition at line 27 of file getDynamicAuxID.cxx.

28 {
29  if (TClass* cl = (TClass*)gROOT->GetListOfClasses()->FindObject(cname.c_str())) {
30  if (cl->IsLoaded() && cl->HasDictionary()) return cl;
31  return nullptr;
32  }
33 
34  // The idea of calling GetClassSharedLibs was to test if a class was
35  // listed in the rootmap file, so we could avoid autoparsing.
36  // This worked with older versions of root 6.
37  // But now root has started doing dynamic linking itself,
38  // and GetClassSharedLibs will itself trigger autoparsing.
39  // So currently, this test does more harm than good.
40  // Still need to see if we can find a reliable way of failing
41  // a TClass lookup rather than triggering autoparsing.
42  //if (gInterpreter->GetClassSharedLibs (cname.c_str()))
43  {
44  TClass* cl = TClass::GetClass (cname.c_str());
45  if (cl->HasDictionary())
46  return cl;
47  }
48  return nullptr;
49 }

◆ getDynamicAuxID()

SG::auxid_t SG::getDynamicAuxID ( const std::type_info &  ti,
const std::string &  name,
const std::string &  elementTypeName,
const std::string &  branchTypeName,
bool  standalone,
SG::auxid_t  linked_auxid 
)

Find the auxid for a dynamic branch.

Parameters
tiType of the auxiliary variable. Usually the type of the vector payload, but if standalone is true, then this is the type of the stored object.
nameAuxiliary variable name.
elementTypeNameName of the type for one aux data element. Should be the same as branchTypeName if standalone is true.
branchTypeNameName of the type for this branch.
standaloneTrue if this is a standalone object.

Definition at line 64 of file getDynamicAuxID.cxx.

70 {
72  SG::auxid_t auxid = SG::null_auxid;
73 
77  }
78 
79  auxid = r.getAuxID (ti, name, "", flags, linked_auxid);
80  if (auxid != SG::null_auxid) return auxid;
81 
82  // Be careful --- if we don't exactly match the name
83  // in TClassTable, then we may trigger autoparsing. Besides the
84  // resource usage that implies, that can lead to crashes in dbg
85  // builds due to cling bugs.
86  std::string tn = elementTypeName;
87  if (tn.starts_with("std::vector<"))
88  tn.erase (0, 5);
89  std::string fac_class_name = "SG::AuxTypeVectorFactory<" +
90  tn + ",allocator<" + tn;
91  if (fac_class_name[fac_class_name.size()-1] == '>')
92  fac_class_name += ' ';
93  fac_class_name += "> >";
94  TClass* fac_class = getClassIfDictionaryExists (fac_class_name);
95  if (fac_class)
96  {
97  TClass* base_class = getClassIfDictionaryExists ("SG::IAuxTypeVectorFactory");
98  if (base_class) {
99  int offs = fac_class->GetBaseClassOffset (base_class);
100  if (offs >= 0) {
101  void* fac_vp = fac_class->New();
102  if (fac_vp) {
103  SG::IAuxTypeVectorFactory* fac = reinterpret_cast<SG::IAuxTypeVectorFactory*> (reinterpret_cast<unsigned long>(fac_vp) + offs);
104  const std::type_info* tiAlloc = fac->tiAlloc();
105  r.addFactory (ti, *tiAlloc, std::unique_ptr<SG::IAuxTypeVectorFactory> (fac));
106  auxid = r.getAuxID(*fac->tiAlloc(), ti, name, "", flags, linked_auxid);
107  }
108  }
109  }
110  }
111 
112  if (auxid == SG::null_auxid) {
113  if (linked_auxid != SG::null_auxid) {
114  errorcheck::ReportMessage msg (MSG::INFO, ERRORCHECK_ARGS, "getDynamicAuxID");
115  msg << "dynamic ROOT vector factory not implemented for linked types: "
116  << name << " " << branchTypeName << "\n";
117  return SG::null_auxid;
118  }
119 
120  std::string vec_name = branchTypeName;
121  if (standalone) {
122  vec_name = "std::vector<" + branchTypeName;
123  if (vec_name[vec_name.size()-1] == '>')
124  vec_name += " ";
125  vec_name += ">";
126  }
127  TClass* vec_class = TClass::GetClass (vec_name.c_str());
128 
129  if (vec_class) {
130  auto facp = std::make_unique<SG::RootAuxVectorFactory> (vec_class);
131  std::string tiAllocName = facp->tiAllocName();
132  (void)r.addFactory (ti, tiAllocName, std::move (facp));
133  auxid = r.getAuxID(tiAllocName, ti, name, "", flags);
134  }
135  }
136 
137  return auxid;
138 }

◆ getNSlots()

size_t SG::getNSlots ( )

Return the number of event slots.

Calls getNSlots_once the first time we're called and caches the result.

Definition at line 64 of file SlotSpecificObj.cxx.

65 {
66  const static size_t nslots = getNSlots_once();
67  return nslots;
68 }

◆ getNSlots_once()

size_t SG::getNSlots_once ( )

Return the number of event slots.

This accesses the IHiveWhiteBoard service to find the number of slots.

Definition at line 46 of file SlotSpecificObj.cxx.

47 {
48  ServiceHandle<IInterface> svc (getNSlots_hiveMgrName, "getNSlots_once");
49  if (!svc.retrieve().isSuccess())
50  return 1;
51  IHiveWhiteBoard* hivesvc = dynamic_cast<IHiveWhiteBoard*> (svc.get());
52  if (!hivesvc) return 1;
53  unsigned int nslots = hivesvc->getNumberOfStores();
54  if (nslots < 1) return 1;
55  return nslots;
56 }

◆ getThinningCache() [1/2]

const SG::ThinningCache * SG::getThinningCache ( )

Retrieve the current thinning cache from the current event context.

Returns nullptr if there is no current thinning cache.

Definition at line 41 of file getThinningCache.cxx.

42 {
43  return getThinningCache (Gaudi::Hive::currentContext());
44 }

◆ getThinningCache() [2/2]

const SG::ThinningCache * SG::getThinningCache ( const EventContext &  ctx)

Retrieve the current thinning cache from the event context.

ctx Event context.

Returns nullptr if there is no current thinning cache.

Definition at line 28 of file getThinningCache.cxx.

29 {
30  if (ctx.hasExtension()) {
32  }
33  return nullptr;
34 }

◆ getThinningDecision() [1/4]

const SG::ThinningDecisionBase * SG::getThinningDecision ( const EventContext &  ctx,
const sgkey_t  sgkey 
)

Retrieve the current thinning decision for sgkey.

ctx Event context.

Parameters
sgkeySG hashed key to test.

Returns nullptr if there is no thinning for sgkey.

Definition at line 112 of file getThinningCache.cxx.

114 {
115  if (const SG::ThinningCache* cache = getThinningCache (ctx)) {
116  return cache->thinning (sgkey);
117  }
118  return nullptr;
119 }

◆ getThinningDecision() [2/4]

const SG::ThinningDecisionBase * SG::getThinningDecision ( const EventContext &  ctx,
const std::string &  key 
)

Retrieve the current thinning decision for key.

ctx Event context.

Parameters
keySG key to test.

Returns nullptr if there is no thinning for key.

Definition at line 83 of file getThinningCache.cxx.

85 {
86  if (const SG::ThinningCache* cache = getThinningCache (ctx)) {
87  return cache->thinning (key);
88  }
89  return nullptr;
90 }

◆ getThinningDecision() [3/4]

const SG::ThinningDecisionBase * SG::getThinningDecision ( const sgkey_t  sgkey)

Retrieve the current thinning decision for sgkey.

Parameters
keySG key to test.
sgkeySG hashed key to test.

Returns nullptr if there is no thinning for sgkey.

Parameters
sgkeySG hashed key to test.

Returns nullptr if there is no thinning for sgkey.

Definition at line 128 of file getThinningCache.cxx.

129 {
130  return getThinningDecision (Gaudi::Hive::currentContext(), sgkey);
131 }

◆ getThinningDecision() [4/4]

const SG::ThinningDecisionBase * SG::getThinningDecision ( const std::string &  key)

Retrieve the current thinning decision for key.

Parameters
keySG key to test.

Returns nullptr if there is no thinning for key.

Definition at line 99 of file getThinningCache.cxx.

100 {
101  return getThinningDecision (Gaudi::Hive::currentContext(), key);
102 }

◆ getThinningInfo() [1/2]

const SG::ThinningInfo * SG::getThinningInfo ( const EventContext &  ctx,
const std::string &  key 
)

Retrieve the current thinning information for key.

ctx Event context.

Parameters
keySG key to test.

Returns nullptr if there is no thinning for key.

Definition at line 54 of file getThinningCache.cxx.

56 {
57  if (const SG::ThinningCache* cache = getThinningCache (ctx)) {
58  return cache->thinningInfo (key);
59  }
60  return nullptr;
61 }

◆ getThinningInfo() [2/2]

const SG::ThinningInfo * SG::getThinningInfo ( const std::string &  key)

Retrieve the current thinning information for key.

Parameters
keySG key to test.

Returns nullptr if there is no thinning for key.

Definition at line 70 of file getThinningCache.cxx.

71 {
72  return getThinningInfo (Gaudi::Hive::currentContext(), key);
73 }

◆ isTransientKey()

bool SG::isTransientKey ( const std::string &  key)

Test to see if a key is transoent.

Parameters
keyThe key to test.

Definition at line 41 of file transientKey.h.

42 {
43  return !key.empty() && key[0] == '_';
44 }

◆ lossyFloatCompress()

void SG::lossyFloatCompress ( void *  dst,
const std::size_t  idst,
const std::size_t  n,
const std::size_t  eltSize,
const std::string &  typeName,
const unsigned int  nmantissa 
)

Helper method to apply lossy float compression.

Parameters
dstPointer to the start of the vector's data
idstIndex of first element in vector
nNumber of elements to process.
eltSizeElement size for the auxid
typeNameType name for the auxid
nmantissaCompression level to be used for the auxid

Definition at line 200 of file copyAuxStoreThinned.cxx.

206 {
207  // Check if there is anything to be done
208  // Total number of explicit mantissa bits for a 32 bit float is 23
209  // 0 is used to denote no compression should be applied to the variable
210  static const unsigned int NMANTISSA_MAX = 23;
211  if (nmantissa == 0 || nmantissa >= NMANTISSA_MAX) return;
212 
213  // Setup all possible compressors: done only once
214  static const std::vector<CxxUtils::FloatCompressor> compressors = [] {
215  std::vector<CxxUtils::FloatCompressor> result;
216  result.reserve(NMANTISSA_MAX);
217  for (std::size_t idx = 0; idx < NMANTISSA_MAX; ++idx)
218  result.emplace_back(idx);
219  return result;
220  }();
221 
222  // Get the pointer to the memory
223  char* eltPtr = reinterpret_cast<char*>(dst) + idst*eltSize;
224 
225  // This is where we apply in-place lossy float compression
226  if(typeName == "float") {
227  // cppcheck-suppress invalidPointerCast
228  float* f = reinterpret_cast<float*> (eltPtr);
229  for (size_t i = 0; i < n; i++) {
230  *f = compressors[nmantissa].reduceFloatPrecision(*f);
231  ++f;
232  }
233  } else if (typeName == "std::vector<float>"){
234  for (size_t i = 0; i < n; i++) {
235  std::vector<float> &vals = *(reinterpret_cast<std::vector<float>*>(eltPtr));
236  for(auto &val: vals) {
237  val = compressors[nmantissa].reduceFloatPrecision(val);
238  }
239  eltPtr += eltSize;
240  }
241  }
242 }

◆ makeContDecorKey() [1/2]

std::string SG::makeContDecorKey ( const std::string &  cont,
const std::string &  decor 
)

Make a StoreGate key from container and decoration name.

Parameters
contThe container handle key.
decorThe decoration handle key.

Given keys of the form "CCC" and "DDD", returns the full key, "CCC.DDD". If cont or decor is empty, returns the non-empty key (or an empty string).

Definition at line 58 of file DecorKeyHelpers.cxx.

59 {
60  if (cont.empty()) return decor;
61  if (decor.empty()) return cont;
62  return cont + '.' + decor;
63 }

◆ makeContDecorKey() [2/2]

std::string SG::makeContDecorKey ( const VarHandleKey contKey,
const std::string &  key 
)

Make a StoreGate key from container and decoration.

Parameters
contKeyThe VarHandleKey of the container holding the decoration.
keyThe decoration name.

Construct the StoreGate key from the associated container and the decoration name passed in key. If the latter also contains the container name, an exception will be raised.

Parameters
contKeyThe VarHandleKey of the container holding the decoration.
keyThe decoration name.

Construct the StoreGate key from the associated container and the decoration name passed in key. If the latter also contains the container name, an exception will be raised if the name does not match contKey.

Definition at line 75 of file DecorKeyHelpers.cxx.

76 {
77  if (key.find('.') != std::string::npos) {
78  throw SG::ExcBadHandleKey(key + " (DecorHandleKey has been declared with a parent container. "
79  "Its value should not contain any container name.)");
80  }
81 
82  // Note: VHK::fullKey().key() contains the store prefix, key() does not.
83  return makeContDecorKey( contKey.fullKey().key(), key);
84 }

◆ makeHandle() [1/18]

template<class D , class T >
ReadDecorHandle<T, D> SG::makeHandle ( const ReadDecorHandleKey< T > &  key)

Return a ReadDecorHandle referencing key.

Parameters
keyThe key object holding the clid/key/store.

This will raise an exception if the StoreGate key is blank, or if the event store cannot be found.

The type of the decoration must be included as an explicit template parameter:

auto handle = SG::makeHandle<float> (key);

Note that D comes first in the argument list. It's given explicitly, while T is inferred from key.

◆ makeHandle() [2/18]

template<class T >
void SG::makeHandle ( const ReadDecorHandleKey< T > &  key)

These two signatures are to catch cases where the explicit template argument is omitted from the makeHandle call and give an error tailored to that.

Otherwise, the makeHandle call for ReadHandle would match, potentially giving a much more confusing error.

◆ makeHandle() [3/18]

template<class D , class T >
ReadDecorHandle<T, D> SG::makeHandle ( const ReadDecorHandleKey< T > &  key,
const EventContext &  ctx 
)

Return a ReadDecorHandle referencing key for an explicit context.

Parameters
keyThe key object holding the clid/key/store.
ctxThe event context.

This will raise an exception if the StoreGate key is blank, or if the event store cannot be found.

If the default event store has been requested, then the thread-specific store from the event context will be used.

The type of the decoration must be included as an explicit template parameter:

auto handle = SG::makeHandle<float> (key, ctx);

Note that D comes first in the argument list. It's given explicitly, while T is inferred from key.

◆ makeHandle() [4/18]

template<class T >
void SG::makeHandle ( const ReadDecorHandleKey< T > &  key,
const EventContext &  ctx 
)

◆ makeHandle() [5/18]

template<class T >
ReadHandle<T> SG::makeHandle ( const ReadHandleKey< T > &  key)

Return a ReadHandle referencing key.

Parameters
keyThe key object holding the clid/key/store.

This will raise an exception if the StoreGate key is blank, or if the event store cannot be found.

◆ makeHandle() [6/18]

template<class T >
ReadHandle<T> SG::makeHandle ( const ReadHandleKey< T > &  key,
const EventContext &  ctx 
)

Return a ReadHandle referencing key for an explicit context.

Parameters
keyThe key object holding the clid/key/store.
ctxThe event context.

This will raise an exception if the StoreGate key is blank, or if the event store cannot be found.

If the default event store has been requested, then the thread-specific store from the event context will be used.

◆ makeHandle() [7/18]

template<class T >
SG::ReadCondHandle<T> SG::makeHandle ( const SG::ReadCondHandleKey< T > &  key,
const EventContext &  ctx = Gaudi::Hive::currentContext() 
)

Definition at line 270 of file ReadCondHandle.h.

271  {
272  return SG::ReadCondHandle<T>(key, ctx);
273  }

◆ makeHandle() [8/18]

template<class T >
SG::WriteCondHandle<T> SG::makeHandle ( const SG::WriteCondHandleKey< T > &  key,
const EventContext &  ctx = Gaudi::Hive::currentContext() 
)

Definition at line 313 of file WriteCondHandle.h.

314  {
315  return SG::WriteCondHandle<T>(key, ctx);
316  }

◆ makeHandle() [9/18]

template<class T >
ThinningHandle<T> SG::makeHandle ( const ThinningHandleKey< T > &  key)

Return a ThinningHandle referencing key.

Parameters
keyThe key object holding the clid/key/store.

This will raise an exception if the StoreGate key is blank, or if the event store cannot be found.

Definition at line 130 of file ThinningHandle.h.

131 {
132  return ThinningHandle<T> (key);
133 }

◆ makeHandle() [10/18]

template<class T >
ThinningHandle<T> SG::makeHandle ( const ThinningHandleKey< T > &  key,
const EventContext &  ctx 
)

Return a ThinningHandle referencing key for an explicit context.

Parameters
keyThe key object holding the clid/key/store.
ctxThe event context.

This will raise an exception if the StoreGate key is blank, or if the event store cannot be found.

If the default event store has been requested, then the thread-specific store from the event context will be used.

Definition at line 148 of file ThinningHandle.h.

150 {
151  return ThinningHandle<T> (key, ctx);
152 }

◆ makeHandle() [11/18]

template<class T >
UpdateHandle<T> SG::makeHandle ( const UpdateHandleKey< T > &  key)

Return an UpdateHandle referencing key.

Parameters
keyThe key object holding the clid/key/store.

This will raise an exception if the StoreGate key is blank, or if the event store cannot be found.

◆ makeHandle() [12/18]

template<class T >
UpdateHandle<T> SG::makeHandle ( const UpdateHandleKey< T > &  key,
const EventContext &  ctx 
)

Return an UpdateHandle referencing key for an explicit context.

Parameters
keyThe key object holding the clid/key/store.
ctxThe event context.

This will raise an exception if the StoreGate key is blank, or if the event store cannot be found.

If the default event store has been requested, then the thread-specific store from the event context will be used.

◆ makeHandle() [13/18]

template<class D , class T >
WriteDecorHandle<T, D> SG::makeHandle ( const WriteDecorHandleKey< T > &  key)

Return a WriteDecorHandle referencing key.

Parameters
keyThe key object holding the clid/key/store.

This will raise an exception if the StoreGate key is blank, or if the event store cannot be found.

The type of the decoration must be included as an explicit template parameter:

auto handle = SG::makeHandle<float> (key);

Note that D comes first in the argument list. It's given explicitly, while T is inferred from key.

◆ makeHandle() [14/18]

template<class T >
void SG::makeHandle ( const WriteDecorHandleKey< T > &  key)

These two signatures are to catch cases where the explicit template argument is omitted from the makeHandle call and give an error tailored to that.

Otherwise, the makeHandle call for ReadHandle would match, potentially giving a much more confusing error.

◆ makeHandle() [15/18]

template<class D , class T >
WriteDecorHandle<T, D> SG::makeHandle ( const WriteDecorHandleKey< T > &  key,
const EventContext &  ctx 
)

Return a WriteDecorHandle referencing key for an explicit context.

Parameters
keyThe key object holding the clid/key/store.
ctxThe event context.

This will raise an exception if the StoreGate key is blank, or if the event store cannot be found.

If the default event store has been requested, then the thread-specific store from the event context will be used.

The type of the decoration must be included as an explicit template parameter:

auto handle = SG::makeHandle<float> (key, ctx);

Note that D comes first in the argument list. It's given explicitly, while T is inferred from key.

◆ makeHandle() [16/18]

template<class T >
void SG::makeHandle ( const WriteDecorHandleKey< T > &  key,
const EventContext &  ctx 
)

◆ makeHandle() [17/18]

template<class T >
WriteHandle<T> SG::makeHandle ( const WriteHandleKey< T > &  key)

Return a WriteHandle referencing key.

Parameters
keyThe key object holding the clid/key/store.

This will raise an exception if the StoreGate key is blank, or if the event store cannot be found.

◆ makeHandle() [18/18]

template<class T >
WriteHandle<T> SG::makeHandle ( const WriteHandleKey< T > &  key,
const EventContext &  ctx 
)

Return a WriteHandle referencing key for an explicit context.

Parameters
keyThe key object holding the clid/key/store.
ctxThe event context.

This will raise an exception if the StoreGate key is blank, or if the event store cannot be found.

If the default event store has been requested, then the thread-specific store from the event context will be used.

◆ maybeUnprotect() [1/4]

template<class ALLOC >
void SG::maybeUnprotect ( ALLOC &  )

Hook for unprotecting an arena.

Sometimes we need to ensure that an arena is unprotected before we start destroying an object that contains the arena. To do that without making assumptions about whether the arena supports an unprotect operation, call this function.

This is the generic version, which is a no-op. It will be specialized as appropriate for individual allocators.

Definition at line 32 of file maybeUnprotect.h.

33 {
34 }

◆ maybeUnprotect() [2/4]

template<class T , class VETO >
void SG::maybeUnprotect ( ArenaHeapSTLAllocator< T, VETO > &  a)

Hook for unprotecting an arena.

Sometimes we need to ensure that an arena is unprotected before we start destroying an object that contains the arena. To do that without making assumptions about whether the arena supports an unprotect operation, call this function.

◆ maybeUnprotect() [3/4]

template<class T , class VETO >
void SG::maybeUnprotect ( ArenaPoolSTLAllocator< T, VETO > &  a)

Hook for unprotecting an arena.

Sometimes we need to ensure that an arena is unprotected before we start destroying an object that contains the arena. To do that without making assumptions about whether the arena supports an unprotect operation, call this function.

◆ maybeUnprotect() [4/4]

template<class T >
void SG::maybeUnprotect ( ArenaSharedHeapSTLAllocator< T > &  a)

Hook for unprotecting an arena.

Sometimes we need to ensure that an arena is unprotected before we start destroying an object that contains the arena. To do that without making assumptions about whether the arena supports an unprotect operation, call this function.

◆ NO_SANITIZE_UNDEFINED()

void copyAuxStoreThinned SG::NO_SANITIZE_UNDEFINED ( const SG::IConstAuxStore orig,
SG::IAuxStore copy,
const SG::ThinningInfo info 
)

Helper to copy an aux store while applying thinning.

Parameters
origSource aux store from which to copy.
copyDestination aux store to which to copy.
infoThinning information for this object (or nullptr).

orig and copy are both auxiliary store objects. The data from orig will be copied to copy, with individual elements / variables removed according info.

Definition at line 58 of file copyAuxStoreThinned.cxx.

62 {
63  size_t size = orig.size();
64  if (size == 0) {
65  copy.resize(0);
66  return;
67  }
68 
69  const ThinningDecisionBase* dec = info ? info->m_decision : nullptr;
70 
71  size_t nremaining = dec ? dec->thinnedSize() : size;
72  if( nremaining == 0) {
73  copy.resize(0);
74  return;
75  }
76 
77  // Access the auxiliary type registry:
79 
80  // The auxiliary IDs that the original container has:
81  SG::auxid_set_t auxids = orig.getAuxIDs();
82 
83  SG::auxid_set_t dyn_auxids;
84  SG::auxid_set_t sel_auxids;
85  if (const IAuxStoreIO* iio = dynamic_cast<const IAuxStoreIO*> (&orig)) {
86  dyn_auxids = iio->getDynamicAuxIDs();
87  sel_auxids = iio->getSelectedAuxIDs();
88  }
89 
90  SG::auxid_set_t new_auxids = copy.getAuxIDs();
91 
92  copy.resize (nremaining);
93 
94  // Loop over all the variables of the original container:
95  for (SG::auxid_t auxid : auxids) {
96  // Skip null auxids (happens if we don't have the dictionary)
97  if(auxid == SG::null_auxid) continue;
98 
99  // Skip linked variables (they'll be handled when we copy the variable
100  // from which they're linked).
101  if (r.isLinked (auxid)) continue;
102 
103  // Skip non-selected dynamic variables.
104  // Handle variable vetoes requested via ThinningInfo.
105  // We want to allow vetoing a variable if it's defined
106  // as a dynamic variable in the source source, or if it doesn't
107  // exist in the destination source (in which case it will be
108  // dynamic there). The latter case happens for example when
109  // we save a static store object as the AuxContainerBaseClass
110  // in order to make all variables dynamic.
111  if (dyn_auxids.test(auxid) || !new_auxids.test(auxid)) {
112  if (info) {
113  if (info->vetoed(auxid)) continue;
114  }
115  }
116 
117  // Also check for a veto requested through the store selection interface.
118  // (But this shouldn't really be used anymore.)
119  if (dyn_auxids.test(auxid) && !sel_auxids.test(auxid)) {
120  continue;
121  }
122 
123  // Access the source variable:
124  const void* src = orig.getData (auxid);
125 
126  if (!src) continue;
127 
128  // FIXME: Do this via proper interfaces.
129  if (const IAuxStoreIO* iio = dynamic_cast<const IAuxStoreIO*> (&orig))
130  {
131  const std::type_info* typ = iio->getIOType (auxid);
132  if (strstr (typ->name(), "PackedContainer") != nullptr) {
133  // This cast gets a warning from the undefined behavior sanitizer
134  // in gcc6. Done like this deliberately for now, so suppress ubsan
135  // checking for this function.
136  const PackedParameters& parms =
137  reinterpret_cast<const PackedContainer<int>* > (iio->getIOData (auxid))->parms();
138  copy.setOption (auxid, AuxDataOption ("nbits", parms.nbits()));
139  copy.setOption (auxid, AuxDataOption ("float", parms.isFloat()));
140  copy.setOption (auxid, AuxDataOption ("signed", parms.isSigned()));
141  copy.setOption (auxid, AuxDataOption ("rounding", parms.rounding()));
142  copy.setOption (auxid, AuxDataOption ("nmantissa", parms.nmantissa()));
143  copy.setOption (auxid, AuxDataOption ("scale", parms.scale()));
144  }
145  }
146 
147  // Get the element size, type name and compression info for the current auxid
148  // This information is later passed to the helper function lossyFloatCompress
149  const size_t eltSize{ r.getEltSize(auxid) };
150  const std::string typeName{ r.getTypeName(auxid) };
151  const unsigned int nmantissa{ info != nullptr ? info->compression(auxid) : 0 };
152 
153  // Create the target variable:
154  void* dst = copy.getData (auxid, nremaining, nremaining);
155 
156  // Also create a linked variable if needed.
157  SG::auxid_t linked_auxid = r.linkedVariable (auxid);
158  if (linked_auxid != null_auxid) {
159  const IAuxTypeVector* v = orig.linkedVector (auxid);
160  if (v) {
161  size_t sz = v->size();
162  copy.getData (linked_auxid, 0, sz);
163  }
164  }
165 
166  TempInterface srciface (orig.size());
167  srciface.setStore (&orig);
168  TempInterface dstiface (copy.size());
169  dstiface.setStore (&copy);
170 
171  // Copy over all elements.
172  if (nremaining == size) {
173  // No thinning.
174  r.copyForOutput (auxid, dstiface, 0, srciface, 0, size);
175  }
176  else {
177  // Some elements are thinned.
178  for (std::size_t isrc = 0, idst = 0; isrc < size; ++isrc) {
179  if (!dec || !dec->thinned(isrc)) {
180  r.copyForOutput (auxid, dstiface, idst, srciface, isrc, 1);
181  ++idst;
182  }
183  }
184  }
185  // Apply lossy float compression here (in-place).
186  // Maybe it would be better to do this via the registry during copy.
187  lossyFloatCompress(dst, 0, nremaining, eltSize, typeName, nmantissa);
188  }
189 }

◆ normalizedTypeinfoName()

std::string SG::normalizedTypeinfoName ( const std::type_info &  info)

Convert a type_info to a normalized string representation (matching the names used in the root dictionary).

Parameters
infoThe type to convert.

The function AthContainer_detail::typeinfoName may be used to convert a C++ type_info to a string representing the name of the class; this handles platform-dependent details such as performing demangling.

However, the name you get as a result of this does not necessarily match the name by which the class is known in the ROOT dictionary. In particular, defaulted template arguments for STL containers and DataVector are suppressed in the dictionary. So, for example, for a vector class typeinfoName may produce std::vector<int, std::allocator<T> >, while in the dictionary it is known as std::vector<int>. Using normalizedTypeinfoName instead will transform the names to match what's in the dictionary. This function will also cache the typeinfo -> string conversions.

Definition at line 120 of file normalizedTypeinfoName.cxx.

121 {
122  // Maintain a cache of mappings, protected with an ordinary mutex.
123  // We originally did this with an upgrading mutex.
124  // However, these mutexes have been observed to have considerable overhead,
125  // so are probably not worthwhile if the read critical section is short.
126  // If this lock becomes a performance issue, consider a concurrent hashmap
127  // or rcu-style solution.
128  typedef std::unordered_map<const std::type_info*, std::string> typemap_t;
129  static typemap_t normalizedTypemap ATLAS_THREAD_SAFE;
130  typedef AthContainers_detail::mutex mutex_t;
131  static mutex_t normalizedTypemapMutex;
132  AthContainers_detail::lock_guard<mutex_t> lock (normalizedTypemapMutex);
133 
134  // Test to see if we already have the mapping.
135  typemap_t::iterator it = normalizedTypemap.find (&info);
136  if (it != normalizedTypemap.end()) {
137  return it->second;
138  }
139 
140  // Didn't find it. Apply the rules.
141  static const CxxUtils::ClassName::Rules normalizeRules = makeRules();
142  std::string tiname = AthContainers_detail::typeinfoName (info);
143  std::string normalizedName = normalizeRules.apply (tiname);
144 
145  // Remember this mapping.
146  normalizedTypemap[&info] = normalizedName;
147  return normalizedName;
148 }

◆ null_arena_deleter()

void SG::null_arena_deleter ( ArenaBase )

Definition at line 28 of file ArenaHeader.cxx.

28 {}

◆ operator!=()

Inequality comparison.

Definition at line 129 of file AthToolSupport/AsgDataHandles/Root/VarHandleBase.cxx.

130  {
131  return !(l==r);
132  }

◆ operator<<() [1/4]

std::ostream & SG::operator<< ( std::ostream &  os,
const ArenaAllocatorBase::Stats stats 
)

Format a complete statistics structure.

Parameters
osThe stream to which to write.
statsThe statistics structure to write.

Definition at line 105 of file ArenaAllocatorBase.cxx.

107 {
108  os << stats.elts << " " << stats.bytes << " " << stats.blocks;
109  return os;
110 }

◆ operator<<() [2/4]

std::ostream & SG::operator<< ( std::ostream &  os,
const ArenaAllocatorBase::Stats::Stat stat 
)

Format a statistic structure.

Parameters
osThe stream to which to write.
statThe statistic structure to write.

Definition at line 62 of file ArenaAllocatorBase.cxx.

64 {
65  os << std::setw(7) << stat.inuse << "/"
66  << std::setw(7) << stat.free << "/"
67  << std::setw(7) << stat.total;
68  return os;
69 }

◆ operator<<() [3/4]

std::ostream& SG::operator<< ( std::ostream &  ost,
const SG::VersionedKey k 
)
inline

Definition at line 116 of file SGVersionedKey.h.

116  {
117  return ost << k.rawVersionKey();
118  // return ost.write(k.rawVersionKey(), strlen(k.rawVersionKey()));
119  }

◆ operator<<() [4/4]

std::ostream & SG::operator<< ( std::ostream &  out,
const VarHandleBase o 
)

Output stream.

Parameters
outStream to which to write.
oObject to write.

Definition at line 107 of file AthToolSupport/AsgDataHandles/Root/VarHandleBase.cxx.

108  {
109  out << "VarHandleBase @" << &o
110  // << " store=" <<o.store()
111  << ", key=" <<o.key();
112  return out;
113  }

◆ operator==()

bool SG::operator== ( const VarHandleBase l,
const VarHandleBase r 
)

Equality comparison.

Definition at line 119 of file AthToolSupport/AsgDataHandles/Root/VarHandleBase.cxx.

120  {
121  return (l.name() == r.name());// &&
122  // l.store() == r.store());
123  }

◆ ReadCondHandleNotFound()

void SG::ReadCondHandleNotFound ( const CondContBase cc,
const EventIDBase &  eid,
const std::string &  key 
)

Report a conditions container lookup failure.

Parameters
ccThe conditions container.
eidThe time for which to search.
Thekey corresponding to the conditions container.

Definition at line 23 of file ReadCondHandle.cxx.

26 {
27  std::ostringstream ost;
28  cc.list(ost);
29  MsgStream msg(Athena::getMessageSvc(), "ReadCondHandle");
30  msg << MSG::ERROR
31  << "ReadCondHandle::retrieve() could not find EventTime "
32  << eid << " for key " << key << "\n"
33  << ost.str()
34  << endmsg;
35 }

◆ readPackedParameters()

SG::PackedParameters SG::readPackedParameters ( TBuffer &  b)
inline

Read a set of packed parameters from a buffer.

Parameters
bBuffer from which to write.

Definition at line 47 of file PackedContainerStreamer.cxx.

47  {
48  uint8_t nbits;
49  b >> nbits;
50 
51  uint8_t flags;
52  b >> flags;
53 
54  SG::PackedParameters parms (nbits, flags);
55  if (parms.isFloat()) {
56  uint8_t nmantissa;
57  b >> nmantissa;
58  parms.setNmantissa (nmantissa);
59  if (parms.hasScale()) {
60  float scale;
61  b >> scale;
62  parms.setScale (scale);
63  }
64  }
65  return parms;
66 }

◆ removeContFromDecorKey()

void SG::removeContFromDecorKey ( const VarHandleKey contKey,
std::string &  key 
)

Remove container name from decoration key.

Parameters
contKeyThe VarHandleKey of the container holding the decoration.
keyThe decoration name to be modified.

Given a key of the form SG+CCC.DDD, removes SG+CCC.

Definition at line 94 of file DecorKeyHelpers.cxx.

95 {
96  // Remove container name from key
97  const std::string toerase = contKey.fullKey().key() + ".";
98  const size_t pos = key.find(toerase);
99  if (pos != std::string::npos) {
100  key.erase(pos, toerase.size());
101  }
102 
103 }

◆ safe_clid()

template<class T >
constexpr CLID SG::safe_clid ( )
constexpr

Return the class ID of T, or CLID_NULL if it doesn't have one.

Avoids compilation errors if the class ID is not defined.

◆ sgkeyEqual()

constexpr bool SG::sgkeyEqual ( const sgkey_t  a,
const sgkey_t  b 
)
inlineconstexpr

Compare two sgkeys for equality.

Definition at line 39 of file CxxUtils/CxxUtils/sgkey_t.h.

40 {
41  return a == b;
42 }

◆ sgkeyLess()

constexpr bool SG::sgkeyLess ( const sgkey_t  a,
const sgkey_t  b 
)
inlineconstexpr

Compare two sgkeys for ordering.

Definition at line 49 of file CxxUtils/CxxUtils/sgkey_t.h.

50 {
51  return a < b;
52 }

◆ sgkeyShort()

constexpr uint32_t SG::sgkeyShort ( const sgkey_t  k)
inlineconstexpr

Convert a sgkey to the 32-bit form used for older data.

Definition at line 85 of file CxxUtils/CxxUtils/sgkey_t.h.

86 {
87  return k;
88 }

◆ simpleStringHash()

int SG::simpleStringHash ( const std::string &  str,
int  maxInt = 0xFFFF 
)
inline

simple hash function derived from Sedgewick Algorithms in C++ 3rd ed

Parameters
strthe string to be hashed
maxIntthe maximum value the function returns. Hash collision probability is 1/min(maxInt, 2**127)

Definition at line 16 of file hash_functions.h.

16  {
17  int h(0), a(127);
18  for (std::string::size_type iC=0; iC<str.size(); iC++)
19  h = (a*h + str[iC]) % maxInt;
20  return h;
21  }

◆ Storable_cast() [1/2]

template<typename T >
T* SG::Storable_cast ( DataObject *  pDObj,
bool  quiet = true,
IRegisterTransient irt = 0,
bool  isConst = true 
)

Definition at line 47 of file StorableConversions.h.

49  {
50  T* result;
51  return fromStorable(pDObj, result, quiet, irt, isConst) ? result : 0;
52  }

◆ Storable_cast() [2/2]

void * SG::Storable_cast ( DataObject *  pDObj,
CLID  clid,
IRegisterTransient irt = 0,
bool  isConst = true 
)

Try to get the pointer back from a DataObject, converted to be of type clid.

Parameters
pDObjThe DataObject.
clidThe ID of the class to which to convert.
irtTo be called if we make a new instance.
isConstTrue if the object being converted is regarded as const.

Only works if the DataObject is a DataBucket. Returns 0 on failure,

Definition at line 51 of file StorableConversions.cxx.

54 {
55  return fromStorable (pDObj, clid, irt, isConst);
56 }

◆ swap()

template<class T >
void SG::swap ( ArenaSharedHeapSTLAllocator< T > &  a,
ArenaSharedHeapSTLAllocator< T > &  b 
)

Definition at line 481 of file ArenaSharedHeapSTLAllocator.h.

482 {
483  a.swap (b);
484 }

◆ throwExcAllocOwnership()

void SG::throwExcAllocOwnership ( )

Throw a SG::ExcAllocOwnership exception.

Definition at line 636 of file Control/AthContainers/Root/exceptions.cxx.

637 {
638  throw ExcAllocOwnership();
639 }

◆ throwExcBadDataProxyCast()

void SG::throwExcBadDataProxyCast ( CLID  id,
const std::type_info &  tid 
)

Throw an ExcBadDataProxyCast exception.

Parameters
idCLID of the DataProxy.
tidType to which we're trying to convert the object.

Definition at line 56 of file Control/SGTools/src/exceptions.cxx.

57 {
58  throw ExcBadDataProxyCast (id, tid);
59 }

◆ throwExcBadDecorElement()

void SG::throwExcBadDecorElement ( Gaudi::DataHandle::Mode  mode,
CLID  clid,
const std::string &  decorKey 
)

Throw a SG::ExcBadDecorElement exception.

Definition at line 488 of file Control/StoreGate/src/exceptions.cxx.

491 {
492  throw SG::ExcBadDecorElement (mode, clid, decorKey);
493 }

◆ throwExcBadForwardLink()

void SG::throwExcBadForwardLink ( size_t  index,
size_t  size,
const std::string &  name 
)

Throw a SG::ExcBadForwardLink exception.

Parameters
indexIndex in the link.
sizeSize of the referenced container.
nameType name of the container.

Definition at line 155 of file Control/AthLinks/src/exceptions.cxx.

156 {
157  throw ExcBadForwardLink (index, size, name);
158 }

◆ throwExcBadThinning()

void SG::throwExcBadThinning ( CLID  clid,
const std::string &  key,
SG::sgkey_t  sgkey 
)

Throw a SG::ExcBadThinning exception.

Parameters
clidCLID of the link.
keyString key of the link.
sgkeyHashed key of the link.

Definition at line 344 of file Control/AthLinks/src/exceptions.cxx.

347 {
348  throw ExcBadThinning (clid, key, sgkey);
349 }

◆ throwExcBadToTransient()

void SG::throwExcBadToTransient ( )

Throw a SG::ExcBadToTransient exception.

Definition at line 272 of file Control/AthLinks/src/exceptions.cxx.

273 {
274  throw ExcBadToTransient();
275 }

◆ throwExcElementNotFound()

void SG::throwExcElementNotFound ( const char *  where)

Throw a SG::ExcElementNotFound exception.

Parameters
whereThe operation being attempted.

Definition at line 180 of file Control/AthLinks/src/exceptions.cxx.

181 {
182  throw ExcElementNotFound (where);
183 }

◆ throwExcIncomparableEL()

void SG::throwExcIncomparableEL ( )

Throw a SG::IncomparableEL exception.

Throw a SG::ExcIncomparableSG exception.

Definition at line 250 of file Control/AthLinks/src/exceptions.cxx.

251 {
252  throw ExcIncomparableEL();
253 }

◆ throwExcIndexNotFound()

void SG::throwExcIndexNotFound ( const char *  where)

Throw a SG::ExcIndexNotFound exception.

Parameters
whereThe operation being attempted.

Definition at line 228 of file Control/AthLinks/src/exceptions.cxx.

229 {
230  throw ExcIndexNotFound (where);
231 }

◆ throwExcInvalidIndex()

void SG::throwExcInvalidIndex ( const char *  where)

Throw a SG::ExcInvalidIndex exception.

Parameters
whereThe operation being attempted.

Definition at line 204 of file Control/AthLinks/src/exceptions.cxx.

205 {
206  throw ExcInvalidIndex (where);
207 }

◆ throwExcInvalidLink()

void SG::throwExcInvalidLink ( CLID  clid,
const std::string &  key,
SG::sgkey_t  sgkey 
)

Throw a SG::ExcInvalidLink exception.

Parameters
clidCLID of the link.
keyString key of the link.
sgkeyHashed key of the link.

Definition at line 111 of file Control/AthLinks/src/exceptions.cxx.

112 {
113  throw ExcInvalidLink (clid, key, sgkey);
114 }

◆ throwExcMissingBaseInfo()

void SG::throwExcMissingBaseInfo ( const std::type_info &  ti)

Throw a SG::ExcMissingBaseInfo exception.

Parameters
titype_info for the class with the missing base info.

Definition at line 447 of file Control/AthContainers/Root/exceptions.cxx.

448 {
449  throw ExcMissingBaseInfo (ti);
450 }

◆ throwExcMissingViewVectorCLID()

void SG::throwExcMissingViewVectorCLID ( const std::type_info &  ti)

Throw a SG::ExcMissingViewVectorCLID exception.

Throw a SG::ExcViewVectorCLID exception.

Parameters
titype_info for the class with the missing CLID.

Definition at line 425 of file Control/AthContainers/Root/exceptions.cxx.

426 {
427  throw ExcMissingViewVectorCLID (ti);
428 }

◆ throwExcNonConstHandleKey()

void SG::throwExcNonConstHandleKey ( CLID  clid,
const std::string &  sgkey,
const std::string &  storename 
)

Throw a SG::ExcNonConstHandleKey exception.

Parameters
clidCLID from the key.
sgkeyStoreGate key from the key.
storenameStore name from the key.

Definition at line 337 of file Control/StoreGate/src/exceptions.cxx.

340 {
341  throw ExcNonConstHandleKey (clid, sgkey, storename);
342 }

◆ throwExcNonowningContainer()

void SG::throwExcNonowningContainer ( )

Throw a SG::ExcNonowningContainer exception.

Definition at line 307 of file Control/AthContainers/Root/exceptions.cxx.

308 {
309  throw ExcNonowningContainer();
310 }

◆ throwExcNullHandleKey()

void SG::throwExcNullHandleKey ( )

Throw a SG::ExcNullHandleKey exception.

Definition at line 32 of file Control/StoreGate/src/exceptions.cxx.

33 {
34  throw ExcNullHandleKey();
35 }

◆ throwExcNullReadHandle()

void SG::throwExcNullReadHandle ( CLID  clid,
const std::string &  sgkey,
const std::string &  storename 
)

Throw a SG::ExcNullReadHandle exception.

Parameters
clidCLID from the key.
sgkeyStoreGate key from the key.
storenameStore name from the key.

Definition at line 247 of file Control/StoreGate/src/exceptions.cxx.

250 {
251  throw ExcNullReadHandle (clid, sgkey, storename);
252 }

◆ throwExcNullUpdateHandle()

void SG::throwExcNullUpdateHandle ( CLID  clid,
const std::string &  sgkey,
const std::string &  storename 
)

Throw a SG::ExcNullUpdateHandle exception.

Parameters
clidCLID from the key.
sgkeyStoreGate key from the key.
storenameStore name from the key.

Definition at line 292 of file Control/StoreGate/src/exceptions.cxx.

295 {
296  throw ExcNullUpdateHandle (clid, sgkey, storename);
297 }

◆ throwExcNullWriteHandle()

void SG::throwExcNullWriteHandle ( CLID  clid,
const std::string &  sgkey,
const std::string &  storename 
)

Throw a SG::ExcNullWriteHandle exception.

Parameters
clidCLID from the key.
sgkeyStoreGate key from the key.
storenameStore name from the key.

Definition at line 202 of file Control/StoreGate/src/exceptions.cxx.

205 {
206  throw ExcNullWriteHandle (clid, sgkey, storename);
207 }

◆ throwExcOutOfRange()

void SG::throwExcOutOfRange ( const char *  what,
size_t  i,
size_t  size 
)

Throw a SG::ExcOutOfRange exception.

Parameters
whatDescription of the failing operation.
iThe attempted index.
sizeThe actual size of the range.

◆ throwExcUnknownAuxItem()

void SG::throwExcUnknownAuxItem ( const std::string &  name,
const std::string &  clsname = "",
const std::type_info *  typ = 0 
)

Throw a SG::ExcUnknownAuxItem exception.

Parameters
nameName of the aux data item.
clsnameClass name of the aux data item, or an empty string.
typType of the item, if provided.

Definition at line 353 of file Control/AthContainers/Root/exceptions.cxx.

356 {
357  throw ExcUnknownAuxItem (name, clsname, typ);
358 }

◆ throwExcViewVectorNotView()

void SG::throwExcViewVectorNotView ( )

Throw a SG::ExcViewVectorNotView exception.

Definition at line 400 of file Control/AthContainers/Root/exceptions.cxx.

401 {
402  throw ExcViewVectorNotView();
403 }

◆ throwJaggedVecOverlappingCopy()

void SG::throwJaggedVecOverlappingCopy ( )

Throw a SG::ExcJaggedVecOverlappingCopy exception.

Definition at line 690 of file Control/AthContainers/Root/exceptions.cxx.

691 {
692  throw ExcJaggedVecOverlappingCopy();
693 }

◆ throwOutOfRange()

void SG::throwOutOfRange ( const char *  what,
size_t  i,
size_t  size 
)

Throw a SG::ExcOutOfRange exception.

Parameters
whatDescription of the failing operation.
iThe attempted index.
sizeThe actual size of the range.

Definition at line 731 of file Control/AthContainers/Root/exceptions.cxx.

734 {
735  throw ExcOutOfRange (what, i, size);
736 }

◆ transientKey()

std::string SG::transientKey ( const std::string &  key)

Make a key transient.

Parameters
keyThe key to transform;

Definition at line 51 of file transientKey.h.

52 {
53  if (isTransientKey (key)) {
54  return key;
55  }
56  return "_" + key;
57 }

◆ ViewVectorBaseStreamerFunc()

void SG::ViewVectorBaseStreamerFunc ( TBuffer &  b,
void *  p 
)

Definition at line 27 of file ViewVectorBaseStreamer.cxx.

28 {
29  static TClass* const cl = TClass::GetClass ("SG::ViewVectorBase");
30  if (b.IsReading()) {
31  cl->ReadBuffer (b, p);
32  } else {
33  SG::ViewVectorBase* vvb = reinterpret_cast<SG::ViewVectorBase*>(p);
34  vvb->toPersistent();
35  cl->WriteBuffer(b, p);
36  }
37 }

◆ writePackedParameters()

void SG::writePackedParameters ( TBuffer &  b,
const SG::PackedParameters parms 
)
inline

Write a set of packed parameters to a buffer.

Parameters
bBuffer to which to write.
paramParameters to write.

Definition at line 31 of file PackedContainerStreamer.cxx.

31  {
32  b << parms.nbits();
33  b << parms.flags();
34  if (parms.isFloat()) {
35  b << parms.nmantissa();
36  if (parms.hasScale())
37  b << parms.scale();
38  }
39 }

◆ xAODInterfaceSupportingThinning()

template<class T , typename std::enable_if_t< is_xAODInterfaceObject_v< T > > * = nullptr>
constexpr bool SG::xAODInterfaceSupportingThinning ( )
constexpr

Definition at line 48 of file supportsThinning.h.

48 { return T::supportsThinning; }

◆ xAODStoreSupportingThinning()

template<class T , typename std::enable_if_t< is_xAODStoreObject_v< T > > * = nullptr>
constexpr bool SG::xAODStoreSupportingThinning ( )
constexpr

Definition at line 67 of file supportsThinning.h.

67 { return T::supportsThinning; }

Variable Documentation

◆ auxAllocatorNamePrefix

constexpr const char* SG::auxAllocatorNamePrefix = "std::allocator<"
constexpr

Definition at line 29 of file AuxDataTraits.h.

◆ DEFAULTKEY

const std::string SG::DEFAULTKEY = ""

Definition at line 12 of file DefaultKey.h.

◆ getDataSourcePointerFunc

getDataSourcePointerFunc_t* SG::getDataSourcePointerFunc

◆ is_xAODInterfaceObject_v

template<class T >
constexpr bool SG::is_xAODInterfaceObject_v
inlineconstexpr
Initial value:
=
std::is_base_of_v<SG::AuxVectorBase, T> || std::is_base_of_v<SG::AuxElement, T>

Test for an xAOD interface class supporting thinning.

Returns true if T derives from either AuxVectorBase or AuxElement and T::supportsThinning is true. (The enable_if's are to avoid getting undefined symbol errors when T is not an xAOD object.)

Definition at line 44 of file supportsThinning.h.

◆ is_xAODStoreObject_v

template<class T >
constexpr bool SG::is_xAODStoreObject_v
inlineconstexpr
Initial value:
=
std::is_base_of_v<SG::IAuxStore, T>

Test for an xAOD auxiliary store class supporting thinning.

Returns true if T derives from IAuxStore and T::supportsThinning is true. (The enable_if's are to avoid getting undefined symbol errors when T is not an xAOD object.)

Definition at line 63 of file supportsThinning.h.

◆ viewVectorBaseStreamerInstance

InstallViewVectorBaseStreamer SG::viewVectorBaseStreamerInstance

Definition at line 53 of file ViewVectorBaseStreamer.cxx.

grepfile.info
info
Definition: grepfile.py:38
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
base
std::string base
Definition: hcg.cxx:78
beamspotman.r
def r
Definition: beamspotman.py:676
store
StoreGateSvc * store
Definition: fbtTestBasics.cxx:71
common.sgkey
def sgkey(tool)
Definition: common.py:1028
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
SG::ExcDVToELV
Exception — Can't convert DataVector to vector of ElementLinks.
Definition: Control/AthContainers/AthContainers/exceptions.h:268
ATH_BITMASK
#define ATH_BITMASK
Mark that a class enum should be treated as a bitmask.
Definition: bitmask.h:70
SG::IConstAuxStore::getData
virtual const void * getData(SG::auxid_t auxid) const =0
Return the data vector for one aux data item.
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
fitman.sz
sz
Definition: fitman.py:527
python.trigbs_prescaleL1.ost
ost
Definition: trigbs_prescaleL1.py:104
get_generator_info.result
result
Definition: get_generator_info.py:21
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:392
SG::dataVectorViewAsELV
void dataVectorViewAsELV(const std::false_type &, const DV &, std::vector< ElementLink< DV > > &, IProxyDict *)
Helper for dataVectorViewAsELV.
Definition: dataVectorAsELV.h:71
SG::lossyFloatCompress
void lossyFloatCompress(void *dst, const std::size_t dst_index, const std::size_t n, const std::size_t eltSize, const std::string &typeName, const unsigned int nmantissa)
Helper method to apply lossy float compression.
Definition: copyAuxStoreThinned.cxx:200
SG::SkipNameCheck
@ SkipNameCheck
Definition: AuxTypes.h:81
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
SG::getNSlots_once
size_t getNSlots_once()
Return the number of event slots.
Definition: SlotSpecificObj.cxx:46
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:557
L1CaloPhase1Monitoring.standalone
standalone
Definition: L1CaloPhase1Monitoring.py:112
DataBucketBase
A non-templated base class for DataBucket, allows to access the transient object address as a void*.
Definition: DataBucketBase.h:24
SG::AuxTypeRegistry::instance
static AuxTypeRegistry & instance()
Return the singleton registry instance.
Definition: AuxTypeRegistry.cxx:640
SG::isTransientKey
bool isTransientKey(const std::string &key)
Test to see if a key is transoent.
Definition: transientKey.h:41
SG::VIEW_ELEMENTS
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Definition: OwnershipPolicy.h:18
SG::fromStorable
bool fromStorable(DataObject *pDObj, T *&pTrans, bool quiet=false, IRegisterTransient *irt=0, bool isConst=true)
Definition: StorableConversions.h:180
WriteCellNoiseToCool.src
src
Definition: WriteCellNoiseToCool.py:513
SG::PackedParameters::flags
uint8_t flags() const
Additional flags describing the packing.
quiet
bool quiet
Definition: TrigGlobEffCorrValidation.cxx:190
index
Definition: index.py:1
AthenaPoolTestRead.flags
flags
Definition: AthenaPoolTestRead.py:8
BeamSpot::mutex
std::mutex mutex
Definition: InDetBeamSpotVertex.cxx:18
SG::ExcBadDecorElement
Exception — DecorHandle given an element not in the requested container.
Definition: Control/StoreGate/StoreGate/exceptions.h:376
SG::NEVER_TRACK_INDICES
@ NEVER_TRACK_INDICES
Never track indices, regardless of the setting of the ownership policy.
Definition: IndexTrackingPolicy.h:46
skel.it
it
Definition: skel.GENtoEVGEN.py:396
SG::ALWAYS_TRACK_INDICES
@ ALWAYS_TRACK_INDICES
Always track indices, regardless of the setting of the ownership policy.
Definition: IndexTrackingPolicy.h:43
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
SG::DEFAULT_TRACK_INDICES
@ DEFAULT_TRACK_INDICES
Default value.
Definition: IndexTrackingPolicy.h:40
SG::CurrentEventStore::store
static IProxyDict * store()
Fetch the current store.
detail
Definition: extract_histogram_tag.cxx:14
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
LArG4FSStartPointFilter.evt
evt
Definition: LArG4FSStartPointFilter.py:42
SG::excFormatName
std::string excFormatName(SG::auxid_t auxid)
Helper: format an aux data item name.
Definition: Control/AthContainers/Root/exceptions.cxx:22
errorcheck::ReportMessage
Helper class to use to report a message.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:173
yodamerge_tmp.scale
scale
Definition: yodamerge_tmp.py:138
trigbs_dumpHLTContentInBS.stats
stats
Definition: trigbs_dumpHLTContentInBS.py:91
x
#define x
FPEAudit::lock_t
std::lock_guard< std::mutex > lock_t
Definition: FPEAuditor.cxx:44
SG::IConstAuxStore::size
virtual size_t size() const =0
Return the number of elements in the store.
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:27
SG::AuxTypeRegistry
Handle mappings between names and auxid_t.
Definition: AuxTypeRegistry.h:61
Atlas::getExtendedEventContext
const ExtendedEventContext & getExtendedEventContext(const EventContext &ctx)
Retrieve an extended context from a context object.
Definition: ExtendedEventContext.cxx:32
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
SG::PackedParameters::nmantissa
uint8_t nmantissa() const
The number of bits used for the mantissa portion of a float-point representation, excluding a sign bi...
SG::makeContDecorKey
std::string makeContDecorKey(const VarHandleKey &contKey, const std::string &key)
Make a StoreGate key from container and decoration.
Definition: DecorKeyHelpers.cxx:75
SG::Linked
@ Linked
Mark that this variable is linked to another one.
Definition: AuxTypes.h:77
SG::auxid_t
size_t auxid_t
Identifier for a particular aux data item.
Definition: AuxTypes.h:27
ClassID_traits::typeName
static const std::string & typeName()
the demangled type name of T
Definition: Control/AthenaKernel/AthenaKernel/ClassID_traits.h:56
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
SG::PackedParameters::hasScale
bool hasScale() const
Should floats be rescaled before writing?
SG::PackedParameters::isFloat
bool isFloat() const
Are elements being written as floating-point numbers?
lumiFormat.i
int i
Definition: lumiFormat.py:85
SG::OWN_ELEMENTS
@ OWN_ELEMENTS
this data object owns its elements
Definition: OwnershipPolicy.h:17
beamspotman.n
n
Definition: beamspotman.py:731
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
extractSporadic.h
list h
Definition: extractSporadic.py:97
SG::IAuxTypeVectorFactory
Interface for factory objects that create vectors.
Definition: IAuxTypeVectorFactory.h:50
master.flag
bool flag
Definition: master.py:29
SG::IAuxTypeVectorFactory::tiAlloc
virtual const std::type_info * tiAlloc() const =0
Return the type_info of the vector allocator.
LHEF::Reader
Pythia8::Reader Reader
Definition: Prophecy4fMerger.cxx:11
SG::PackedParameters::nbits
uint8_t nbits() const
The number of bits used to store each element.
CxxUtils::ClassName::Rules::apply
std::string apply(const std::string &name) const
Apply transformations to a class name.
Definition: ClassName.cxx:127
python.Utils.unixtools.where
def where(filename, prepath=[])
"which" for python files -------------------------------------------------—
Definition: unixtools.py:53
SG::ExcBadHandleKey
Exception — Bad key format for VarHandleKey.
Definition: Control/StoreGate/StoreGate/exceptions.h:62
Preparation.mode
mode
Definition: Preparation.py:94
hist_file_dump.f
f
Definition: hist_file_dump.py:135
SG::AuxTypeRegistry::isLinkedName
static bool isLinkedName(const std::string &name)
Test if a variable name corresponds to a linked variable.
Definition: AuxTypeRegistry.cxx:1293
Handler::svc
AthROOTErrorHandlerSvc * svc
Definition: AthROOTErrorHandlerSvc.cxx:10
CxxUtils::ClassName::Rules
A set of transformation rules to use with ClassName.
Definition: CxxUtils/CxxUtils/ClassName.h:130
SG::AuxVarFlags
AuxVarFlags
Additional flags to qualify an auxiliary variable.
Definition: AuxTypes.h:58
SG::getThinningCache
const SG::ThinningCache * getThinningCache(const EventContext &ctx)
Retrieve the current thinning cache from the event context.
Definition: getThinningCache.cxx:28
SG::ViewVectorBase
Hold the persistent representation for a ViewVector.
Definition: ViewVectorBase.h:38
beamspotman.stat
stat
Definition: beamspotman.py:266
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
SG::None
@ None
No special flags set.
Definition: AuxTypes.h:60
FPEAudit::s_mutex
std::mutex s_mutex
Definition: FPEAuditor.cxx:43
SG::getThinningDecision
const SG::ThinningDecisionBase * getThinningDecision(const EventContext &ctx, const std::string &key)
Retrieve the current thinning decision for key.
Definition: getThinningCache.cxx:83
python.ExitCodes.what
def what(code)
Definition: ExitCodes.py:73
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
SG::findInContainer
bool findInContainer(const CaloCellContainer &data, CaloCell const *const &element, CaloCellContainer::size_type &index)
Definition: CaloCellContainer.cxx:676
SG::IConstAuxStore::linkedVector
virtual const IAuxTypeVector * linkedVector(SG::auxid_t) const
Return interface for a linked variable.
Definition: IConstAuxStore.h:189
python.PyKernel.init
def init(v_theApp, v_rootStream=None)
Definition: PyKernel.py:45
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
SG::Atomic
@ Atomic
Mark that this variable should only be accessed atomically.
Definition: AuxTypes.h:70
SG::fromStorable
void * fromStorable(DataObject *pDObj, CLID clid, IRegisterTransient *irt=0, bool isConst=true)
Try to get the pointer back from a DataObject, converted to be of type clid.
Definition: StorableConversions.cxx:28
SG::ViewVectorBase::toPersistent
virtual void toPersistent()=0
Convert the vector to persistent form.
python.PyAthena.v
v
Definition: PyAthena.py:154
DeMoScan.index
string index
Definition: DeMoScan.py:364
a
TList * a
Definition: liststreamerinfos.cxx:10
SG::getClassIfDictionaryExists
TClass * getClassIfDictionaryExists(const std::string &cname)
Look up a TClass given a name.
Definition: getDynamicAuxID.cxx:27
SG::Storable_cast
T * Storable_cast(DataObject *pDObj, bool quiet=true, IRegisterTransient *irt=0, bool isConst=true)
Definition: StorableConversions.h:47
h
std::sort
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
Definition: DVL_algorithms.h:623
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
Atlas::ExtendedEventContext::thinningCache
const SG::ThinningCache * thinningCache() const
Definition: ExtendedEventContext.h:63
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
ReadCalibFromCool.typeName
typeName
Definition: ReadCalibFromCool.py:477
SG::auxid_set_t
A set of aux data identifiers.
Definition: AuxTypes.h:47
str
Definition: BTagTrackIpAccessor.cxx:11
SG::AuxVectorData
Manage lookup of vectors of auxiliary data.
Definition: AuxVectorData.h:168
calibdata.copy
bool copy
Definition: calibdata.py:27
ATLAS_THREAD_SAFE
#define ATLAS_THREAD_SAFE
Definition: checker_macros.h:211
SG::getThinningInfo
const SG::ThinningInfo * getThinningInfo(const EventContext &ctx, const std::string &key)
Retrieve the current thinning information for key.
Definition: getThinningCache.cxx:54
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
PlotCalibFromCool.vv
vv
Definition: PlotCalibFromCool.py:716
SG::AllowEmpty
@ AllowEmpty
Definition: StoreGate/StoreGate/VarHandleKey.h:30
SG::ThinningCache
Cache thinning decisions for converters.
Definition: ThinningCache.h:48
SG::excFormatFlags
std::string excFormatFlags(SG::AuxVarFlags flags)
Helper: format flags.
Definition: Control/AthContainers/Root/exceptions.cxx:469
ERRORCHECK_ARGS
#define ERRORCHECK_ARGS
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:323
dq_make_web_display.cl
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
Definition: dq_make_web_display.py:26
SG::WriteCondHandle
Definition: WriteCondHandle.h:26
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
SG::IConstAuxStore::getAuxIDs
virtual const SG::auxid_set_t & getAuxIDs() const =0
Return a set of identifiers for existing data items in this store.
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35
SG::PackedParameters::scale
float scale() const
Return the scale for floating-point numbers.
fitman.k
k
Definition: fitman.py:528
python.handimod.cc
int cc
Definition: handimod.py:523
GenParticle
@ GenParticle
Definition: TruthClasses.h:30
SG::PackedParameters
Describe how the contents of a PackedContainer are to be saved.
Definition: PackedParameters.h:66
ServiceHandle< IInterface >
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
CxxUtils::ConcurrentBitset::test
bool test(bit_t bit) const
Test to see if a bit is set.
PlotCalibFromCool.vals
vals
Definition: PlotCalibFromCool.py:474