ATLAS Offline Software
Loading...
Searching...
No Matches
SG Namespace Reference

Forward declaration. More...

Namespaces

namespace  ArenaBlockAlignDetail
namespace  CondHandleDefault
namespace  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...
 Helper class to provide constant type-safe access to aux data, specialized for PackedLink. More...
 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...
 Factory object that creates vectors for packed links. More...
 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...
 Helper class to provide constant type-safe access to aux data, specialized for PackedLink. More...
 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
 a const_iterator facade to DataHandle. More...
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  DataPoolNullClear
 Null cleanup functional — does no actual cleanup. 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...
 Helper class to provide type-safe access to aux data, specialized for PackedLink. More...
 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. 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...
 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...
 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  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
class  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
 an iterator facade to DataHandle. More...
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...
 A packed version of ElementLink. 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. More...
class  View
 A "view" of the event store (IProxyDict). More...
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 > >

Concepts

concept  IsConstAuxElement
 Test if T is compatible with ConstAuxElement.
concept  IsAuxElement
 Test if T is compatible with AuxElement.

Typedefs

template<class T>
using AuxAllocator_t = std::allocator<T>
 The default allocator type to use for auxiliary variables.
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.
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.
template<class T>
using BaseType_t = typename SG::BaseType<T>::type
template<CxxUtils::detail::RefCounted T>
using DataObjectSharedPtr = CxxUtils::RefCountedPtr<T>
typedef std::string SourceID
using CompressionInfo = std::unordered_map<std::string, SG::ThinningInfo::compression_map_t>
 Map of compressed variables and their compression levels.
using SelectionVetoes = std::unordered_map<std::string, SG::auxid_set_t>
 Map of vetoed variables.
typedef ExcElementNotFound maybe_thinning_error
 Backwards compatibility.
template<class T>
using ConcurrentSGKeyMap
 A concurrent map using sgkey_t as key.
typedef uint32_t sgkey_t
 Type used for hashed StoreGate key+CLID pairs.
template<class T>
using SGKeyMap = std::unordered_map<sgkey_t, T>
 A map using sgkey_t as a key.
using SGKeySet = std::unordered_set<sgkey_t>
 A set of sgkey_t values.
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 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, class S = float>
using WriteDecorHandleKeyArray = DecorHandleKeyArray<WriteDecorHandle<T, S>,WriteDecorHandleKey<T>, Gaudi::DataHandle::Writer >
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 }
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)
template<>
bool findInContainer (const CaloCellContainer &data, CaloCell const *const &element, CaloCellContainer::size_type &index)
std::ostream & operator<< (std::ostream &os, const ArenaAllocatorBase::Stats::Stat &stat)
 Format a statistic structure.
std::ostream & operator<< (std::ostream &os, const ArenaAllocatorBase::Stats &stats)
 Format a complete statistics structure.
template<class T, class VETO>
void maybeUnprotect (ArenaHeapSTLAllocator< T, VETO > &a)
 Hook for unprotecting an arena.
template<class T, class VETO>
void maybeUnprotect (ArenaPoolSTLAllocator< T, VETO > &a)
 Hook for unprotecting an arena.
template<class T>
void swap (ArenaSharedHeapSTLAllocator< T > &a, ArenaSharedHeapSTLAllocator< T > &b)
template<class T>
void maybeUnprotect (ArenaSharedHeapSTLAllocator< T > &a)
 Hook for unprotecting an arena.
template<class ALLOC>
void maybeUnprotect (ALLOC &)
 Hook for unprotecting an arena.
void null_arena_deleter (ArenaBase *)
ArenaPoolAllocator::pointer ArenaPoolAllocator_iterator_increment (ArenaPoolAllocator::pointer base, ArenaBlock *&block)
 Helper: common code for advancing an iterator.
ArenaPoolAllocator::const_pointer ArenaPoolAllocator_iterator_increment (ArenaPoolAllocator::const_pointer base, const ArenaBlock *&block)
 Helper: common code for advancing an iterator.
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.
template<class DV>
void dataVectorViewAsELV (const std::false_type &, const DV &, std::vector< ElementLink< DV > > &, IProxyDict *)
 Helper for dataVectorViewAsELV.
template<class DV>
std::vector< ElementLink< DV > > dataVectorAsELV (const DV &v, IProxyDict *store=0)
 Helper to make a vector<EL> from a DataVector.
void throwExcNonowningContainer ()
 Throw a SG::ExcNonowningContainer exception.
void throwExcUnknownAuxItem (const std::string &name, const std::string &clsname="", const std::type_info *typ=0)
 Throw a SG::ExcUnknownAuxItem exception.
void throwExcViewVectorNotView ()
 Throw a SG::ExcViewVectorNotView exception.
void throwExcMissingViewVectorCLID (const std::type_info &ti)
 Throw a SG::ExcMissingViewVectorCLID exception.
void throwExcMissingBaseInfo (const std::type_info &ti)
 Throw a SG::ExcMissingBaseInfo exception.
void throwExcAllocOwnership ()
 Throw a SG::ExcAllocOwnership exception.
void throwJaggedVecOverlappingCopy ()
 Throw a SG::ExcJaggedVecOverlappingCopy exception.
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).
void copyAuxStoreThinned (const SG::IConstAuxStore &orig, SG::IAuxStore &copy, const SG::ThinningInfo *info)
 Helper to copy an aux store while applying thinning.
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.
template<class CONTAINER>
std::unique_ptr< CONTAINER > copyThinned (CONTAINER &orig, const SG::ThinningInfo *info)
 Helper to copy an object while applying thinning.
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.
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.
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.
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.
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.
template<class T, typename std::enable_if_t< is_xAODInterfaceObject_v< T > > * = nullptr>
bool constexpr xAODInterfaceSupportingThinning ()
template<class T, typename std::enable_if_t< is_xAODStoreObject_v< T > > * = nullptr>
bool constexpr xAODStoreSupportingThinning ()
void writePackedParameters (TBuffer &b, const SG::PackedParameters &parms)
 Write a set of packed parameters to a buffer.
SG::PackedParameters readPackedParameters (TBuffer &b)
 Read a set of packed parameters from a buffer.
void ViewVectorBaseStreamerFunc (TBuffer &b, void *p)
std::string excFormatName (SG::auxid_t auxid)
 Helper: format an aux data item name.
std::string excNoAuxStore_format (SG::auxid_t auxid)
 Helper: format exception error string.
std::string excNoAuxStore_format (const char *op)
 Helper: format exception error string.
std::string excBadAuxVar_format (SG::auxid_t auxid)
 Helper: format exception error string.
