EICd
EIC data model
TrajectoryCollectionData.h
Go to the documentation of this file.
1// AUTOMATICALLY GENERATED FILE - DO NOT EDIT
2
3#ifndef EICD_Trajectory_CollectionData_H
4#define EICD_Trajectory_CollectionData_H
5
6// datamodel specific includes
10#include "eicd/TrackerHit.h"
11
12// podio specific includes
13#include "podio/CollectionBuffers.h"
14#include "podio/ICollectionProvider.h"
15
16#include <deque>
17#include <memory>
18
19namespace eicd {
20
21
22using TrajectoryObjPointerContainer = std::deque<TrajectoryObj*>;
23using TrajectoryDataContainer = std::vector<TrajectoryData>;
24
25
26/**
27 * Class encapsulating everything related to storage of data that is needed by a
28 * collection.
29 */
31public:
32 /**
33 * The Objs of this collection
34 */
36
37 /**
38 * Default constructor setting up the necessary buffers
39 */
41
42 /**
43 * Non copy-able, move-only class
44 */
49
50 /**
51 * Deconstructor
52 */
54
55 void clear(bool isSubsetColl);
56
57 podio::CollectionBuffers getCollectionBuffers(bool isSubsetColl);
58
59 void prepareForWrite(bool isSubsetColl);
60
61 void prepareAfterRead(int collectionID);
62
64
66
67 bool setReferences(const podio::ICollectionProvider* collectionProvider, bool isSubsetColl);
68
69private:
70 // members to handle 1-to-N-relations
71 podio::UVecPtr<eicd::TrackerHit> m_rel_measurementHits; ///< Relation buffer for read / write
72 std::vector<podio::UVecPtr<eicd::TrackerHit>> m_rel_measurementHits_tmp{}; ///< Relation buffer for internal book-keeping
73 podio::UVecPtr<eicd::TrackerHit> m_rel_outlierHits; ///< Relation buffer for read / write
74 std::vector<podio::UVecPtr<eicd::TrackerHit>> m_rel_outlierHits_tmp{}; ///< Relation buffer for internal book-keeping
75 podio::UVecPtr<eicd::TrackParameters> m_rel_trackParameters; ///< Relation buffer for read / write
76
77 // members to handle vector members
78 podio::UVecPtr<float> m_vec_measurementChi2; /// combined vector of all objects in collection
79 std::vector<podio::UVecPtr<float>> m_vecs_measurementChi2{}; /// pointers to individual member vectors
80 podio::UVecPtr<float> m_vec_outlierChi2; /// combined vector of all objects in collection
81 std::vector<podio::UVecPtr<float>> m_vecs_outlierChi2{}; /// pointers to individual member vectors
82
83 // I/O related buffers
84 podio::CollRefCollection m_refCollections{};
85 podio::VectorMembersInfo m_vecmem_info{};
86 std::unique_ptr<TrajectoryDataContainer> m_data{nullptr};
87};
88
89
90} // namespace eicd
91
92
93#endif
Definition: TrajectoryCollectionData.h:30
bool setReferences(const podio::ICollectionProvider *collectionProvider, bool isSubsetColl)
Definition: TrajectoryCollectionData.cc:187
void clear(bool isSubsetColl)
Definition: TrajectoryCollectionData.cc:27
TrajectoryCollectionData(const TrajectoryCollectionData &)=delete
void makeSubsetCollection()
Definition: TrajectoryCollectionData.cc:253
TrajectoryCollectionData & operator=(const TrajectoryCollectionData &)=delete
TrajectoryCollectionData()
Definition: TrajectoryCollectionData.cc:13
TrajectoryObjPointerContainer entries
Definition: TrajectoryCollectionData.h:35
void createRelations(TrajectoryObj *obj)
Definition: TrajectoryCollectionData.cc:176
void prepareForWrite(bool isSubsetColl)
Definition: TrajectoryCollectionData.cc:90
TrajectoryCollectionData & operator=(TrajectoryCollectionData &&other)=default
podio::CollectionBuffers getCollectionBuffers(bool isSubsetColl)
Definition: TrajectoryCollectionData.cc:78
TrajectoryCollectionData(TrajectoryCollectionData &&other)=default
void prepareAfterRead(int collectionID)
Definition: TrajectoryCollectionData.cc:158
Definition: TrajectoryObj.h:23
Definition: CalorimeterHit.cc:13
std::vector< TrajectoryData > TrajectoryDataContainer
Definition: TrajectoryCollectionData.h:23
std::deque< TrajectoryObj * > TrajectoryObjPointerContainer
Definition: TrajectoryCollectionData.h:22