Class podio::UserDataCollection

template<typename BasicType, typename = EnableIfSupportedUserType<BasicType>>
class UserDataCollection : public podio::CollectionBase

Collection of basic types for additional user data not defined in the EDM.

The data is stored in an std::vector<basic_type>. Supported are all basic types supported in PODIO, i.e. float, double and 8-64 bit fixed size signed and unsigned integers -

See also

SupportedUserDataTypes.

Author

F.Gaede, DESY

Date

Sep 2021

Public Types

using value_type = typename std::vector<BasicType>::value_type
using mutable_type = value_type
using const_iterator = typename std::vector<BasicType>::const_iterator
using iterator = typename std::vector<BasicType>::iterator
using difference_type = typename std::vector<BasicType>::difference_type
using size_type = typename std::vector<BasicType>::size_type
using const_reverse_iterator = typename std::vector<BasicType>::const_reverse_iterator
using reverse_iterator = typename std::vector<BasicType>::reverse_iterator

Public Functions

UserDataCollection() = default
inline UserDataCollection(std::vector<BasicType> &&vec)

Constructor from an existing vector (which will be moved from!)

UserDataCollection(const UserDataCollection&) = delete
UserDataCollection &operator=(const UserDataCollection&) = delete
UserDataCollection(UserDataCollection&&) = default
UserDataCollection &operator=(UserDataCollection&&) = default
~UserDataCollection() override = default
inline virtual void prepareForWrite() const override

prepare buffers for serialization

inline virtual void prepareAfterRead() override

re-create collection from buffers after read

inline virtual bool setReferences(const ICollectionProvider*) override

initialize references after read

inline virtual void setID(uint32_t id) override

set collection ID

inline virtual uint32_t getID() const override

get collection ID

inline virtual podio::CollectionWriteBuffers getBuffers() override

Get the collection buffers for this collection.

inline virtual bool isValid() const override

check for validity of the container after read

inline virtual size_t size() const override

number of elements in the collection

inline virtual size_t max_size() const override

maximal number of elements in the collection

inline virtual bool empty() const override

Is the collection empty.

inline virtual const std::string_view getTypeName() const override

fully qualified type name

inline virtual const std::string_view getValueTypeName() const override

fully qualified type name of elements - with namespace

inline virtual const std::string_view getDataTypeName() const override

fully qualified type name of stored POD elements - with namespace

inline virtual void clear() override

clear the collection and all internal states

inline virtual bool isSubsetCollection() const override

check if this collection is a subset collection - no subset possible

inline virtual void setSubsetCollection(bool) override

declare this collection to be a subset collection - no effect

inline virtual SchemaVersionT getSchemaVersion() const final

The schema version is fixed manually.

inline virtual void print(std::ostream &os = std::cout, bool flush = true) const override

Print this collection to the passed stream.

inline virtual size_t getDatamodelRegistryIndex() const override

Get the index in the DatatypeRegistry of the EDM this collection belongs to.

inline std::vector<BasicType>::reference create()
inline iterator begin()
inline iterator end()
inline const_iterator begin() const
inline const_iterator end() const
inline const_iterator cbegin() const
inline const_iterator cend() const
inline reverse_iterator rbegin()
inline const_reverse_iterator rbegin() const
inline const_reverse_iterator crbegin() const
inline reverse_iterator rend()
inline const_reverse_iterator rend() const
inline const_reverse_iterator crend() const
inline std::vector<BasicType>::reference operator[](size_t idx)
inline std::vector<BasicType>::const_reference operator[](size_t idx) const
inline std::vector<BasicType>::reference at(size_t idx)
inline std::vector<BasicType>::const_reference at(size_t idx) const
inline void resize(size_t count)
inline void push_back(const BasicType &value)
inline std::vector<BasicType> &vec()

access to the actual data vector

inline const std::vector<BasicType> &vec() const

const access to the actual data vector

Public Static Functions

static inline void __cppyy_pythonize__(PyObject *klass, const std::string &name)

Cppyy protocol to setup the pythonizations for this class. Not to be called directly.

Public Static Attributes

static SchemaVersionT schemaVersion = 1

The schema version of UserDataCollections.

static std::string_view typeName = userDataCollTypeName<BasicType>()
static std::string_view valueTypeName = userDataTypeName<BasicType>()
static std::string_view dataTypeName = userDataTypeName<BasicType>()