EDM4eic
EIC data model
Loading...
Searching...
No Matches
HadronicFinalState.h
Go to the documentation of this file.
1// AUTOMATICALLY GENERATED FILE - DO NOT EDIT
2
3#ifndef EDM4EIC_HadronicFinalState_H
4#define EDM4EIC_HadronicFinalState_H
5
7
9#include "podio/RelationRange.h"
10#include <vector>
11
12#include "podio/utilities/MaybeSharedPtr.h"
13#include "podio/detail/OrderKey.h"
14
15#include <ostream>
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 podio::detail {
29// Internal function used in less comparison operators of the datatypes and interface types
30OrderKey getOrderKey(const edm4eic::HadronicFinalState& obj);
31};
32
33namespace edm4eic {
34
35class MutableHadronicFinalState;
36class HadronicFinalStateCollection;
37class HadronicFinalStateCollectionData;
38
39/** @class HadronicFinalState
40 * Summed quantities of the hadronic final state
41 * @author: T. Kutz
42 */
44
49 friend podio::detail::OrderKey podio::detail::getOrderKey(const HadronicFinalState & obj);
50
51public:
54
55 /// default constructor
57
58 /// Constructor initializing all members
59 HadronicFinalState(float sigma, float pT, float gamma);
60
61 /// copy constructor
62 HadronicFinalState(const HadronicFinalState& other) = default;
63
64 /// copy-assignment operator
66
67 /// create a mutable deep-copy of the object with identical relations
68 /// if cloneRelations=false, the relations are not cloned and will be empty
69 MutableHadronicFinalState clone(bool cloneRelations=true) const;
70
71 /// destructor
73
74 /// converting constructor from mutable object
76
78
79public:
80
81 static constexpr auto typeName = "edm4eic::HadronicFinalState";
82
83 /// Access the Longitudinal energy-momentum balance (aka E - pz)
84 float getSigma() const;
85
86 /// Access the Transverse momentum
87 float getPT() const;
88
89 /// Access the Hadronic angle
90 float getGamma() const;
91
92
93
94 std::size_t hadrons_size() const;
96 std::vector<edm4eic::ReconstructedParticle>::const_iterator hadrons_begin() const;
97 std::vector<edm4eic::ReconstructedParticle>::const_iterator hadrons_end() const;
98 podio::RelationRange<edm4eic::ReconstructedParticle> getHadrons() const;
99
100
101 /// check whether the object is actually available
102 bool isAvailable() const;
103 /// disconnect from HadronicFinalStateObj instance
104 void unlink() { m_obj = podio::utils::MaybeSharedPtr<HadronicFinalStateObj>{nullptr}; }
105
106 bool operator==(const HadronicFinalState& other) const { return m_obj == other.m_obj; }
107 bool operator==(const MutableHadronicFinalState& other) const;
108
109 bool operator!=(const HadronicFinalState& other) const { return !(*this == other); }
110 bool operator!=(const MutableHadronicFinalState& other) const { return !(*this == other); }
111
112 // less comparison operator, so that objects can be e.g. stored in sets.
113 bool operator<(const HadronicFinalState& other) const { return podio::detail::getOrderKey(*this) < podio::detail::getOrderKey(other); }
114
115 podio::ObjectID id() const { return getObjectID(); }
116
117 const podio::ObjectID getObjectID() const;
118
120 using std::swap;
121 swap(a.m_obj, b.m_obj); // swap out the internal pointers
122 }
123
124private:
125 /// constructor from existing HadronicFinalStateObj
126 explicit HadronicFinalState(podio::utils::MaybeSharedPtr<HadronicFinalStateObj> obj);
128
129 podio::utils::MaybeSharedPtr<HadronicFinalStateObj> m_obj{nullptr};
130};
131
132std::ostream& operator<<(std::ostream& o, const HadronicFinalState& value);
133
134#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
135void to_json(nlohmann::json& j, const HadronicFinalState& value);
136#endif
137
138
139} // namespace edm4eic
140
141
142#endif
Definition HadronicFinalStateCollectionData.h:31
Definition HadronicFinalStateCollection.h:91
Definition HadronicFinalStateCollection.h:36
Definition HadronicFinalState.h:43
HadronicFinalState()
default constructor
Definition HadronicFinalState.cc:20
static HadronicFinalState makeEmpty()
Definition HadronicFinalState.cc:61
bool operator!=(const HadronicFinalState &other) const
Definition HadronicFinalState.h:109
std::vector< edm4eic::ReconstructedParticle >::const_iterator hadrons_end() const
Definition HadronicFinalState.cc:77
HadronicFinalState(const HadronicFinalState &other)=default
copy constructor
bool isAvailable() const
check whether the object is actually available
Definition HadronicFinalState.cc:106
friend class MutableHadronicFinalState
Definition HadronicFinalState.h:45
bool operator!=(const MutableHadronicFinalState &other) const
Definition HadronicFinalState.h:110
bool operator<(const HadronicFinalState &other) const
Definition HadronicFinalState.h:113
friend void swap(HadronicFinalState &a, HadronicFinalState &b)
Definition HadronicFinalState.h:119
float getGamma() const
Access the Hadronic angle.
Definition HadronicFinalState.cc:67
std::size_t hadrons_size() const
Definition HadronicFinalState.cc:83
MutableHadronicFinalState clone(bool cloneRelations=true) const
Definition HadronicFinalState.cc:35
bool operator==(const HadronicFinalState &other) const
Definition HadronicFinalState.h:106
~HadronicFinalState()=default
destructor
HadronicFinalState & operator=(HadronicFinalState other)
copy-assignment operator
Definition HadronicFinalState.cc:30
void unlink()
disconnect from HadronicFinalStateObj instance
Definition HadronicFinalState.h:104
std::vector< edm4eic::ReconstructedParticle >::const_iterator hadrons_begin() const
Definition HadronicFinalState.cc:71
float getPT() const
Access the Transverse momentum.
Definition HadronicFinalState.cc:66
float getSigma() const
Access the Longitudinal energy-momentum balance (aka E - pz)
Definition HadronicFinalState.cc:65
podio::ObjectID id() const
Definition HadronicFinalState.h:115
static constexpr auto typeName
Definition HadronicFinalState.h:81
friend class HadronicFinalStateCollection
Definition HadronicFinalState.h:46
const podio::ObjectID getObjectID() const
Definition HadronicFinalState.cc:110
podio::RelationRange< edm4eic::ReconstructedParticle > getHadrons() const
Definition HadronicFinalState.cc:94
Definition HadronicFinalStateObj.h:20
Definition MutableHadronicFinalState.h:35
Definition ReconstructedParticle.h:54
Definition CalorimeterHit.cc:17
std::ostream & operator<<(std::ostream &o, const CalorimeterHit &value)
Definition CalorimeterHit.cc:103
Definition CalorimeterHit.h:31
OrderKey getOrderKey(const edm4eic::CalorimeterHit &obj)
Definition CalorimeterHit.cc:150