EDM4eic
EIC data model
Loading...
Searching...
No Matches
RingImage.h
Go to the documentation of this file.
1// AUTOMATICALLY GENERATED FILE - DO NOT EDIT
2
3#ifndef EDM4EIC_RingImage_H
4#define EDM4EIC_RingImage_H
5
7
8#include "edm4hep/Vector3f.h"
9
10#include "podio/utilities/MaybeSharedPtr.h"
11
12#include <ostream>
13#include <cstddef>
14
15#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
16#include "nlohmann/json_fwd.hpp"
17#endif
18
19
20
21namespace edm4eic {
22
23class MutableRingImage;
24class RingImageCollection;
25class RingImageCollectionData;
26
27/** @class RingImage
28 * EIC Ring Image Cluster
29 * @author: S. Joosten, C. Peng
30 */
31class RingImage {
32
33 friend class MutableRingImage;
34 friend class RingImageCollection;
37
38public:
41
42 /// default constructor
43 RingImage();
44
45 /// Constructor initializing all members
46 RingImage(float npe, edm4hep::Vector3f position, edm4hep::Vector3f positionError, float theta, float thetaError, float radius, float radiusError);
47
48 /// copy constructor
49 RingImage(const RingImage& other) = default;
50
51 /// copy-assignment operator
53
54 /// create a mutable deep-copy of the object with identical relations
55 MutableRingImage clone() const;
56
57 /// destructor
58 ~RingImage() = default;
59
60
61 static RingImage makeEmpty();
62
63public:
64
65 /// Access the Number of photo-electrons [#]
66 float getNpe() const;
67
68 /// Access the Global position of the cluster [mm]
69 const edm4hep::Vector3f& getPosition() const;
70
71 /// Access the Error on the position
72 const edm4hep::Vector3f& getPositionError() const;
73
74 /// Access the Opening angle of the ring [rad, 0->pi]
75 float getTheta() const;
76
77 /// Access the Error on the opening angle
78 float getThetaError() const;
79
80 /// Access the Radius of the best fit ring [mm]
81 float getRadius() const;
82
83 /// Access the Estimated error from the fit [mm]
84 float getRadiusError() const;
85
86
87
88
89
90 /// check whether the object is actually available
91 bool isAvailable() const;
92 /// disconnect from RingImageObj instance
93 void unlink() { m_obj = podio::utils::MaybeSharedPtr<RingImageObj>{nullptr}; }
94
95 bool operator==(const RingImage& other) const { return m_obj == other.m_obj; }
96 bool operator==(const MutableRingImage& other) const;
97
98 // less comparison operator, so that objects can be e.g. stored in sets.
99 bool operator<(const RingImage& other) const { return m_obj < other.m_obj; }
100
101 podio::ObjectID id() const { return getObjectID(); }
102
103 const podio::ObjectID getObjectID() const;
104
105 friend void swap(RingImage& a, RingImage& b) {
106 using std::swap;
107 swap(a.m_obj, b.m_obj); // swap out the internal pointers
108 }
109
110private:
111 /// constructor from existing RingImageObj
112 explicit RingImage(podio::utils::MaybeSharedPtr<RingImageObj> obj);
114
115 podio::utils::MaybeSharedPtr<RingImageObj> m_obj{nullptr};
116};
117
118std::ostream& operator<<(std::ostream& o, const RingImage& value);
119
120#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
121void to_json(nlohmann::json& j, const RingImage& value);
122#endif
123
124
125} // namespace edm4eic
126
127
128#endif
Definition MutableRingImage.h:30
Definition RingImageCollectionData.h:30
Definition RingImageCollection.h:95
Definition RingImageCollection.h:40
Definition RingImage.h:31
RingImage & operator=(RingImage other)
copy-assignment operator
Definition RingImage.cc:35
bool operator==(const RingImage &other) const
Definition RingImage.h:95
friend class MutableRingImage
Definition RingImage.h:33
bool operator<(const RingImage &other) const
Definition RingImage.h:99
MutableRingImage clone() const
create a mutable deep-copy of the object with identical relations
Definition RingImage.cc:40
~RingImage()=default
destructor
void unlink()
disconnect from RingImageObj instance
Definition RingImage.h:93
float getRadiusError() const
Access the Estimated error from the fit [mm].
Definition RingImage.cc:58
friend void swap(RingImage &a, RingImage &b)
Definition RingImage.h:105
friend class RingImageCollection
Definition RingImage.h:34
float getRadius() const
Access the Radius of the best fit ring [mm].
Definition RingImage.cc:57
RingImage(const RingImage &other)=default
copy constructor
const edm4hep::Vector3f & getPosition() const
Access the Global position of the cluster [mm].
Definition RingImage.cc:53
float getTheta() const
Access the Opening angle of the ring [rad, 0->pi].
Definition RingImage.cc:55
bool isAvailable() const
check whether the object is actually available
Definition RingImage.cc:65
float getNpe() const
Access the Number of photo-electrons [#].
Definition RingImage.cc:52
static RingImage makeEmpty()
Definition RingImage.cc:48
const edm4hep::Vector3f & getPositionError() const
Access the Error on the position.
Definition RingImage.cc:54
float getThetaError() const
Access the Error on the opening angle.
Definition RingImage.cc:56
podio::ObjectID id() const
Definition RingImage.h:101
const podio::ObjectID getObjectID() const
Definition RingImage.cc:72
RingImage()
default constructor
Definition RingImage.cc:21
Definition RingImageObj.h:17
Definition CalorimeterHit.cc:18
std::ostream & operator<<(std::ostream &o, const CalorimeterHit &value)
Definition CalorimeterHit.cc:97