EICd
EIC data model
MergedClusterRelations.h
Go to the documentation of this file.
1 // AUTOMATICALLY GENERATED FILE - DO NOT EDIT
2 
3 #ifndef EICD_MergedClusterRelations_H
4 #define EICD_MergedClusterRelations_H
5 
8 
9 #include "eicd/Index.h"
10 #include <array>
11 #include "podio/ObjectID.h"
12 #include <ostream>
13 
14 
15 
16 namespace eic {
17 
18 
19 /** @class MergedClusterRelations
20  * Relational info between a merged cluster and its parents
21  * @author: S. Joosten
22  */
24 
28 
29 public:
30 
31  /// default constructor
33  MergedClusterRelations(eic::Index clusterID, std::uint32_t size, std::array<eic::Index, 4> parent);
34 
35  /// constructor from existing MergedClusterRelationsObj
37 
38  /// copy constructor
40 
41  /// copy-assignment operator
43 
44  /// support cloning (deep-copy)
46 
47  /// destructor
49 
50  /// conversion to const object
51  operator ConstMergedClusterRelations() const;
52 
53 public:
54 
55  /// Access the associated cluster ID
56  const eic::Index& clusterID() const;
57 
58  /// Access the number of valid parents
59  const std::uint32_t& size() const;
60 
61  /// Access the (up to 4) parents for this cluster
62  const std::array<eic::Index, 4>& parent() const;
63  /// Access item i of the (up to 4) parents for this cluster
64  const eic::Index& parent(size_t i) const;
65 
66 
67  /// Set the associated cluster ID
68  void clusterID(eic::Index value);
69  /// Get reference to associated cluster ID
71 
72  /// Set the number of valid parents
73  void size(std::uint32_t value);
74 
75  /// Set the (up to 4) parents for this cluster
76  void parent(std::array<eic::Index, 4> value);
77  void parent(size_t i, eic::Index value);
78  /// Get reference to (up to 4) parents for this cluster
79  std::array<eic::Index, 4>& parent();
80 
81 
82 
83 
84 
85 
86  /// check whether the object is actually available
87  bool isAvailable() const;
88  /// disconnect from MergedClusterRelationsObj instance
89  void unlink() { m_obj = nullptr; }
90 
91  bool operator==(const MergedClusterRelations& other) const { return m_obj == other.m_obj; }
92  bool operator==(const ConstMergedClusterRelations& other) const;
93 
94  // less comparison operator, so that objects can be e.g. stored in sets.
95  bool operator<(const MergedClusterRelations& other) const { return m_obj < other.m_obj; }
96 
97  unsigned int id() const { return getObjectID().collectionID * 10000000 + getObjectID().index; }
98 
99  const podio::ObjectID getObjectID() const;
100 
101 private:
103 };
104 
105 std::ostream& operator<<(std::ostream& o, const ConstMergedClusterRelations& value);
106 
107 } // namespace eic
108 
109 
110 #endif
eic::operator<<
std::ostream & operator<<(std::ostream &o, const ConstBasicParticle &value)
Definition: BasicParticle.cc:102
eic::Index
Definition: Index.h:11
eic::MergedClusterRelations::operator<
bool operator<(const MergedClusterRelations &other) const
Definition: MergedClusterRelations.h:95
eic::MergedClusterRelations
Definition: MergedClusterRelations.h:23
eic::MergedClusterRelations::getObjectID
const podio::ObjectID getObjectID() const
Definition: MergedClusterRelations.cc:76
eic::MergedClusterRelationsCollectionIterator
Definition: MergedClusterRelationsCollection.h:29
eic
Definition: BasicParticle.cc:13
eic::MergedClusterRelations::unlink
void unlink()
disconnect from MergedClusterRelationsObj instance
Definition: MergedClusterRelations.h:89
eic::MergedClusterRelations::clusterID
const eic::Index & clusterID() const
Access the associated cluster ID.
Definition: MergedClusterRelations.cc:50
MergedClusterRelationsObj.h
eic::MergedClusterRelationsObj
Definition: MergedClusterRelationsObj.h:18
eic::MergedClusterRelations::isAvailable
bool isAvailable() const
check whether the object is actually available
Definition: MergedClusterRelations.cc:69
eic::MergedClusterRelations::id
unsigned int id() const
Definition: MergedClusterRelations.h:97
eic::MergedClusterRelations::~MergedClusterRelations
~MergedClusterRelations()
destructor
Definition: MergedClusterRelations.cc:45
eic::MergedClusterRelations::MergedClusterRelations
MergedClusterRelations()
default constructor
Definition: MergedClusterRelations.cc:16
eic::MergedClusterRelations::size
const std::uint32_t & size() const
Access the number of valid parents.
Definition: MergedClusterRelations.cc:51
eic::MergedClusterRelations::ConstMergedClusterRelations
friend class ConstMergedClusterRelations
Definition: MergedClusterRelations.h:27
MergedClusterRelationsConst.h
eic::MergedClusterRelations::operator==
bool operator==(const MergedClusterRelations &other) const
Definition: MergedClusterRelations.h:91
eic::MergedClusterRelations::clone
MergedClusterRelations clone() const
support cloning (deep-copy)
Definition: MergedClusterRelations.cc:41
eic::MergedClusterRelations::operator=
MergedClusterRelations & operator=(const MergedClusterRelations &other)
copy-assignment operator
Definition: MergedClusterRelations.cc:31
eic::MergedClusterRelationsCollection
Definition: MergedClusterRelationsCollection.h:76
Index.h
eic::MergedClusterRelations::parent
const std::array< eic::Index, 4 > & parent() const
Access the (up to 4) parents for this cluster.
Definition: MergedClusterRelations.cc:52
eic::ConstMergedClusterRelations
Definition: MergedClusterRelationsConst.h:21