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"
92 [[deprecated(
"use getType instead")]]
93 std::uint32_t&
type();
100 [[deprecated(
"use getArea instead")]]
108 [[deprecated(
"use getEnergy instead")]]
116 [[deprecated(
"use getBackgroundEnergyDensity instead")]]
124 [[deprecated(
"use getMomentum instead")]]
132 std::vector<edm4eic::ReconstructedParticle>::const_iterator
constituents_begin()
const;
133 std::vector<edm4eic::ReconstructedParticle>::const_iterator
constituents_end()
const;
134 podio::RelationRange<edm4eic::ReconstructedParticle>
getConstituents()
const;
144 void unlink() { m_obj = podio::utils::MaybeSharedPtr<JetObj>{
nullptr}; }
159 friend std::hash<MutableJet>;
163 swap(a.m_obj, b.m_obj);
168 explicit MutableJet(podio::utils::MaybeSharedPtr<JetObj> obj);
170 podio::utils::MaybeSharedPtr<JetObj> m_obj{
new JetObj{}, podio::utils::MarkOwned};
173#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
174void to_json(nlohmann::json& j,
const MutableJet& value);
185 return std::hash<edm4eic::JetObj*>{}(obj.m_obj.get());
Definition JetCollection.h:138
Definition MutableJet.h:37
void setArea(const float area)
Set the Jet area.
Definition MutableJet.cc:54
podio::RelationRange< edm4eic::ReconstructedParticle > getConstituents() const
Definition MutableJet.cc:96
~MutableJet()=default
destructor
float & energy()
Get reference to Jet energy [GeV].
Definition MutableJet.cc:59
std::uint32_t getType() const
Access the Jet type as enumerated in fastjet::JetAlgorithm.
Definition MutableJet.cc:44
edm4hep::Vector3f & momentum()
Get reference to Jet 3-momentum [GeV].
Definition MutableJet.cc:65
bool operator!=(const MutableJet &other) const
Definition MutableJet.h:149
bool operator<(const MutableJet &other) const
Definition MutableJet.h:153
const edm4hep::Vector3f & getMomentum() const
Access the Jet 3-momentum [GeV].
Definition MutableJet.cc:48
MutableJet()=default
default constructor
float getBackgroundEnergy() const
Compute the background energy in [GeV].
Definition MutableJet.h:137
bool operator!=(const Jet &other) const
Definition MutableJet.h:150
void setBackgroundEnergyDensity(const float backgroundEnergyDensity)
Set the Background energy density [GeV/area].
Definition MutableJet.cc:60
std::size_t constituents_size() const
Definition MutableJet.cc:85
MutableJet clone(bool cloneRelations=true) const
Definition MutableJet.cc:31
std::uint32_t & type()
Get reference to Jet type as enumerated in fastjet::JetAlgorithm.
Definition MutableJet.cc:53
MutableJet & operator=(MutableJet other) &&=delete
podio::ObjectID id() const
Definition MutableJet.h:155
JetCollection collection_type
Definition MutableJet.h:45
float & backgroundEnergyDensity()
Get reference to Background energy density [GeV/area].
Definition MutableJet.cc:62
std::vector< edm4eic::ReconstructedParticle >::const_iterator constituents_end() const
Definition MutableJet.cc:79
void setEnergy(const float energy)
Set the Jet energy [GeV].
Definition MutableJet.cc:57
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
float & area()
Get reference to Jet area.
Definition MutableJet.cc:56
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
bool operator==(const MutableJet &other) const
Definition MutableJet.h:146
void addToConstituents(const edm4eic::ReconstructedParticle &)
Definition MutableJet.cc:68
friend class JetMutableCollectionIterator
Definition MutableJet.h:40
friend class Jet
Definition MutableJet.h:41
const podio::ObjectID getObjectID() const
Definition MutableJet.cc:113
void unlink()
disconnect from JetObj instance
Definition MutableJet.h:144
std::vector< edm4eic::ReconstructedParticle >::const_iterator constituents_begin() const
Definition MutableJet.cc:73
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:63
float getArea() const
Access the Jet area.
Definition MutableJet.cc:45
bool isAvailable() const
check whether the object is actually available
Definition MutableJet.cc:109
friend void swap(MutableJet &a, MutableJet &b)
Definition MutableJet.h:161
Definition ReconstructedParticle.h:54
Definition CalorimeterHit.cc:17
OrderKey getOrderKey(const edm4eic::CalorimeterHit &obj)
Definition CalorimeterHit.cc:146
std::size_t operator()(const edm4eic::MutableJet &obj) const
Definition MutableJet.h:184