std::string excConstAuxData_format (const std::string &op, SG::auxid_t auxid)
 Helper: format exception error string.
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.
std::string excInsertionInBaseClass_format (const char *op, const std::type_info &base_type, const std::type_info &complete_type)
 Helper: format exception error string.
std::string excStoreLocked_format (SG::auxid_t auxid)
 Helper: format exception error string.
std::string excStoreLocked_format (const char *op)
 Helper: format exception error string.
std::string excUnknownAuxItem_format (const std::string &name, const std::string &clsname, const std::type_info *typ)
 Helper: format exception error string.
std::string excDVToELV_format (const std::string &detail)
 Helper: format exception error string.
std::string excFormatFlags (SG::AuxVarFlags flags)
 Helper: format flags.
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.
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.
std::string excNoLinkedVar_format (SG::auxid_t auxid, const std::type_info &type)
 Helper: format exception error string.
std::string excInvalidThinningTarget_format (unsigned int clid, const std::string &key)
 Helper: format exception error string.
std::string excBadVarName_format (const std::string &name)
 Helper: format exception error string.
std::string excJaggedVecOverlappingCopy_format ()
 Helper: format exception error string.
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.
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.
TClass * getClassIfDictionaryExists (const std::string &cname)
 Look up a TClass given a name.
template<typename T>
DataObject * asStorable (SG::DataObjectSharedPtr< T > pObject)
const SG::ThinningCachegetThinningCache (const EventContext &ctx)
 Retrieve the current thinning cache from the event context.
const SG::ThinningCachegetThinningCache ()
 Retrieve the current thinning cache from the current event context.
const SG::ThinningInfogetThinningInfo (const EventContext &ctx, const std::string &key)
 Retrieve the current thinning information for key.
const SG::ThinningInfogetThinningInfo (const std::string &key)
 Retrieve the current thinning information for key.
const SG::ThinningDecisionBasegetThinningDecision (const EventContext &ctx, const std::string &key)
 Retrieve the current thinning decision for key.
const SG::ThinningDecisionBasegetThinningDecision (const std::string &key)
 Retrieve the current thinning decision for key.
const SG::ThinningDecisionBasegetThinningDecision (const EventContext &ctx, const sgkey_t sgkey)
 Retrieve the current thinning decision for sgkey.
const SG::ThinningDecisionBasegetThinningDecision (const sgkey_t sgkey)
 Retrieve the current thinning decision for sgkey.
size_t getNSlots ()
 Return the number of event slots.
void setNSlotsHiveMgrName ATLAS_NOT_THREAD_SAFE (const std::string &s)
 Allow setting the name of the whiteboard service.
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, const std::type_info *tinfo=nullptr, bool quiet=false, IRegisterTransient *irt=0, bool isConst=true)
 Try to get the pointer back from a DataObject, converted to be of type clid.
void * Storable_cast (DataObject *pDObj, CLID clid, const std::type_info *tinfo=nullptr, bool quiet=false, IRegisterTransient *irt=0, bool isConst=true)
 Try to get the pointer back from a DataObject, converted to be of type clid.
template<typename T>
DataObject * asStorable (std::unique_ptr< T > pObject)
template<class T>
constexpr CLID safe_clid ()
 Return the class ID of T, or CLID_NULL if it doesn't have one.
void dumpBaseInfo ()
size_t getNSlots_once ()
 Return the number of event slots.
void throwExcInvalidLink (CLID clid, const std::string &key, SG::sgkey_t sgkey)
 Throw a SG::ExcInvalidLink exception.
void throwExcBadForwardLink (size_t index, size_t size, const std::string &name)
 Throw a SG::ExcBadForwardLink exception.
void throwExcElementNotFound (const char *where)
 Throw a SG::ExcElementNotFound exception.
void throwExcInvalidIndex (const char *where)
 Throw a SG::ExcInvalidIndex exception.
void throwExcIndexNotFound (const char *where)
 Throw a SG::ExcIndexNotFound exception.
void throwExcIncomparableEL ()
 Throw a SG::IncomparableEL exception.
void throwExcBadToTransient ()
 Throw a SG::ExcBadToTransient exception.
void throwExcBadThinning (CLID clid, const std::string &key, SG::sgkey_t sgkey)
 Throw a SG::ExcBadThinning exception.
void setDataProxyHolderInputRenameMap ATLAS_NOT_THREAD_SAFE (const Athena::IInputRename::InputRenameRCU_t *map)
 Set map used for performing input renaming in toTransient.
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.
void AthLinks_error ()
 For setting debugger breakpoints.
std::string excPointerNotInSG_format (const void *pointer)
 Helper: format exception error string.
std::string excCLIDMismatch_format (CLID obj_clid, CLID link_clid)
 Helper: format exception error string.
std::string excInvalidLink_format (CLID clid, const std::string &key, SG::sgkey_t sgkey)
 Helper: format exception error string.
std::string excBadForwardLink_format (size_t index, size_t size, const std::string &name)
 Helper: format exception error string.
std::string excConstStorable_format (CLID clid, const std::string &key, SG::sgkey_t sgkey)
 Helper: format exception error string.
std::string excBadThinning_format (CLID clid, const std::string &key, SG::sgkey_t sgkey)
 Helper: format exception error string.
std::ostream & operator<< (std::ostream &out, const VarHandleBase &o)
 Return the name of the store holding the object we are proxying.
bool operator== (const VarHandleBase &l, const VarHandleBase &r)
 Equality comparison.
bool operator!= (const VarHandleBase &l, const VarHandleBase &r)
 Inequality comparison.
constexpr bool sgkeyEqual (const sgkey_t a, const sgkey_t b)
 Compare two sgkeys for equality.
constexpr bool sgkeyLess (const sgkey_t a, const sgkey_t b)
 Compare two sgkeys for ordering.
constexpr uint32_t sgkeyShort (const sgkey_t k)
 Convert a sgkey to the 32-bit form used for older data.
template<typename DATA>
DATA * DataProxy_cast (DataProxy *proxy)
 cast the proxy into the concrete data object it proxies
template<typename DATA>
DATA DataProxy_cast (const DataProxy &proxy)
 const ref version of the cast.
void * DataProxy_cast (DataProxy *proxy, CLID clid, const std::type_info *tinfo=nullptr)
 Try to get the pointer back from a DataProxy, converted to be of type clid.
void throwExcBadDataProxyCast (const DataProxy &proxy, const std::type_info &tid)
 Throw an ExcBadDataProxyCast exception.
std::ostream & operator<< (std::ostream &ost, const SG::VersionedKey &k)
IOpaqueAddress *TransientAddress::address ATLAS_NOT_CONST_THREAD_SAFE () const
 Retrieve IOpaqueAddress.
bool isTransientKey (const std::string &key)
 Test to see if a key is transoent.
