EDM4eic
EIC data model
Loading...
Searching...
No Matches
MutableHadronicFinalState.h
Go to the documentation of this file.
1// AUTOMATICALLY GENERATED FILE - DO NOT EDIT
2
3#ifndef EDM4EIC_MutableHadronicFinalState_H
4#define EDM4EIC_MutableHadronicFinalState_H
5
7// Make the immutable class available from its mutable version but not vice versa
9
11#include "podio/RelationRange.h"
12#include <vector>
13
14#include "podio/utilities/MaybeSharedPtr.h"
15
16#include <cstdint>
17
18#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
19#include "nlohmann/json_fwd.hpp"
20#endif
21
22// forward declarations
23namespace edm4eic {
24class HadronicFinalStateCollection;
25}
26
27
28namespace edm4eic {
29
30
31/** @class MutableHadronicFinalState
32 * Summed quantities of the hadronic final state
33 * @author: T. Kutz
34 */
36
39 friend class HadronicFinalState;
40
41public:
44
45 /// default constructor
47
48 /// Constructor initializing all members
49 MutableHadronicFinalState(float sigma, float pT, float gamma);
50
51 /// copy constructor
53
54 /// copy-assignment operator
56
57 /// create a mutable deep-copy of the object with identical relations
58 /// if cloneRelations=false, the relations are not cloned and will be empty
59 MutableHadronicFinalState clone(bool cloneRelations=true) const;
60
61 /// destructor
63
64
65public:
66
67 /// Access the Longitudinal energy-momentum balance (aka E - pz)
68 float getSigma() const;
69
70 /// Access the Transverse momentum
71 float getPT() const;
72
73 /// Access the Hadronic angle
74 float getGamma() const;
75
76
77
78 /// Set the Longitudinal energy-momentum balance (aka E - pz)
79 void setSigma(float value);
80 /// Get mutable reference to Longitudinal energy-momentum balance (aka E - pz)
81 float& getSigma();
82 /// Get reference to Longitudinal energy-momentum balance (aka E - pz)
83 [[deprecated("use getSigma instead")]]
84 float& sigma();
85
86 /// Set the Transverse momentum
87 void setPT(float value);
88 /// Get mutable reference to Transverse momentum
89 float& getPT();
90 /// Get reference to Transverse momentum
91 [[deprecated("use getPT instead")]]
92 float& pT();
93
94 /// Set the Hadronic angle
95 void setGamma(float value);
96 /// Get mutable reference to Hadronic angle
97 float& getGamma();
98 /// Get reference to Hadronic angle
99 [[deprecated("use getGamma instead")]]
100 float& gamma();
101
102
103
105 std::size_t hadrons_size() const;
107 std::vector<edm4eic::ReconstructedParticle>::const_iterator hadrons_begin() const;
108 std::vector<edm4eic::ReconstructedParticle>::const_iterator hadrons_end() const;
109 podio::RelationRange<edm4eic::ReconstructedParticle> getHadrons() const;
110
111
112
113 /// check whether the object is actually available
114 bool isAvailable() const;
115 /// disconnect from HadronicFinalStateObj instance
116 void unlink() { m_obj = podio::utils::MaybeSharedPtr<HadronicFinalStateObj>{nullptr}; }
117
118 bool operator==(const MutableHadronicFinalState& other) const { return m_obj == other.m_obj; }
119 bool operator==(const HadronicFinalState& other) const;
120
121 bool operator!=(const MutableHadronicFinalState& other) const { return !(*this == other); }
122 bool operator!=(const HadronicFinalState& other) const { return !(*this == other); }
123
124 // less comparison operator, so that objects can be e.g. stored in sets.
126
127 podio::ObjectID id() const { return getObjectID(); }
128
129 const podio::ObjectID getObjectID() const;
130
132 using std::swap;
133 swap(a.m_obj, b.m_obj); // swap out the internal pointers
134 }
135
136private:
137 /// constructor from existing HadronicFinalStateObj
138 explicit MutableHadronicFinalState(podio::utils::MaybeSharedPtr<HadronicFinalStateObj> obj);
139
140 podio::utils::MaybeSharedPtr<HadronicFinalStateObj> m_obj{nullptr};
141};
142
143#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
144void to_json(nlohmann::json& j, const MutableHadronicFinalState& value);
145#endif
146
147
148} // namespace edm4eic
149
150
151#endif
Definition HadronicFinalStateCollection.h:91
Definition HadronicFinalState.h:43
Definition HadronicFinalStateCollection.h:62
Definition MutableHadronicFinalState.h:35
float & sigma()
Get reference to Longitudinal energy-momentum balance (aka E - pz)
Definition MutableHadronicFinalState.cc:53
float & pT()
Get reference to Transverse momentum.
Definition MutableHadronicFinalState.cc:56
bool operator!=(const HadronicFinalState &other) const
Definition MutableHadronicFinalState.h:122
MutableHadronicFinalState()
default constructor
Definition MutableHadronicFinalState.cc:18
friend void swap(MutableHadronicFinalState &a, MutableHadronicFinalState &b)
Definition MutableHadronicFinalState.h:131
float getGamma() const
Access the Hadronic angle.
Definition MutableHadronicFinalState.cc:48
std::vector< edm4eic::ReconstructedParticle >::const_iterator hadrons_end() const
Definition MutableHadronicFinalState.cc:73
std::vector< edm4eic::ReconstructedParticle >::const_iterator hadrons_begin() const
Definition MutableHadronicFinalState.cc:67
float getSigma() const
Access the Longitudinal energy-momentum balance (aka E - pz)
Definition MutableHadronicFinalState.cc:46
void addToHadrons(const edm4eic::ReconstructedParticle &)
Definition MutableHadronicFinalState.cc:62
void unlink()
disconnect from HadronicFinalStateObj instance
Definition MutableHadronicFinalState.h:116
bool isAvailable() const
check whether the object is actually available
Definition MutableHadronicFinalState.cc:103
bool operator==(const MutableHadronicFinalState &other) const
Definition MutableHadronicFinalState.h:118
bool operator<(const MutableHadronicFinalState &other) const
Definition MutableHadronicFinalState.h:125
MutableHadronicFinalState & operator=(MutableHadronicFinalState other)
copy-assignment operator
Definition MutableHadronicFinalState.cc:28
float getPT() const
Access the Transverse momentum.
Definition MutableHadronicFinalState.cc:47
friend class HadronicFinalState
Definition MutableHadronicFinalState.h:39
std::size_t hadrons_size() const
Definition MutableHadronicFinalState.cc:79
float & gamma()
Get reference to Hadronic angle.
Definition MutableHadronicFinalState.cc:59
podio::RelationRange< edm4eic::ReconstructedParticle > getHadrons() const
Definition MutableHadronicFinalState.cc:90
MutableHadronicFinalState clone(bool cloneRelations=true) const
Definition MutableHadronicFinalState.cc:33
void setSigma(float value)
Set the Longitudinal energy-momentum balance (aka E - pz)
Definition MutableHadronicFinalState.cc:51
void setGamma(float value)
Set the Hadronic angle.
Definition MutableHadronicFinalState.cc:57
~MutableHadronicFinalState()=default
destructor
podio::ObjectID id() const
Definition MutableHadronicFinalState.h:127
const podio::ObjectID getObjectID() const
Definition MutableHadronicFinalState.cc:107
bool operator!=(const MutableHadronicFinalState &other) const
Definition MutableHadronicFinalState.h:121
void setPT(float value)
Set the Transverse momentum.
Definition MutableHadronicFinalState.cc:54
friend class HadronicFinalStateCollection
Definition MutableHadronicFinalState.h:37
MutableHadronicFinalState(const MutableHadronicFinalState &other)=default
copy constructor
Definition ReconstructedParticle.h:54
Definition CalorimeterHit.cc:17
OrderKey getOrderKey(const edm4eic::CalorimeterHit &obj)
Definition CalorimeterHit.cc:150