EICd
EIC data model
VertexCollectionData.h
Go to the documentation of this file.
1// AUTOMATICALLY GENERATED FILE - DO NOT EDIT
2
3#ifndef EICD_Vertex_CollectionData_H
4#define EICD_Vertex_CollectionData_H
5
6// datamodel specific includes
7#include "eicd/VertexData.h"
8#include "eicd/VertexObj.h"
10
11// podio specific includes
12#include "podio/CollectionBuffers.h"
13#include "podio/ICollectionProvider.h"
14
15#include <deque>
16#include <memory>
17
18namespace eicd {
19
20
21using VertexObjPointerContainer = std::deque<VertexObj*>;
22using VertexDataContainer = std::vector<VertexData>;
23
24
25/**
26 * Class encapsulating everything related to storage of data that is needed by a
27 * collection.
28 */
30public:
31 /**
32 * The Objs of this collection
33 */
35
36 /**
37 * Default constructor setting up the necessary buffers
38 */
40
41 /**
42 * Non copy-able, move-only class
43 */
48
49 /**
50 * Deconstructor
51 */
53
54 void clear(bool isSubsetColl);
55
56 podio::CollectionBuffers getCollectionBuffers(bool isSubsetColl);
57
58 void prepareForWrite(bool isSubsetColl);
59
60 void prepareAfterRead(int collectionID);
61
63
64 void createRelations(VertexObj* obj);
65
66 bool setReferences(const podio::ICollectionProvider* collectionProvider, bool isSubsetColl);
67
68private:
69 // members to handle 1-to-N-relations
70 podio::UVecPtr<eicd::ReconstructedParticle> m_rel_associatedParticle; ///< Relation buffer for read / write
71
72 // members to handle vector members
73 podio::UVecPtr<float> m_vec_parameters; /// combined vector of all objects in collection
74 std::vector<podio::UVecPtr<float>> m_vecs_parameters{}; /// pointers to individual member vectors
75
76 // I/O related buffers
77 podio::CollRefCollection m_refCollections{};
78 podio::VectorMembersInfo m_vecmem_info{};
79 std::unique_ptr<VertexDataContainer> m_data{nullptr};
80};
81
82
83} // namespace eicd
84
85
86#endif
Definition: VertexCollectionData.h:29
void prepareAfterRead(int collectionID)
Definition: VertexCollectionData.cc:92
void prepareForWrite(bool isSubsetColl)
Definition: VertexCollectionData.cc:55
VertexCollectionData & operator=(VertexCollectionData &&other)=default
void makeSubsetCollection()
Definition: VertexCollectionData.cc:146
VertexCollectionData & operator=(const VertexCollectionData &)=delete
void createRelations(VertexObj *obj)
Definition: VertexCollectionData.cc:107
VertexCollectionData(const VertexCollectionData &)=delete
bool setReferences(const podio::ICollectionProvider *collectionProvider, bool isSubsetColl)
Definition: VertexCollectionData.cc:112
void clear(bool isSubsetColl)
Definition: VertexCollectionData.cc:20
VertexObjPointerContainer entries
Definition: VertexCollectionData.h:34
podio::CollectionBuffers getCollectionBuffers(bool isSubsetColl)
Definition: VertexCollectionData.cc:44
VertexCollectionData()
Definition: VertexCollectionData.cc:12
VertexCollectionData(VertexCollectionData &&other)=default
Definition: VertexObj.h:22
Definition: CalorimeterHit.cc:13
std::deque< VertexObj * > VertexObjPointerContainer
Definition: VertexCollectionData.h:21
std::vector< VertexData > VertexDataContainer
Definition: VertexCollectionData.h:22