std::string transientKey (const std::string &key)
 Make a key transient.
std::string excBadDataProxyCast_format (CLID id, const std::type_info &tid)
 Helper: Format exception string.
std::string excProxyCollision_format (CLID id, const std::string &key, CLID primary_id, const std::string &primary_key)
 Helper: Format exception string.
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.
std::string contKeyFromKey (const std::string &key)
 Extract the container part of key.
std::string decorKeyFromKey (const std::string &key, const std::string &deflt)
 Extract the decoration part of key.
std::string makeContDecorKey (const std::string &cont, const std::string &decor)
 Make a StoreGate key from container and decoration name.
std::string makeContDecorKey (const VarHandleKey &contKey, const std::string &key)
 Make a StoreGate key from container and decoration.
void removeContFromDecorKey (const VarHandleKey &contKey, std::string &key)
 Remove container name from decoration key.
void throwExcNullHandleKey ()
 Throw a SG::ExcNullHandleKey exception.
std::string excHandleInitError_format (CLID clid, const std::string &sgkey, const std::string &storename)
 Helper: format exception error string.
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.
std::string excConstObject_format (CLID clid, const std::string &sgkey, const std::string &storename)
 Helper: format exception error string.
std::string excNullWriteHandle_format (CLID clid, const std::string &sgkey, const std::string &storename)
 Helper: format exception error string.
void throwExcNullWriteHandle (CLID clid, const std::string &sgkey, const std::string &storename)
 Throw a SG::ExcNullWriteHandle exception.
std::string excNullReadHandle_format (CLID clid, const std::string &sgkey, const std::string &storename)
 Helper: format exception error string.
void throwExcNullReadHandle (CLID clid, const std::string &sgkey, const std::string &storename)
 Throw a SG::ExcNullReadHandle exception.
std::string excNullUpdateHandle_format (CLID clid, const std::string &sgkey, const std::string &storename)
 Helper: format exception error string.
void throwExcNullUpdateHandle (CLID clid, const std::string &sgkey, const std::string &storename)
 Throw a SG::ExcNullUpdateHandle exception.
std::string excNonConstHandleKey_format (CLID clid, const std::string &sgkey, const std::string &storename)
 Helper: format exception error string.
void throwExcNonConstHandleKey (CLID clid, const std::string &sgkey, const std::string &storename)
 Throw a SG::ExcNonConstHandleKey exception.
std::string excBadContext_format (const EventContext &ctx, const std::string &key)
 Helper: format exception error string.
std::string excNoCondCont_format (const std::string &key, const std::string &why)
 Helper: format exception error string.
std::string excBadDecorElement_format (Gaudi::DataHandle::Mode mode, CLID clid, const std::string &decorKey)
 Helper: format exception error string.
void throwExcBadDecorElement (Gaudi::DataHandle::Mode mode, CLID clid, const std::string &decorKey)
 Throw a SG::ExcBadDecorElement exception.
void ReadCondHandleNotFound (const CondContBase &cc, const EventIDBase &eid, const std::string &key)
 Report a conditions container lookup failure.
template<class T>
SG::ReadCondHandle< T > makeHandle (const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
template<class T>
const T * get (const ReadCondHandleKey< T > &key, const EventContext &ctx)
 Convenience function to retrieve an object given a ReadCondHandleKey.
template<class T>
StatusCode get (const T *&ptr, const ReadCondHandleKey< T > &key, const EventContext &ctx)
 Convenience function to retrieve an object given a ReadCondHandleKey.
template<class D, class T>
ReadDecorHandle< T, D > makeHandle (const ReadDecorHandleKey< T > &key)
 Return a ReadDecorHandle referencing key.
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.
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.
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.
template<class T>
ReadHandle< T > makeHandle (const ReadHandleKey< T > &key, const EventContext &ctx)
 Return a ReadHandle referencing key for an explicit context.
template<class T>
const T * get (const ReadHandleKey< T > &key)
 Convenience function to retrieve an object given a ReadHandleKey.
template<class T>
const T * get (const ReadHandleKey< T > &key, const EventContext &ctx)
 Convenience function to retrieve an object given a ReadHandleKey.
template<class T>
StatusCode get (const T *&ptr, const ReadHandleKey< T > &key, const EventContext &ctx)
 Convenience function to retrieve an object given a ReadHandleKey.
template<class T>
ThinningHandle< T > makeHandle (const ThinningHandleKey< T > &key)
 Return a ThinningHandle referencing key.
template<class T>
ThinningHandle< T > makeHandle (const ThinningHandleKey< T > &key, const EventContext &ctx)
 Return a ThinningHandle referencing key for an explicit context.
int simpleStringHash (const std::string &str, int maxInt=0xFFFF)
 simple hash function derived from Sedgewick Algorithms in C++ 3rd ed
template<class T>
UpdateHandle< T > makeHandle (const UpdateHandleKey< T > &key)
 Return an UpdateHandle referencing key.
template<class T>
UpdateHandle< T > makeHandle (const UpdateHandleKey< T > &key, const EventContext &ctx)
 Return an UpdateHandle referencing key for an explicit context.
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.
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.
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.
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.
template<class T>
WriteHandle< T > makeHandle (const WriteHandleKey< T > &key, const EventContext &ctx)
 Return a WriteHandle referencing key for an explicit context.
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

static const int ArenaBlockBodyOffset
 The offset from the start of the block to the first element.
constexpr const char * auxAllocatorNamePrefix = "std::allocator<"
template<class T>
constexpr bool is_xAODInterfaceObject_v
 Test for an xAOD interface class supporting thinning.
template<class T>
constexpr bool is_xAODStoreObject_v
 Test for an xAOD auxiliary store class supporting thinning.
InstallViewVectorBaseStreamer viewVectorBaseStreamerInstance
static const auxid_t null_auxid = static_cast<auxid_t> (-1)
 To signal no aux data item.
static const auxid_t auxid_set_size_hint = 2048
 A hint for how large we should make the auxid bitsets.
const std::string DEFAULTKEY = ""
static constexpr auto s_sgkey_nullval
getDataSourcePointerFunc_tgetDataSourcePointerFunc
static constexpr bool defaultQuiet = false

Detailed Description

Forward declaration.

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

Typedef Documentation

◆ AuxAllocator_t

template<class T>
using SG::AuxAllocator_t = 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 = AuxTypeVectorT<AuxTypeVectorHolder<T, CONT> >

Default type derives directly from AuxTypeVectorHolder.

Definition at line 381 of file AuxTypeVector.h.

◆ BaseType_t

template<class T>
using SG::BaseType_t = typename SG::BaseType<T>::type

Definition at line 62 of file Bases.h.

◆ CompressionInfo

using SG::CompressionInfo = 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.

◆ ConcurrentSGKeyMap

template<class T>
using SG::ConcurrentSGKeyMap
Initial value:
sgkey_t, T,
Hash map from integers/pointers allowing concurrent, lockless reads.
Simple (non-deleting) Updater implementation.
uint32_t sgkey_t
Type used for hashed StoreGate key+CLID pairs.
Definition sgkey_t.h:32
static constexpr auto s_sgkey_nullval
Comparison functional for sgkey_t.
Definition sgkey_t.h:72
Hash functional for sgkey_t.
Definition sgkey_t.h:59

A concurrent map using sgkey_t as key.

Definition at line 29 of file sgkey_utilities.h.

◆ ConstProxyIterator

typedef ProxyMap::const_iterator SG::ConstProxyIterator

Definition at line 24 of file ProxyMap.h.

◆ DataObjectSharedPtr

◆ DecorHandleKeyArray

template<class T_Handle, class T_HandleKey, Gaudi::DataHandle::Mode MODE>
using SG::DecorHandleKeyArray = 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 34 of file DataProxy.cxx.

◆ JaggedVecVector

template<class T, class ALLOC = AuxAllocator_t<JaggedVecElt<T> >>
using SG::JaggedVecVector = 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 = 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 = PackedLinkVectorT<PackedLinkVVectorHolder<CONT, VALLOC, VELT, ALLOC> >

Definition at line 277 of file PackedLinkVector.h.

◆ ProxyIterator

typedef ProxyMap::iterator SG::ProxyIterator

Definition at line 23 of file ProxyMap.h.

◆ ProxyMap

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

Definition at line 22 of file ProxyMap.h.

◆ ReadCondHandleKeyArray

template<class T>
using SG::ReadCondHandleKeyArray = 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 = DecorHandleKeyArray<ReadDecorHandle<T, S>, ReadDecorHandleKey<T>, Gaudi::DataHandle::Reader >

◆ ReadHandleKeyArray

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

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

◆ SelectionVetoes

using SG::SelectionVetoes = 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 sgkey_t.h.

◆ SGKeyMap

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

A map using sgkey_t as a key.

Definition at line 93 of file sgkey_t.h.

◆ SGKeySet

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

A set of sgkey_t values.

Definition at line 97 of file sgkey_t.h.

◆ SourceID

typedef std::string SG::SourceID

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

◆ ThinningHandleKeyArray

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

Definition at line 28 of file ThinningHandleKeyArray.h.

◆ WPtr

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

Definition at line 15 of file SGWPtr.h.

◆ WriteCondHandleKeyArray

template<class T>
using SG::WriteCondHandleKeyArray = 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 = DecorHandleKeyArray<WriteDecorHandle<T, S>,WriteDecorHandleKey<T>, Gaudi::DataHandle::Writer >

◆ WriteHandleKeyArray

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

Definition at line 32 of file WriteHandleKeyArray.h.

Enumeration Type Documentation

◆ AllowEmptyEnum

Enumerator
AllowEmpty 

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

26 {
27 AllowEmpty = 1
28};

◆ 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};
@ SkipNameCheck
Definition AuxTypes.h:81
@ Atomic
Mark that this variable should only be accessed atomically.
Definition AuxTypes.h:70
@ Linked
Mark that this variable is linked to another one.
Definition AuxTypes.h:77
@ ATH_BITMASK
Enable bitwise functions on this enum; see bitmask.h.
Definition AuxTypes.h:84
@ None
No special flags set.
Definition AuxTypes.h:60

