EICd
EIC data model
ProtoClusterCollectionData.h
Go to the documentation of this file.
1// AUTOMATICALLY GENERATED FILE - DO NOT EDIT
2
3#ifndef EICD_ProtoCluster_CollectionData_H
4#define EICD_ProtoCluster_CollectionData_H
5
6// datamodel specific includes
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 ProtoClusterObjPointerContainer = std::deque<ProtoClusterObj*>;
22using ProtoClusterDataContainer = std::vector<ProtoClusterData>;
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
65
66 bool setReferences(const podio::ICollectionProvider* collectionProvider, bool isSubsetColl);
67
68private:
69 // members to handle 1-to-N-relations
70 podio::UVecPtr<eicd::CalorimeterHit> m_rel_hits; ///< Relation buffer for read / write
71 std::vector<podio::UVecPtr<eicd::CalorimeterHit>> m_rel_hits_tmp{}; ///< Relation buffer for internal book-keeping
72
73 // members to handle vector members
74 podio::UVecPtr<float> m_vec_weights; /// combined vector of all objects in collection
75 std::vector<podio::UVecPtr<float>> m_vecs_weights{}; /// pointers to individual member vectors
76
77 // I/O related buffers
78 podio::CollRefCollection m_refCollections{};
79 podio::VectorMembersInfo m_vecmem_info{};
80 std::unique_ptr<ProtoClusterDataContainer> m_data{nullptr};
81};
82
83
84} // namespace eicd
85
86
87#endif
Definition: ProtoClusterCollectionData.h:29
bool setReferences(const podio::ICollectionProvider *collectionProvider, bool isSubsetColl)
Definition: ProtoClusterCollectionData.cc:125
ProtoClusterCollectionData(const ProtoClusterCollectionData &)=delete
ProtoClusterCollectionData & operator=(const ProtoClusterCollectionData &)=delete
podio::CollectionBuffers getCollectionBuffers(bool isSubsetColl)
Definition: ProtoClusterCollectionData.cc:51
ProtoClusterCollectionData()
Definition: ProtoClusterCollectionData.cc:12
void prepareAfterRead(int collectionID)
Definition: ProtoClusterCollectionData.cc:102
ProtoClusterObjPointerContainer entries
Definition: ProtoClusterCollectionData.h:34
ProtoClusterCollectionData & operator=(ProtoClusterCollectionData &&other)=default
void prepareForWrite(bool isSubsetColl)
Definition: ProtoClusterCollectionData.cc:62
void clear(bool isSubsetColl)
Definition: ProtoClusterCollectionData.cc:20
void createRelations(ProtoClusterObj *obj)
Definition: ProtoClusterCollectionData.cc:118
ProtoClusterCollectionData(ProtoClusterCollectionData &&other)=default
void makeSubsetCollection()
Definition: ProtoClusterCollectionData.cc:160
Definition: ProtoClusterObj.h:19
Definition: CalorimeterHit.cc:13
std::deque< ProtoClusterObj * > ProtoClusterObjPointerContainer
Definition: ProtoClusterCollectionData.h:21
std::vector< ProtoClusterData > ProtoClusterDataContainer
Definition: ProtoClusterCollectionData.h:22