3#ifndef EDM4EIC_HadronicFinalState_H
4#define EDM4EIC_HadronicFinalState_H
9#include "podio/RelationRange.h"
12#include "podio/utilities/MaybeSharedPtr.h"
17#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
18#include "nlohmann/json_fwd.hpp"
25class MutableHadronicFinalState;
26class HadronicFinalStateCollection;
27class HadronicFinalStateCollectionData;
83 std::vector<edm4eic::ReconstructedParticle>::const_iterator
hadrons_begin()
const;
84 std::vector<edm4eic::ReconstructedParticle>::const_iterator
hadrons_end()
const;
85 podio::RelationRange<edm4eic::ReconstructedParticle>
getHadrons()
const;
91 void unlink() { m_obj = podio::utils::MaybeSharedPtr<HadronicFinalStateObj>{
nullptr}; }
108 swap(a.m_obj, b.m_obj);
116 podio::utils::MaybeSharedPtr<HadronicFinalStateObj> m_obj{
nullptr};
119std::ostream&
operator<<(std::ostream& o,
const HadronicFinalState& value);
121#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
122void to_json(nlohmann::json& j,
const HadronicFinalState& value);
Definition HadronicFinalStateCollectionData.h:31
Definition HadronicFinalStateCollection.h:92
Definition HadronicFinalStateCollection.h:37
Definition HadronicFinalState.h:33
HadronicFinalState()
default constructor
Definition HadronicFinalState.cc:20
static HadronicFinalState makeEmpty()
Definition HadronicFinalState.cc:61
bool operator!=(const HadronicFinalState &other) const
Definition HadronicFinalState.h:96
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:35
bool operator!=(const MutableHadronicFinalState &other) const
Definition HadronicFinalState.h:97
bool operator<(const HadronicFinalState &other) const
Definition HadronicFinalState.h:100
friend void swap(HadronicFinalState &a, HadronicFinalState &b)
Definition HadronicFinalState.h:106
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:93
~HadronicFinalState()=default
destructor
HadronicFinalState & operator=(HadronicFinalState other)
copy-assignment operator
Definition HadronicFinalState.cc:30
void unlink()
disconnect from HadronicFinalStateObj instance
Definition HadronicFinalState.h:91
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:102
friend class HadronicFinalStateCollection
Definition HadronicFinalState.h:36
const podio::ObjectID getObjectID() const
Definition HadronicFinalState.cc:110
podio::RelationRange< edm4eic::ReconstructedParticle > getHadrons() const
Definition HadronicFinalState.cc:94
Definition HadronicFinalStateObj.h:19
Definition MutableHadronicFinalState.h:31
Definition ReconstructedParticle.h:47
Definition CalorimeterHit.cc:17
std::ostream & operator<<(std::ostream &o, const CalorimeterHit &value)
Definition CalorimeterHit.cc:103