◆ 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};
@ 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.
@ DEFAULT_TRACK_INDICES
Default value.

◆ OwnershipPolicy

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 {
19 };
@ OWN_ELEMENTS
this data object owns its elements
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts

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 >()

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

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 53 of file ArenaPoolAllocator.cxx.

55{
56 // If we haven't yet reached the start of this block, move the iterator
57 // back one.
58 if (base > block->index(0,0)) {
59 return base - block->eltSize();
60 }
61
62 // Move to the previous block.
63 block = block->link();
64 if (block) {
65 return block->index (block->size()-1, block->eltSize());
66 }
67 return nullptr;
68}
pointer index(size_t i)
Return a pointer to element i in the block.
ArenaBlock *& link()
Return the link pointer of the block.
size_t eltSize() const
Return the size of the elements in the block.
size_t size() const
Return the number of elements in the block.
std::string base
Definition hcg.cxx:81

◆ 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 28 of file ArenaPoolAllocator.cxx.

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

◆ asStorable() [1/3]

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

Definition at line 31 of file DataObjectSharedPtr.h.

31 {
32 typedef typename DataBucketTrait<T>::type bucket_t;
33 return new bucket_t (pObject.get());
34}
T * get()
Get the pointer.
typename std::conditional_t< has_base, deflt, recurse >::type type

◆ asStorable() [2/3]

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

Definition at line 159 of file StorableConversions.h.

159 {
160 typedef typename std::remove_const<T>::type T_nc;
161 typedef typename DataBucketTrait<T_nc>::type bucket_t;
162 return new bucket_t (std::move(pObject));
163 }

◆ asStorable() [3/3]

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

Definition at line 153 of file StorableConversions.h.

153 {
154 typedef typename DataBucketTrait<T>::type bucket_t;
155 return new bucket_t (pObject);
156 }

◆ 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 199 of file TransientAddress.h.

200 {
201 IOpaqueAddress* addr ATLAS_THREAD_SAFE = const_cast<IOpaqueAddress*> (m_address.get());
202 return addr;
203 }
#define ATLAS_THREAD_SAFE

◆ ATLAS_NOT_THREAD_SAFE() [1/2]

void setDataProxyHolderInputRenameMap SG::ATLAS_NOT_THREAD_SAFE ( const Athena::IInputRename::InputRenameRCU_t * map)

Set map used for performing input renaming in toTransient.

Parameters
mapThe new map, or nullptr for no renmaing.

Definition at line 617 of file DataProxyHolder.cxx.

619{
620 s_inputRenameMap = map;
621}
STL class.

◆ 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.

Definition at line 64 of file DataProxy_cast.h.

65{
66 const DATA* result = SG::DataProxy_cast<DATA>(&proxy);
67 if (!result) SG::throwExcBadDataProxyCast(proxy, typeid(DATA));
68 return *result;
69}
void throwExcBadDataProxyCast(const DataProxy &proxy, const std::type_info &tid)
Throw an ExcBadDataProxyCast exception.
DATA * DataProxy_cast(DataProxy *proxy)
cast the proxy into the concrete data object it proxies

◆ DataProxy_cast() [2/3]

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

cast the proxy into the concrete data object it proxies

use optional>

Definition at line 53 of file DataProxy_cast.h.

