3#ifndef EDM4EIC_MutableJet_H
4#define EDM4EIC_MutableJet_H
11#include "edm4hep/Vector3f.h"
12#include "podio/RelationRange.h"
16#include "podio/utilities/MaybeSharedPtr.h"
20#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
21#include "nlohmann/json_fwd.hpp"
51 MutableJet(
const std::uint32_t type,
const float area,
const float energy,
const float backgroundEnergyDensity,
const edm4hep::Vector3f& momentum);
88 void setType(
const std::uint32_t type);
108 void setMomentum(
const edm4hep::Vector3f& momentum);
117 std::vector<edm4eic::ReconstructedParticle>::const_iterator
constituents_begin()
const;
118 std::vector<edm4eic::ReconstructedParticle>::const_iterator
constituents_end()
const;
119 podio::RelationRange<edm4eic::ReconstructedParticle>
getConstituents()
const;
129 void unlink() { m_obj = podio::utils::MaybeSharedPtr<JetObj>{
nullptr}; }
144 friend std::hash<MutableJet>;
148 swap(a.m_obj, b.m_obj);
153 explicit MutableJet(podio::utils::MaybeSharedPtr<JetObj> obj);
155 podio::utils::MaybeSharedPtr<JetObj> m_obj{
new JetObj{}, podio::utils::MarkOwned};
158#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
159void to_json(nlohmann::json& j,
const MutableJet& value);
170 return std::hash<edm4eic::JetObj*>{}(obj.m_obj.get());
Definition JetCollection.h:139
Definition MutableJet.h:37
void setArea(const float area)
Set the Jet area.
Definition MutableJet.cc:53
podio::RelationRange< edm4eic::ReconstructedParticle > getConstituents() const
Definition MutableJet.cc:91
constexpr bool operator!=(const MutableJet &other) const
Definition MutableJet.h:134
~MutableJet()=default
destructor
std::uint32_t getType() const
Access the Jet type as enumerated in fastjet::JetAlgorithm.
Definition MutableJet.cc:44
bool operator<(const MutableJet &other) const
Definition MutableJet.h:138
const edm4hep::Vector3f & getMomentum() const
Access the Jet 3-momentum [GeV].
Definition MutableJet.cc:48
MutableJet()=default
default constructor
constexpr bool operator==(const MutableJet &other) const
Definition MutableJet.h:131
float getBackgroundEnergy() const
Compute the background energy in [GeV].
Definition MutableJet.h:122
bool operator!=(const Jet &other) const
Definition MutableJet.h:135
void setBackgroundEnergyDensity(const float backgroundEnergyDensity)
Set the Background energy density [GeV/area].
Definition MutableJet.cc:57
std::size_t constituents_size() const
Definition MutableJet.cc:80
MutableJet clone(bool cloneRelations=true) const
Definition MutableJet.cc:31
MutableJet & operator=(MutableJet other) &&=delete
podio::ObjectID id() const
Definition MutableJet.h:140
JetCollection collection_type
Definition MutableJet.h:45
std::vector< edm4eic::ReconstructedParticle >::const_iterator constituents_end() const
Definition MutableJet.cc:74
void setEnergy(const float energy)
Set the Jet energy [GeV].
Definition MutableJet.cc:55
friend class JetCollection
Definition MutableJet.h:39
float getEnergy() const
Access the Jet energy [GeV].
Definition MutableJet.cc:46
void setType(const std::uint32_t type)
Set the Jet type as enumerated in fastjet::JetAlgorithm.
Definition MutableJet.cc:51
Jet object_type
Definition MutableJet.h:44
MutableJet(const MutableJet &other)=default
copy constructor
MutableJet & operator=(MutableJet other) &
copy-assignment operator
Definition MutableJet.cc:26
void addToConstituents(const edm4eic::ReconstructedParticle &)
Definition MutableJet.cc:63
friend class JetMutableCollectionIterator
Definition MutableJet.h:40
friend class Jet
Definition MutableJet.h:41
const podio::ObjectID getObjectID() const
Definition MutableJet.cc:108
void unlink()
disconnect from JetObj instance
Definition MutableJet.h:129
std::vector< edm4eic::ReconstructedParticle >::const_iterator constituents_begin() const
Definition MutableJet.cc:68
float getBackgroundEnergyDensity() const
Access the Background energy density [GeV/area].
Definition MutableJet.cc:47
void setMomentum(const edm4hep::Vector3f &momentum)
Set the Jet 3-momentum [GeV].
Definition MutableJet.cc:59
float getArea() const
Access the Jet area.
Definition MutableJet.cc:45
bool isAvailable() const
check whether the object is actually available
Definition MutableJet.cc:104
friend void swap(MutableJet &a, MutableJet &b)
Definition MutableJet.h:146
Definition ReconstructedParticle.h:54
Definition ArrowMapper.cc:61
OrderKey getOrderKey(const edm4eic::CalorimeterHit &obj)
Definition CalorimeterHit.cc:146
std::size_t operator()(const edm4eic::MutableJet &obj) const
Definition MutableJet.h:169