Go to the documentation of this file.
3 #ifndef EICD_MergedClusterRelationsCollection_H
4 #define EICD_MergedClusterRelationsCollection_H
12 #include "podio/ICollectionProvider.h"
13 #include "podio/CollectionBase.h"
14 #include "podio/CollectionIDTable.h"
37 return m_index != x.m_index;
59 return m_index != x.m_index;
88 void clear() override final;
98 template<
typename... Args>
102 size_t size() const override final;
105 std::
string getValueTypeName()
const override {
return std::string(
"eic::MergedClusterRelations"); }
122 void setBuffer(
void* address) override final;
123 bool setReferences(const podio::ICollectionProvider* collectionProvider) override final;
127 podio::VectorMembersInfo*
vectorMembers()
override {
return &m_vecmem_info; }
129 void setID(
unsigned ID)
override final {
131 std::for_each(m_entries.begin(),m_entries.end(),
137 unsigned getID() const override final {
138 return m_collectionID;
153 return iterator(m_entries.size(), &m_entries);
163 std::vector<MergedClusterRelationsData>*
_getBuffer() {
return m_data; }
165 template<
size_t arraysize>
166 const std::array<eic::Index, arraysize> clusterID()
const;
167 template<
size_t arraysize>
168 const std::array<std::uint32_t, arraysize> size()
const;
169 template<
size_t arraysize>
170 const std::array<std::array<eic::Index, 4>, arraysize> parent()
const;
173 bool m_isValid{
false};
174 bool m_isReadFromFile{
false};
175 int m_collectionID{0};
182 podio::CollRefCollection m_refCollections{};
183 podio::VectorMembersInfo m_vecmem_info{};
187 std::ostream&
operator<<(std::ostream& o,
const MergedClusterRelationsCollection& v);
189 template<
typename... Args>
191 const int size = m_entries.
size();
193 m_entries.push_back(obj);
197 template<
size_t arraysize>
198 const std::array<eic::Index, arraysize> MergedClusterRelationsCollection::clusterID()
const {
199 std::array<eic::Index, arraysize> tmp;
200 const auto valid_size = std::min(arraysize, m_entries.size());
201 for (
unsigned i = 0; i < valid_size; ++i) {
202 tmp[i] = m_entries[i]->data.clusterID;
207 template<
size_t arraysize>
208 const std::array<std::uint32_t, arraysize> MergedClusterRelationsCollection::size()
const {
209 std::array<std::uint32_t, arraysize> tmp;
210 const auto valid_size = std::min(arraysize, m_entries.size());
211 for (
unsigned i = 0; i < valid_size; ++i) {
212 tmp[i] = m_entries[i]->data.size;
217 template<
size_t arraysize>
218 const std::array<std::array<eic::Index, 4>, arraysize> MergedClusterRelationsCollection::parent()
const {
219 std::array<std::array<eic::Index, 4>, arraysize> tmp;
220 const auto valid_size = std::min(arraysize, m_entries.size());
221 for (
unsigned i = 0; i < valid_size; ++i) {
222 tmp[i] = m_entries[i]->data.parent;
std::ostream & operator<<(std::ostream &o, const ConstBasicParticle &value)
Definition: BasicParticle.cc:102
MergedClusterRelationsConstCollectionIterator & operator=(const MergedClusterRelationsConstCollectionIterator &)=delete
void setID(unsigned ID) override final
Definition: MergedClusterRelationsCollection.h:129
const_iterator begin() const
Definition: MergedClusterRelationsCollection.h:149
void prepareForWrite() override final
Definition: MergedClusterRelationsCollection.cc:56
Definition: MergedClusterRelations.h:23
MergedClusterRelationsCollectionIterator(const MergedClusterRelationsCollectionIterator &)=delete
ConstMergedClusterRelations operator[](unsigned int index) const
Returns the const object of given index.
Definition: MergedClusterRelationsCollection.cc:23
MergedClusterRelationsCollection()
Definition: MergedClusterRelationsCollection.cc:13
std::string getValueTypeName() const override
fully qualified type name of elements - with namespace
Definition: MergedClusterRelationsCollection.h:105
ConstMergedClusterRelations at(unsigned int index) const
Returns the const object of given index.
Definition: MergedClusterRelationsCollection.cc:27
std::vector< MergedClusterRelationsData > * _getBuffer()
Returns the pointer to the data buffer.
Definition: MergedClusterRelationsCollection.h:163
Definition: MergedClusterRelationsCollection.h:29
MergedClusterRelations * operator->()
Definition: MergedClusterRelationsCollection.cc:111
void * getBufferAddress() override final
returns the address of the pointer to the data buffer
Definition: MergedClusterRelationsCollection.h:160
Definition: BasicParticle.cc:13
MergedClusterRelationsConstCollectionIterator & operator++()
Definition: MergedClusterRelationsCollection.cc:133
Definition: MergedClusterRelationsObj.h:18
ConstMergedClusterRelations operator*()
Definition: MergedClusterRelationsCollection.cc:123
void setBuffer(void *address) override final
Definition: MergedClusterRelationsCollection.cc:101
podio::VectorMembersInfo * vectorMembers() override
Definition: MergedClusterRelationsCollection.h:127
size_t size() const override final
number of elements in the collection
Definition: MergedClusterRelationsCollection.cc:39
iterator end()
Definition: MergedClusterRelationsCollection.h:152
MergedClusterRelations create()
Append a new object to the collection, and return this object.
Definition: MergedClusterRelationsCollection.cc:43
MergedClusterRelationsConstCollectionIterator(size_t index, const MergedClusterRelationsObjPointerContainer *collection)
Definition: MergedClusterRelationsCollection.h:53
MergedClusterRelations operator*()
Definition: MergedClusterRelationsCollection.cc:106
iterator begin()
Definition: MergedClusterRelationsCollection.h:146
std::deque< MergedClusterRelationsObj * > MergedClusterRelationsObjPointerContainer
Definition: MergedClusterRelationsCollection.h:27
void push_back(ConstMergedClusterRelations object)
Append object to the collection.
Definition: MergedClusterRelationsCollection.cc:89
std::vector< MergedClusterRelationsData > MergedClusterRelationsDataContainer
Definition: MergedClusterRelationsCollection.h:26
Definition: MergedClusterRelationsCollection.h:51
const std::uint32_t & size() const
Access the number of valid parents.
Definition: MergedClusterRelations.cc:51
MergedClusterRelationsCollection & operator=(const MergedClusterRelationsCollection &)=delete
MergedClusterRelationsCollectionIterator & operator++()
Definition: MergedClusterRelationsCollection.cc:116
~MergedClusterRelationsCollection()
Definition: MergedClusterRelationsCollection.cc:18
MergedClusterRelationsCollectionIterator(size_t index, const MergedClusterRelationsObjPointerContainer *collection)
Definition: MergedClusterRelationsCollection.h:31
unsigned getID() const override final
Definition: MergedClusterRelationsCollection.h:137
MergedClusterRelationsCollectionIterator & operator=(const MergedClusterRelationsCollectionIterator &)=delete
bool isValid() const override final
Definition: MergedClusterRelationsCollection.h:141
void prepareAfterRead() override final
Definition: MergedClusterRelationsCollection.cc:69
MergedClusterRelationsCollection(const MergedClusterRelationsCollection &)=delete
Definition: MergedClusterRelationsCollection.h:76
podio::CollRefCollection * referenceCollections() override final
Definition: MergedClusterRelationsCollection.h:125
MergedClusterRelationsConstCollectionIterator(const MergedClusterRelationsConstCollectionIterator &)=delete
bool setReferences(const podio::ICollectionProvider *collectionProvider) override final
Definition: MergedClusterRelationsCollection.cc:84
void clear() override final
Definition: MergedClusterRelationsCollection.cc:50
bool operator!=(const MergedClusterRelationsConstCollectionIterator &x) const
Definition: MergedClusterRelationsCollection.h:58
Definition: MergedClusterRelationsConst.h:21
ConstMergedClusterRelations * operator->()
Definition: MergedClusterRelationsCollection.cc:128
const_iterator end() const
Definition: MergedClusterRelationsCollection.h:155
bool operator!=(const MergedClusterRelationsCollectionIterator &x) const
Definition: MergedClusterRelationsCollection.h:36