53 {
54 typedef typename std::remove_const<DATA>::type DATA_nc;
56
57 return static_cast<DATA*>(DataProxy_cast (proxy, ClassID_traits<DATA>::ID(),
58 &typeid(DATA_nc)));
59}
static void init()
Initialization hook. A no-op by default.

◆ DataProxy_cast() [3/3]

void * SG::DataProxy_cast ( SG::DataProxy * proxy,
CLID clid,
const std::type_info * tinfo = nullptr )

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 nullptr on failure,

Definition at line 616 of file DataProxy.cxx.

617{
618 if (nullptr == proxy || !proxy->isValid()) {
619 return nullptr;
620 }
621
622 DataObject* pObject = proxy->accessData();
623 if (nullptr == pObject) {
624#ifndef NDEBUG
625 MsgStream gLog(Athena::getMessageSvc(), "SG::DataProxy_cast");
626 gLog << MSG::WARNING
627 << "this proxy " << MSG::hex << proxy
628 << MSG::dec << " has a NULL data object ptr" << endmsg;
629#endif
630 return nullptr;
631 }
632
633 void* result = SG::Storable_cast (pObject, clid, tinfo, true, proxy, proxy->isConst());
634 if (nullptr == result) {
635 //if result is null, probably CLID is neither the type the object was
636 // stored with, nor it inherits from it.
637 // Before giving up let's check its transient CLIDs
638 DataBucketBase* db(0);
639 if (proxy->transientID(clid) &&
640 nullptr != (db = dynamic_cast<DataBucketBase*>(pObject)) )
641 {
642 //it is a symlink after all. Let's hard cast and keep our fingers Xed
643 // But first: if this is a non-const proxy, then the cast
644 // may have failed because it needed to go via a copying conversion
645 // that's not allowed for non-const objects. So try the conversion
646 // again as const; if that works, then don't do the hard cast.
647 if (!proxy->isConst() &&
648 SG::Storable_cast(pObject, clid, tinfo, true, proxy, true) != nullptr)
649 {
650#ifndef NDEBUG
651 MsgStream gLog(Athena::getMessageSvc(), "SG::DataProxy_cast");
652 gLog << MSG::WARNING
653 << "Request for a non-const object via copying conversion; "
654 << "requested CLID = " << clid
655 << ", proxy primary ID is " << proxy->clID() << endmsg ;
656#endif
657 }
658 else {
659 // ok, hard cast.
660 result = db->object();
661 }
662 }
663 else {
664#ifndef NDEBUG
665 MsgStream gLog(Athena::getMessageSvc(), "SG::DataProxy_cast");
666 gLog << MSG::WARNING
667 << "Request for an invalid object; requested CLID = "
668 << clid
669 << ", proxy primary ID is " << proxy->clID() << endmsg ;
670#endif
671 } //try symlink
672 } //result 0
673
674 return result;
675}
#define endmsg
IMessageSvc * getMessageSvc(bool quiet=false)
T * Storable_cast(DataObject *pDObj, bool quiet=true, IRegisterTransient *irt=0, bool isConst=true)

◆ 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
98 if (!store) store = SG::CurrentEventStore::store();
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 {
108 dataVectorViewAsELV (typename AuxStore_traits<DV>::flag(), v, ret, store);
109 }
110
111 return ret;
112}
static Double_t sz
static IProxyDict * store()
Fetch the current store.
void dataVectorViewAsELV(const std::true_type &, const DV &v, std::vector< ElementLink< DV > > &ret, IProxyDict *store)
Helper for dataVectorViewAsELV.

◆ 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}
Exception — Can't convert DataVector to vector of ElementLinks.

◆ 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}
Manage lookup of vectors of auxiliary data.

◆ decorKeyFromKey()

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

Extract the decoration part of key.

Parameters
keyThe decoration handle key.

Given a key of the form CCC.DDD, returns the decoration part, DDD or deflt if no decoration key is found.

Definition at line 42 of file DecorKeyHelpers.cxx.

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

◆ dumpBaseInfo()

void SG::dumpBaseInfo ( )

Definition at line 736 of file BaseInfo.cxx.

737{
738 BaseInfoBaseImpl::lock_t lock (BaseInfoBaseImpl::s_mutex);
739 std::cout << "map:\n";
740 if (BaseInfoBaseImpl::s_bi_by_ti) {
741 std::vector<const std::type_info*> vv;
742 for (const auto& x : *BaseInfoBaseImpl::s_bi_by_ti)
743 vv.push_back (x.first);
744 std::sort (vv.begin(), vv.end());
745 for (const std::type_info* ti : vv)
746 {
747 const BaseInfoBase* bib = (*BaseInfoBaseImpl::s_bi_by_ti)[ti];
748 std::cout << ti << " " << bib->clid() << " [" << System::typeinfoName (*ti)
749 << "]\n";
750 }
751 }
752
753 std::cout << "\ninitlist:\n";
754 if (BaseInfoBaseImpl::s_init_list) {
755 for (const auto& x : *BaseInfoBaseImpl::s_init_list)
756 std::cout << x.first << " " << x.second << " ["
757 << System::typeinfoName (*x.first) << "]\n";
758 }
759}
#define x
The non-template portion of the BaseInfo implementation.
CLID clid() const
Return the CLID for this class.
Definition BaseInfo.cxx:141
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.
std::lock_guard< mutex_t > lock_t
Definition BaseInfo.cxx:101

◆ 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}
std::string excFormatName(SG::auxid_t auxid)
Helper: format an aux data item name.

◆ 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 23 of file Control/SGTools/src/exceptions.cxx.

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

◆ 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: ";
457 if (mode == Gaudi::DataHandle::Writer)
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}
Definition index.py:1

◆ 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}
std::string excFormatFlags(SG::AuxVarFlags flags)
Helper: format flags.

◆ 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;
472 if (flags & SG::AuxVarFlags::Atomic)
473 out = "atomic";
474 if (flags & SG::AuxVarFlags::Linked) {
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}
Handle mappings between names and auxid_t.
static AuxTypeRegistry & instance()
Return the singleton registry instance.
int r
Definition globals.cxx:22
static const auxid_t null_auxid
To signal no aux data item.
Definition AuxTypes.h:30

◆ 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}

◆ 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 67 of file Control/SGTools/src/exceptions.cxx.

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

◆ 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 103 of file Control/SGTools/src/exceptions.cxx.

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

◆ 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/4]

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}
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11

◆ findInContainer() [2/4]

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() [3/4]

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}
bool findInContainer(const CaloCellContainer &data, CaloCell const *const &element, CaloCellContainer::size_type &index)

