EICd
EIC data model
TrackSegmentCollectionData.h
Go to the documentation of this file.
1// AUTOMATICALLY GENERATED FILE - DO NOT EDIT
2
3#ifndef EICD_TrackSegment_CollectionData_H
4#define EICD_TrackSegment_CollectionData_H
5
6// datamodel specific includes
9#include "eicd/Track.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 TrackSegmentObjPointerContainer = std::deque<TrackSegmentObj*>;
22using TrackSegmentDataContainer = std::vector<TrackSegmentData>;
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::Track> m_rel_track; ///< Relation buffer for read / write
71
72 // members to handle vector members
73 podio::UVecPtr<eicd::TrackPoint> m_vec_points; /// combined vector of all objects in collection
74 std::vector<podio::UVecPtr<eicd::TrackPoint>> m_vecs_points{}; /// 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<TrackSegmentDataContainer> m_data{nullptr};
80};
81
82
83} // namespace eicd
84
85
86#endif
Definition: TrackSegmentCollectionData.h:29
TrackSegmentCollectionData()
Definition: TrackSegmentCollectionData.cc:12
TrackSegmentCollectionData & operator=(TrackSegmentCollectionData &&other)=default
void prepareAfterRead(int collectionID)
Definition: TrackSegmentCollectionData.cc:92
void prepareForWrite(bool isSubsetColl)
Definition: TrackSegmentCollectionData.cc:55
void createRelations(TrackSegmentObj *obj)
Definition: TrackSegmentCollectionData.cc:107
podio::CollectionBuffers getCollectionBuffers(bool isSubsetColl)
Definition: TrackSegmentCollectionData.cc:44
TrackSegmentCollectionData(const TrackSegmentCollectionData &)=delete
TrackSegmentObjPointerContainer entries
Definition: TrackSegmentCollectionData.h:34
TrackSegmentCollectionData(TrackSegmentCollectionData &&other)=default
void clear(bool isSubsetColl)
Definition: TrackSegmentCollectionData.cc:20
void makeSubsetCollection()
Definition: TrackSegmentCollectionData.cc:146
TrackSegmentCollectionData & operator=(const TrackSegmentCollectionData &)=delete
bool setReferences(const podio::ICollectionProvider *collectionProvider, bool isSubsetColl)
Definition: TrackSegmentCollectionData.cc:112
Definition: TrackSegmentObj.h:23
Definition: CalorimeterHit.cc:13
std::vector< TrackSegmentData > TrackSegmentDataContainer
Definition: TrackSegmentCollectionData.h:22
std::deque< TrackSegmentObj * > TrackSegmentObjPointerContainer
Definition: TrackSegmentCollectionData.h:21