Go to the documentation of this file.
3 #ifndef EICD_TrackerHitCollection_H
4 #define EICD_TrackerHitCollection_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;
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; }
131 std::for_each(m_entries.begin(),m_entries.end(),
132 [
ID] (
TrackerHitObj* obj) { obj->id = {obj->id.index, static_cast<int>(ID)}; }
137 unsigned getID() const override final {
138 return m_collectionID;
153 return iterator(m_entries.size(), &m_entries);
165 template<
size_t arraysize>
166 const std::array<eic::Index, arraysize> ID()
const;
167 template<
size_t arraysize>
168 const std::array<std::int64_t, arraysize> cellID()
const;
169 template<
size_t arraysize>
170 const std::array<eic::VectorXYZT, arraysize> position()
const;
171 template<
size_t arraysize>
172 const std::array<eic::CovDiagXYZT, arraysize> covMatrix()
const;
173 template<
size_t arraysize>
174 const std::array<float, arraysize> edep()
const;
175 template<
size_t arraysize>
176 const std::array<float, arraysize> edepError()
const;
179 bool m_isValid{
false};
180 bool m_isReadFromFile{
false};
181 int m_collectionID{0};
188 podio::CollRefCollection m_refCollections{};
189 podio::VectorMembersInfo m_vecmem_info{};
193 std::ostream&
operator<<(std::ostream& o,
const TrackerHitCollection& v);
195 template<
typename... Args>
197 const int size = m_entries.size();
198 auto obj =
new TrackerHitObj({size, m_collectionID}, {args...});
199 m_entries.push_back(obj);
203 template<
size_t arraysize>
204 const std::array<eic::Index, arraysize> TrackerHitCollection::ID()
const {
205 std::array<eic::Index, arraysize> tmp;
206 const auto valid_size = std::min(arraysize, m_entries.size());
207 for (
unsigned i = 0; i < valid_size; ++i) {
208 tmp[i] = m_entries[i]->data.ID;
213 template<
size_t arraysize>
214 const std::array<std::int64_t, arraysize> TrackerHitCollection::cellID()
const {
215 std::array<std::int64_t, arraysize> tmp;
216 const auto valid_size = std::min(arraysize, m_entries.size());
217 for (
unsigned i = 0; i < valid_size; ++i) {
218 tmp[i] = m_entries[i]->data.cellID;
223 template<
size_t arraysize>
224 const std::array<eic::VectorXYZT, arraysize> TrackerHitCollection::position()
const {
225 std::array<eic::VectorXYZT, arraysize> tmp;
226 const auto valid_size = std::min(arraysize, m_entries.size());
227 for (
unsigned i = 0; i < valid_size; ++i) {
228 tmp[i] = m_entries[i]->data.position;
233 template<
size_t arraysize>
234 const std::array<eic::CovDiagXYZT, arraysize> TrackerHitCollection::covMatrix()
const {
235 std::array<eic::CovDiagXYZT, arraysize> tmp;
236 const auto valid_size = std::min(arraysize, m_entries.size());
237 for (
unsigned i = 0; i < valid_size; ++i) {
238 tmp[i] = m_entries[i]->data.covMatrix;
243 template<
size_t arraysize>
244 const std::array<float, arraysize> TrackerHitCollection::edep()
const {
245 std::array<float, arraysize> tmp;
246 const auto valid_size = std::min(arraysize, m_entries.size());
247 for (
unsigned i = 0; i < valid_size; ++i) {
248 tmp[i] = m_entries[i]->data.edep;
253 template<
size_t arraysize>
254 const std::array<float, arraysize> TrackerHitCollection::edepError()
const {
255 std::array<float, arraysize> tmp;
256 const auto valid_size = std::min(arraysize, m_entries.size());
257 for (
unsigned i = 0; i < valid_size; ++i) {
258 tmp[i] = m_entries[i]->data.edepError;
std::ostream & operator<<(std::ostream &o, const ConstBasicParticle &value)
Definition: BasicParticle.cc:102
ConstTrackerHit * operator->()
Definition: TrackerHitCollection.cc:128
TrackerHitCollectionIterator(size_t index, const TrackerHitObjPointerContainer *collection)
Definition: TrackerHitCollection.h:31
Definition: TrackerHitCollection.h:29
void clear() override final
Definition: TrackerHitCollection.cc:50
TrackerHitCollectionIterator & operator=(const TrackerHitCollectionIterator &)=delete
TrackerHit * operator->()
Definition: TrackerHitCollection.cc:111
bool setReferences(const podio::ICollectionProvider *collectionProvider) override final
Definition: TrackerHitCollection.cc:84
ConstTrackerHit at(unsigned int index) const
Returns the const object of given index.
Definition: TrackerHitCollection.cc:27
TrackerHitCollectionIterator & operator++()
Definition: TrackerHitCollection.cc:116
unsigned getID() const override final
Definition: TrackerHitCollection.h:137
TrackerHitCollection()
Definition: TrackerHitCollection.cc:13
Definition: BasicParticle.cc:13
ConstTrackerHit operator*()
Definition: TrackerHitCollection.cc:123
void prepareAfterRead() override final
Definition: TrackerHitCollection.cc:69
TrackerHit operator*()
Definition: TrackerHitCollection.cc:106
const_iterator end() const
Definition: TrackerHitCollection.h:155
~TrackerHitCollection()
Definition: TrackerHitCollection.cc:18
Definition: TrackerHitCollection.h:76
ConstTrackerHit operator[](unsigned int index) const
Returns the const object of given index.
Definition: TrackerHitCollection.cc:23
void setBuffer(void *address) override final
Definition: TrackerHitCollection.cc:101
iterator end()
Definition: TrackerHitCollection.h:152
Definition: TrackerHitObj.h:18
void * getBufferAddress() override final
returns the address of the pointer to the data buffer
Definition: TrackerHitCollection.h:160
iterator begin()
Definition: TrackerHitCollection.h:146
Definition: TrackerHitCollection.h:51
TrackerHit create()
Append a new object to the collection, and return this object.
Definition: TrackerHitCollection.cc:43
TrackerHitConstCollectionIterator & operator++()
Definition: TrackerHitCollection.cc:133
const std::array< eic::Index, arraysize > ID() const
Definition: TrackerHitCollection.h:204
Definition: TrackerHitConst.h:22
TrackerHitConstCollectionIterator(size_t index, const TrackerHitObjPointerContainer *collection)
Definition: TrackerHitCollection.h:53
size_t size() const override final
number of elements in the collection
Definition: TrackerHitCollection.cc:39
bool isValid() const override final
Definition: TrackerHitCollection.h:141
Definition: TrackerHit.h:24
bool operator!=(const TrackerHitCollectionIterator &x) const
Definition: TrackerHitCollection.h:36
TrackerHitConstCollectionIterator(const TrackerHitConstCollectionIterator &)=delete
podio::CollRefCollection * referenceCollections() override final
Definition: TrackerHitCollection.h:125
TrackerHitConstCollectionIterator & operator=(const TrackerHitConstCollectionIterator &)=delete
void setID(unsigned ID) override final
Definition: TrackerHitCollection.h:129
std::deque< TrackerHitObj * > TrackerHitObjPointerContainer
Definition: TrackerHitCollection.h:27
bool operator!=(const TrackerHitConstCollectionIterator &x) const
Definition: TrackerHitCollection.h:58
std::string getValueTypeName() const override
fully qualified type name of elements - with namespace
Definition: TrackerHitCollection.h:105
TrackerHitCollectionIterator(const TrackerHitCollectionIterator &)=delete
TrackerHitCollection(const TrackerHitCollection &)=delete
const_iterator begin() const
Definition: TrackerHitCollection.h:149
TrackerHitCollection & operator=(const TrackerHitCollection &)=delete
std::vector< TrackerHitData > * _getBuffer()
Returns the pointer to the data buffer.
Definition: TrackerHitCollection.h:163
void push_back(ConstTrackerHit object)
Append object to the collection.
Definition: TrackerHitCollection.cc:89
std::vector< TrackerHitData > TrackerHitDataContainer
Definition: TrackerHitCollection.h:26
void prepareForWrite() override final
Definition: TrackerHitCollection.cc:56
podio::VectorMembersInfo * vectorMembers() override
Definition: TrackerHitCollection.h:127