◆ findInContainer() [4/4]

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,
const std::type_info * tinfo = nullptr,
bool quiet = false,
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.
tinfotype_info for the object being converted (optional).
quietIf true, suppress warning messages.
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 35 of file StorableConversions.cxx.

40{
41 //check inputs
42 if (0 == pDObj) {
43 MsgStream gLog(Athena::getMessageSvc(), "SG::fromStorable");
44 gLog << MSG::WARNING << "null input pointer " << endmsg;
45 return nullptr;
46 }
47
48 // get T* from DataBucket:
49 // All objects in the event store nowadays are instances
50 // of DataBucket, so just do a static_cast.
51 DataBucketBase* b = static_cast<DataBucketBase*>(pDObj);
52 // Use BaseInfo information to convert pointers.
53
54 void* ret = nullptr;
55 if (tinfo)
56 ret = b->cast (clid, *tinfo, irt, isConst);
57 else
58 ret = b->cast (clid, irt, isConst);
59 if (!quiet && !ret) {
60 const std::type_info* tid = CLIDRegistry::CLIDToTypeinfo (clid);
61 MsgStream gLog(Athena::getMessageSvc(), "SG::fromStorable");
62 gLog << MSG::WARNING
63 << "can't convert stored DataObject " << pDObj
64 << " to type ("
65 << (tid ? System::typeinfoName (*tid) : "[unknown]")
66 << ")\n Unless you are following a symlink,"
67 << " it probably means you have a duplicate "
68 << "CLID = " << pDObj->clID()
69 << endmsg;
70 }
71 return ret;
72}
static const std::type_info * CLIDToTypeinfo(CLID clid)
Translate between CLID and type_info.
A non-templated base class for DataBucket, allows to access the transient object address as a void*.

◆ 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 169 of file StorableConversions.h.

173 {
174 typedef typename std::remove_const<T>::type T_nc;
176
177 pTrans = static_cast<T*> (fromStorable (pDObj, ClassID_traits<T_nc>::ID(),
178 &typeid(T_nc),
179 quiet, irt, isConst));
180 return pTrans != nullptr;
181}
bool fromStorable(DataObject *pDObj, T *&pTrans, bool quiet=false, IRegisterTransient *irt=0, bool isConst=true)

◆ get() [1/5]

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

Convenience function to retrieve an object given a ReadCondHandleKey.

Parameters
keyThe key to retrieve.
ctxThe event context.

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

Definition at line 283 of file ReadCondHandle.h.

285 {
286 if (key.key().empty()) return nullptr;
287 try {
288 ReadCondHandle<T> h (key, ctx);
289 return h.cptr();
290 }
291 catch (SG::ExcNoCondCont&) {
292 return nullptr;
293 }
294 }
Header file for AthHistogramAlgorithm.
Exception — Can't retrieve CondCont from ReadCondHandle.

◆ get() [2/5]

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() [3/5]

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.

◆ get() [4/5]

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

Convenience function to retrieve an object given a ReadCondHandleKey.

Parameters
ptrPointer to the retrieved object.
keyThe key to retrieve.

In case of error, sets ptr to nullptr and returns FAILURE. In case of an empty key, sets ptr to nullptr and returns SUCCESS.

Definition at line 306 of file ReadCondHandle.h.

309 {
310 ptr = get(key, ctx);
311 return (ptr || key.empty()) ? StatusCode::SUCCESS : StatusCode::FAILURE;
312 }
const T * get(const ReadCondHandleKey< T > &key, const EventContext &ctx)
Convenience function to retrieve an object given a ReadCondHandleKey.

◆ get() [5/5]

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

Convenience function to retrieve an object given a ReadHandleKey.

Parameters
ptrPointer to the retrieved object.
keyThe key to retrieve.

In case of error, sets ptr to nullptr and returns FAILURE. In case of an empty key, sets ptr to nullptr and returns SUCCESS.

◆ 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{
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}
static bool isLinkedName(const std::string &name)
Test if a variable name corresponds to a linked variable.
Interface for factory objects that create vectors.
virtual const std::type_info * tiAlloc() const =0
Return the type_info of the vector allocator.
AuxVarFlags
Additional flags to qualify an auxiliary variable.
Definition AuxTypes.h:58
TClass * getClassIfDictionaryExists(const std::string &cname)
Look up a TClass given a name.
size_t auxid_t
Identifier for a particular aux data item.
Definition AuxTypes.h:27
MsgStream & msg
Definition testRead.cxx:32

◆ 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}
size_t getNSlots_once()
Return the number of event slots.

◆ 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}
const SG::ThinningCache * getThinningCache()
Retrieve the current thinning cache from the current event context.

◆ 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}
const SG::ThinningCache * thinningCache() const
const ExtendedEventContext & getExtendedEventContext(const EventContext &ctx)
Retrieve an extended context from a context object.

◆ 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}
Cache thinning decisions for converters.
const SG::ThinningCache * getThinningCache(const EventContext &ctx)
Retrieve the current thinning cache from the event context.

◆ 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}
const SG::ThinningDecisionBase * getThinningDecision(const EventContext &ctx, const std::string &key)
Retrieve the current thinning decision for key.

◆ 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}
const SG::ThinningInfo * getThinningInfo(const EventContext &ctx, const std::string &key)
Retrieve the current thinning information for key.

◆ isTransientKey()

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

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 213 of file copyAuxStoreThinned.cxx.

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

◆ 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 59 of file DecorKeyHelpers.cxx.

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

◆ 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. Returns an empty string if key is empty.

Definition at line 77 of file DecorKeyHelpers.cxx.

78{
79 if (key.empty() || key.ends_with ('+')) {
80 return "";
81 }
82 if (key.find('.') != std::string::npos) {
83 throw SG::ExcBadHandleKey(key + " (DecorHandleKey has been declared with a parent container. "
84 "Its value should not contain any container name.)");
85 }
86
87 // Note: VHK::fullKey().key() contains the store prefix, key() does not.
88 return makeContDecorKey( contKey.fullKey().key(), key);
89}
Exception — Bad key format for VarHandleKey.
const std::string & key() const
Return the StoreGate ID for the referenced object.
std::string makeContDecorKey(const std::string &cont, const std::string &decor)
Make a StoreGate key from container and decoration name.

◆ 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);
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())

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 317 of file WriteCondHandle.h.

318 {
319 return SG::WriteCondHandle<T>(key, ctx);
320 }

◆ 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 135 of file ThinningHandle.h.

136{
137 return ThinningHandle<T> (key);
138}
Handle for requesting thinning for a data object.

◆ 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 153 of file ThinningHandle.h.

155{
156 return ThinningHandle<T> (key, ctx);
157}

◆ 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 60 of file copyAuxStoreThinned.cxx.

64{
65 size_t size = orig.size();
66 if (size == 0) {
67 copy.resize(0);
68 return;
69 }
70
71 const ThinningDecisionBase* dec = info ? info->m_decision : nullptr;
72
73 size_t nremaining = dec ? dec->thinnedSize() : size;
74 if( nremaining == 0) {
75 copy.resize(0);
76 return;
77 }
78
79 // Access the auxiliary type registry:
80 SG::AuxTypeRegistry& r = SG::AuxTypeRegistry::instance();
81
82 // The auxiliary IDs that the original container has:
83 SG::auxid_set_t auxids = orig.getAuxIDs();
84 SG::auxid_set_t decors = orig.getDecorIDs();
85
86 SG::auxid_set_t dyn_auxids;
87 SG::auxid_set_t sel_auxids;
88 if (const IAuxStoreIO* iio = dynamic_cast<const IAuxStoreIO*> (&orig)) {
89 dyn_auxids = iio->getDynamicAuxIDs();
90 sel_auxids = iio->getSelectedAuxIDs();
91 }
92
93 SG::auxid_set_t new_auxids = copy.getAuxIDs();
94
95 copy.resize (nremaining);
96
97 // Loop over all the variables of the original container:
98 for (SG::auxid_t auxid : auxids) {
99 // Skip null auxids (happens if we don't have the dictionary)
100 if(auxid == SG::null_auxid) continue;
101
102 // Skip linked variables (they'll be handled when we copy the variable
103 // from which they're linked).
104 if (r.isLinked (auxid)) continue;
105
106 // Skip non-selected dynamic variables.
107 // Handle variable vetoes requested via ThinningInfo.
108 // We want to allow vetoing a variable if it's defined
109 // as a dynamic variable in the source source, or if it doesn't
110 // exist in the destination source (in which case it will be
111 // dynamic there). The latter case happens for example when
112 // we save a static store object as the AuxContainerBaseClass
113 // in order to make all variables dynamic.
114 if (dyn_auxids.test(auxid) || !new_auxids.test(auxid)) {
115 if (info) {
116 if (info->vetoed(auxid)) continue;
117 }
118 }
119
120 // Also check for a veto requested through the store selection interface.
121 // (But this shouldn't really be used anymore.)
122 if (dyn_auxids.test(auxid) && !sel_auxids.test(auxid)) {
123 continue;
124 }
125
126 // Access the source variable:
127 const void* src = orig.getData (auxid);
128
129 if (!src) continue;
130
131 // Warn if this is a decoration --- decorations should have been locked
132 // by now, except for mcEventWeights, for which this is expected.
133 if (decors.test (auxid) && r.getName (auxid) != "mcEventWeights") {
134 std::ostringstream ss;
135 ss << "unlocked decoration " << r.getName(auxid)
136 << " (" << auxid << ") in object of type "
137 << AthContainers_detail::typeinfoName (typeid (orig));
138 ATHCONTAINERS_WARNING("copyAuxStoreThinned", ss.str());
139 }
140
141 // FIXME: Do this via proper interfaces.
142 if (const IAuxStoreIO* iio = dynamic_cast<const IAuxStoreIO*> (&orig))
143 {
144 const std::type_info* typ = iio->getIOType (auxid);
145 if (strstr (typ->name(), "PackedContainer") != nullptr) {
146 // This cast gets a warning from the undefined behavior sanitizer
147 // in gcc6. Done like this deliberately for now, so suppress ubsan
148 // checking for this function.
149 const PackedParameters& parms =
150 reinterpret_cast<const PackedContainer<int>* > (iio->getIOData (auxid))->parms();
151 copy.setOption (auxid, AuxDataOption ("nbits", parms.nbits()));
152 copy.setOption (auxid, AuxDataOption ("float", parms.isFloat()));
153 copy.setOption (auxid, AuxDataOption ("signed", parms.isSigned()));
154 copy.setOption (auxid, AuxDataOption ("rounding", parms.rounding()));
155 copy.setOption (auxid, AuxDataOption ("nmantissa", parms.nmantissa()));
156 copy.setOption (auxid, AuxDataOption ("scale", parms.scale()));
157 }
158 }
159
160 // Get the element size, type name and compression info for the current auxid
161 // This information is later passed to the helper function lossyFloatCompress
162 const size_t eltSize{ r.getEltSize(auxid) };
163 const std::string typeName{ r.getTypeName(auxid) };
164 const unsigned int nmantissa{ info != nullptr ? info->compression(auxid) : 0 };
165
166 // Create the target variable:
167 void* dst = copy.getData (auxid, nremaining, nremaining);
168
169 // Also create a linked variable if needed.
170 SG::auxid_t linked_auxid = r.linkedVariable (auxid);
171 if (linked_auxid != null_auxid) {
172 const IAuxTypeVector* v = orig.linkedVector (auxid);
173 if (v) {
174 size_t sz = v->size();
175 copy.getData (linked_auxid, 0, sz);
176 }
177 }
178
179 TempInterface srciface (orig.size());
180 srciface.setStore (&orig);
181 TempInterface dstiface (copy.size());
182 dstiface.setStore (&copy);
183
184 // Copy over all elements.
185 if (nremaining == size) {
186 // No thinning.
187 r.copyForOutput (auxid, dstiface, 0, srciface, 0, size);
188 }
189 else {
190 // Some elements are thinned.
191 for (std::size_t isrc = 0, idst = 0; isrc < size; ++isrc) {
192 if (!dec || !dec->thinned(isrc)) {
193 r.copyForOutput (auxid, dstiface, idst, srciface, isrc, 1);
194 ++idst;
195 }
196 }
197 }
198 // Apply lossy float compression here (in-place).
199 // Maybe it would be better to do this via the registry during copy.
200 lossyFloatCompress(dst, 0, nremaining, eltSize, typeName, nmantissa);
201 }
202}
static Double_t ss
bool test(bit_t bit) const
Test to see if a bit is set.
Hold information about an option setting request.
Interface providing I/O for a generic auxiliary store.
Definition IAuxStoreIO.h:44
Abstract interface for manipulating vectors of arbitrary types.
virtual const SG::auxid_set_t & getDecorIDs() const =0
Return a set of identifiers for decorations in this store.
virtual const IAuxTypeVector * linkedVector(SG::auxid_t) const
Return interface for a linked variable.
virtual const SG::auxid_set_t & getAuxIDs() const =0
Return a set of identifiers for existing data items in this store.
virtual const void * getData(SG::auxid_t auxid) const =0
Return the data vector for one aux data item.
virtual size_t size() const =0
Return the number of elements in the store.
Container to hold aux data to be stored in a packed form.
const PackedParameters & parms() const
Return the packing parameters for this container.
Describe how the contents of a PackedContainer are to be saved.
#define ATHCONTAINERS_WARNING(ctx, msg)
Definition error.h:57
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.
bool copy
Definition calibdata.py:26

◆ 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}
AthContainers_detail::mutex mutex_t
Mutex type for multithread synchronization.
A set of transformation rules to use with ClassName.
std::string apply(const std::string &name) const
Apply transformations to a class name.

◆ null_arena_deleter()

void SG::null_arena_deleter ( ArenaBase * )

Definition at line 28 of file ArenaHeader.cxx.

28{}

◆ operator!=()

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

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 104 of file ArenaAllocatorBase.cxx.

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

◆ 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 61 of file ArenaAllocatorBase.cxx.

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

◆ 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 )

Return the name of the store holding the object we are proxying.

Output stream.

Output stream.

Parameters
outStream to which to write.
oObject to write.
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 }
virtual const std::string & key() const override final
Return the StoreGate ID for the referenced object.

◆ 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 99 of file DecorKeyHelpers.cxx.

100{
101 // Remove container name from key
102 const std::string toerase = contKey.fullKey().key() + ".";
103 const size_t pos = key.find(toerase);
104 if (pos != std::string::npos) {
105 key.erase(pos, toerase.size());
106 }
107
108}

◆ safe_clid()

template<class T>
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()

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

Compare two sgkeys for equality.

Definition at line 39 of file sgkey_t.h.

40{
41 return a == b;
42}
static Double_t a

◆ sgkeyLess()

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

Compare two sgkeys for ordering.

Definition at line 49 of file sgkey_t.h.

50{
51 return a < b;
52}

◆ sgkeyShort()

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 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 37 of file StorableConversions.h.

39 {
40 T* result;
41 return fromStorable(pDObj, result, quiet, irt, isConst) ? result : 0;
42 }

◆ Storable_cast() [2/2]

void * SG::Storable_cast ( DataObject * pDObj,
CLID clid,
const std::type_info * tinfo = nullptr,
bool quiet = false,
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.
tinfotype_info for the object being converted (optional).
quietIf true, suppress warning messages.
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 88 of file StorableConversions.cxx.

93{
94 return fromStorable (pDObj, clid, tinfo, quiet, irt, isConst);
95}

◆ swap()

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

Definition at line 483 of file ArenaSharedHeapSTLAllocator.h.

484{
485 a.swap (b);
486}

◆ 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}
Exception — Bad allocation ownership.

◆ throwExcBadDataProxyCast()

void SG::throwExcBadDataProxyCast ( const DataProxy & proxy,
const std::type_info & tid )

Throw an ExcBadDataProxyCast exception.

Parameters
proxyThe proxy from which we're trying to cast.
tidType to which we're trying to convert the object.

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

58{
59 throw ExcBadDataProxyCast (proxy.clID(), tid);
60}
Exception — Bad cast of DataProxy with CLID.

◆ 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}
Exception — DecorHandle given an element not in the requested container.

◆ 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}
Exception – Bad thinning request.

◆ 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}
Exception — element not found.

◆ 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}
Exception — incomparable ElementLink.

◆ 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}
Exception — Attempt to get non-const VarHandleKey from non-owning VarHandle.

◆ 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}
Exception — Attempted to insert a unique_ptr to a non-owning container.

◆ 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}
Exception — Attempt to dereference a Read/Write/UpdateHandle with a null key.

◆ 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}
Exception — Deference of read handle failed.

◆ 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}
Exception — Deference of update handle failed.

◆ 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}
Exception — Attempt to dereference write handle before record.

◆ 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}
Exception — ViewVector not in view mode.

◆ throwJaggedVecOverlappingCopy()

void SG::throwJaggedVecOverlappingCopy ( )

Throw a SG::ExcJaggedVecOverlappingCopy exception.

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

691{
693}
Exception — Overlapping copies not implemented for jagged vectors.

◆ transientKey()

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

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}
bool isTransientKey(const std::string &key)
Test to see if a key is transoent.

◆ 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}
Hold the persistent representation for a ViewVector.
virtual void toPersistent()=0
Convert the vector to persistent form.

◆ 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}
bool hasScale() const
Should floats be rescaled before writing?
bool isFloat() const
Are elements being written as floating-point numbers?
uint8_t nbits() const
The number of bits used to store each element.
uint8_t nmantissa() const
The number of bits used for the mantissa portion of a float-point representation, excluding a sign bi...
float scale() const
Return the scale for floating-point numbers.
uint8_t flags() const
Additional flags describing the packing.

◆ xAODInterfaceSupportingThinning()

template<class T, typename std::enable_if_t< is_xAODInterfaceObject_v< T > > * = nullptr>
bool constexpr 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>
bool constexpr SG::xAODStoreSupportingThinning ( )
constexpr

Definition at line 67 of file supportsThinning.h.

67{ return T::supportsThinning; }

Variable Documentation

◆ ArenaBlockBodyOffset

const int SG::ArenaBlockBodyOffset
static
Initial value:
=
A large memory block that gets carved into smaller uniform elements.
Definition ArenaBlock.h:43

The offset from the start of the block to the first element.

Definition at line 254 of file ArenaBlock.h.

◆ auxAllocatorNamePrefix

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

Definition at line 29 of file AuxDataTraits.h.

◆ auxid_set_size_hint

const auxid_t SG::auxid_set_size_hint = 2048
static

A hint for how large we should make the auxid bitsets.

It's best if we don't need to reallocate them later; but on the other hand, we don't want this to be larger than it really needs to be. The largest auxid i saw in a reco job was about 1800, so this is probably good for now.

Definition at line 40 of file AuxTypes.h.

◆ DEFAULTKEY

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

Definition at line 12 of file DefaultKey.h.

◆ defaultQuiet

bool SG::defaultQuiet = false
staticconstexpr

Definition at line 45 of file StoreGate/StoreGate/VarHandleBase.h.

◆ getDataSourcePointerFunc

getDataSourcePointerFunc_t* SG::getDataSourcePointerFunc
extern

◆ is_xAODInterfaceObject_v

template<class T>
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>
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.

◆ null_auxid

const auxid_t SG::null_auxid = static_cast<auxid_t> (-1)
static

To signal no aux data item.

Definition at line 30 of file AuxTypes.h.

◆ s_sgkey_nullval

auto SG::s_sgkey_nullval
staticconstexpr
Initial value:
=
uintptr_t ConcurrentHashmapVal_t
Type used for keys and values — an unsigned big enough to hold a pointer.

Definition at line 24 of file sgkey_utilities.h.

◆ viewVectorBaseStreamerInstance

InstallViewVectorBaseStreamer SG::viewVectorBaseStreamerInstance

Definition at line 53 of file ViewVectorBaseStreamer.cxx.