3#ifndef EDM4EIC_MutableCluster_H
4#define EDM4EIC_MutableCluster_H
13#include "edm4hep/ParticleID.h"
14#include "edm4hep/Vector3f.h"
15#include "podio/RelationRange.h"
19#include "podio/utilities/MaybeSharedPtr.h"
23#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
24#include "nlohmann/json_fwd.hpp"
50 MutableCluster(std::int32_t
type,
float energy,
float energyError,
float time,
float timeError, std::uint32_t
nhits, edm4hep::Vector3f
position,
edm4eic::Cov3f positionError,
float intrinsicTheta,
float intrinsicPhi,
edm4eic::Cov2f intrinsicDirectionError);
104 void setType(std::int32_t value);
108 [[deprecated(
"use getType instead")]]
109 std::int32_t&
type();
116 [[deprecated(
"use getEnergy instead")]]
124 [[deprecated(
"use getEnergyError instead")]]
132 [[deprecated(
"use getTime instead")]]
140 [[deprecated(
"use getTimeError instead")]]
148 [[deprecated(
"use getNhits instead")]]
149 std::uint32_t&
nhits();
156 [[deprecated(
"use getPosition instead")]]
164 [[deprecated(
"use getPositionError instead")]]
172 [[deprecated(
"use getIntrinsicTheta instead")]]
180 [[deprecated(
"use getIntrinsicPhi instead")]]
188 [[deprecated(
"use getIntrinsicDirectionError instead")]]
196 std::vector<edm4eic::Cluster>::const_iterator
clusters_begin()
const;
197 std::vector<edm4eic::Cluster>::const_iterator
clusters_end()
const;
198 podio::RelationRange<edm4eic::Cluster>
getClusters()
const;
202 std::vector<edm4eic::CalorimeterHit>::const_iterator
hits_begin()
const;
203 std::vector<edm4eic::CalorimeterHit>::const_iterator
hits_end()
const;
204 podio::RelationRange<edm4eic::CalorimeterHit>
getHits()
const;
209 std::vector<edm4hep::ParticleID>::const_iterator
particleIDs_end()
const;
235 void unlink() { m_obj = podio::utils::MaybeSharedPtr<ClusterObj>{
nullptr}; }
252 swap(a.m_obj, b.m_obj);
257 explicit MutableCluster(podio::utils::MaybeSharedPtr<ClusterObj> obj);
259 podio::utils::MaybeSharedPtr<ClusterObj> m_obj{
nullptr};
262#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
263void to_json(nlohmann::json& j,
const MutableCluster& value);
Definition CalorimeterHit.h:37
Definition ClusterCollection.h:92
Definition ClusterCollection.h:63
Definition MutableCluster.h:36
const edm4hep::Vector3f & getPosition() const
Access the Global position of the cluster [mm].
Definition MutableCluster.cc:75
podio::RelationRange< float > getSubdetectorEnergies() const
Definition MutableCluster.cc:325
std::vector< edm4hep::ParticleID >::const_iterator particleIDs_begin() const
Definition MutableCluster.cc:194
void setEnergy(float value)
Set the Reconstructed energy of the cluster [GeV].
Definition MutableCluster.cc:85
friend class Cluster
Definition MutableCluster.h:40
float getTime() const
Access the [ns].
Definition MutableCluster.cc:72
void addToShapeParameters(const float &)
Definition MutableCluster.cc:225
podio::RelationRange< edm4eic::CalorimeterHit > getHits() const
Definition MutableCluster.cc:181
std::vector< edm4eic::CalorimeterHit >::const_iterator hits_end() const
Definition MutableCluster.cc:164
podio::ObjectID id() const
Definition MutableCluster.h:246
std::vector< edm4eic::CalorimeterHit >::const_iterator hits_begin() const
Definition MutableCluster.cc:158
void addToParticleIDs(const edm4hep::ParticleID &)
Definition MutableCluster.cc:189
void setPositionError(edm4eic::Cov3f value)
Set the Covariance matrix of the position (6 Parameters).
Definition MutableCluster.cc:103
float getTimeError() const
Access the Error on the cluster time.
Definition MutableCluster.cc:73
void unlink()
disconnect from ClusterObj instance
Definition MutableCluster.h:235
float getEnergyError() const
Access the Error on the cluster energy [GeV].
Definition MutableCluster.cc:71
bool operator!=(const Cluster &other) const
Definition MutableCluster.h:241
void setPosition(edm4hep::Vector3f value)
Set the Global position of the cluster [mm].
Definition MutableCluster.cc:100
const edm4eic::Cov2f & getIntrinsicDirectionError() const
Access the Error on the intrinsic cluster propagation direction.
Definition MutableCluster.cc:79
bool isAvailable() const
check whether the object is actually available
Definition MutableCluster.cc:338
MutableCluster(const MutableCluster &other)=default
copy constructor
bool operator<(const MutableCluster &other) const
Definition MutableCluster.h:244
std::size_t particleIDs_size() const
Definition MutableCluster.cc:206
edm4eic::Cov2f & intrinsicDirectionError()
Get reference to Error on the intrinsic cluster propagation direction.
Definition MutableCluster.cc:114
std::size_t hits_size() const
Definition MutableCluster.cc:170
MutableCluster & operator=(MutableCluster other)
copy-assignment operator
Definition MutableCluster.cc:36
std::vector< edm4hep::ParticleID >::const_iterator particleIDs_end() const
Definition MutableCluster.cc:200
bool operator!=(const MutableCluster &other) const
Definition MutableCluster.h:240
float & intrinsicTheta()
Get reference to Intrinsic cluster propagation direction polar angle [rad].
Definition MutableCluster.cc:108
float getIntrinsicTheta() const
Access the Intrinsic cluster propagation direction polar angle [rad].
Definition MutableCluster.cc:77
void addToHits(const edm4eic::CalorimeterHit &)
Definition MutableCluster.cc:153
std::int32_t & type()
Get reference to Flag-word that defines the type of the cluster.
Definition MutableCluster.cc:84
friend void swap(MutableCluster &a, MutableCluster &b)
Definition MutableCluster.h:250
void setIntrinsicDirectionError(edm4eic::Cov2f value)
Set the Error on the intrinsic cluster propagation direction.
Definition MutableCluster.cc:112
podio::RelationRange< edm4hep::ParticleID > getParticleIDs() const
Definition MutableCluster.cc:217
std::vector< edm4eic::Cluster >::const_iterator clusters_end() const
Definition MutableCluster.cc:128
void setIntrinsicTheta(float value)
Set the Intrinsic cluster propagation direction polar angle [rad].
Definition MutableCluster.cc:106
friend class ClusterCollection
Definition MutableCluster.h:38
void setNhits(std::uint32_t value)
Set the Number of hits in the cluster.
Definition MutableCluster.cc:97
edm4eic::Cov3f & positionError()
Get reference to Covariance matrix of the position (6 Parameters).
Definition MutableCluster.cc:105
float & energyError()
Get reference to Error on the cluster energy [GeV].
Definition MutableCluster.cc:90
void setEnergyError(float value)
Set the Error on the cluster energy [GeV].
Definition MutableCluster.cc:88
std::int32_t getType() const
Access the Flag-word that defines the type of the cluster.
Definition MutableCluster.cc:69
float & intrinsicPhi()
Get reference to Intrinsic cluster propagation direction azimuthal angle [rad].
Definition MutableCluster.cc:111
void addToSubdetectorEnergies(const float &)
Definition MutableCluster.cc:297
std::vector< float >::const_iterator hitContributions_begin() const
Definition MutableCluster.cc:266
std::vector< float >::const_iterator subdetectorEnergies_begin() const
Definition MutableCluster.cc:302
std::uint32_t getNhits() const
Access the Number of hits in the cluster.
Definition MutableCluster.cc:74
edm4hep::Vector3f & position()
Get reference to Global position of the cluster [mm].
Definition MutableCluster.cc:102
std::size_t clusters_size() const
Definition MutableCluster.cc:134
void addToHitContributions(const float &)
Definition MutableCluster.cc:261
std::size_t hitContributions_size() const
Definition MutableCluster.cc:278
bool operator==(const MutableCluster &other) const
Definition MutableCluster.h:237
~MutableCluster()=default
destructor
std::vector< edm4eic::Cluster >::const_iterator clusters_begin() const
Definition MutableCluster.cc:122
float getEnergy() const
Access the Reconstructed energy of the cluster [GeV].
Definition MutableCluster.cc:70
std::size_t shapeParameters_size() const
Definition MutableCluster.cc:242
MutableCluster()
default constructor
Definition MutableCluster.cc:18
const edm4eic::Cov3f & getPositionError() const
Access the Covariance matrix of the position (6 Parameters).
Definition MutableCluster.cc:76
MutableCluster clone(bool cloneRelations=true) const
Definition MutableCluster.cc:41
void setTimeError(float value)
Set the Error on the cluster time.
Definition MutableCluster.cc:94
float & energy()
Get reference to Reconstructed energy of the cluster [GeV].
Definition MutableCluster.cc:87
std::vector< float >::const_iterator shapeParameters_end() const
Definition MutableCluster.cc:236
const podio::ObjectID getObjectID() const
Definition MutableCluster.cc:342
podio::RelationRange< edm4eic::Cluster > getClusters() const
Definition MutableCluster.cc:145
podio::RelationRange< float > getHitContributions() const
Definition MutableCluster.cc:289
void addToClusters(const edm4eic::Cluster &)
Definition MutableCluster.cc:117
float getIntrinsicPhi() const
Access the Intrinsic cluster propagation direction azimuthal angle [rad].
Definition MutableCluster.cc:78
std::vector< float >::const_iterator subdetectorEnergies_end() const
Definition MutableCluster.cc:308
void setType(std::int32_t value)
Set the Flag-word that defines the type of the cluster.
Definition MutableCluster.cc:82
void setIntrinsicPhi(float value)
Set the Intrinsic cluster propagation direction azimuthal angle [rad].
Definition MutableCluster.cc:109
std::uint32_t & nhits()
Get reference to Number of hits in the cluster.
Definition MutableCluster.cc:99
std::vector< float >::const_iterator hitContributions_end() const
Definition MutableCluster.cc:272
float & time()
Get reference to [ns].
Definition MutableCluster.cc:93
float & timeError()
Get reference to Error on the cluster time.
Definition MutableCluster.cc:96
void setTime(float value)
Set the [ns].
Definition MutableCluster.cc:91
std::vector< float >::const_iterator shapeParameters_begin() const
Definition MutableCluster.cc:230
podio::RelationRange< float > getShapeParameters() const
Definition MutableCluster.cc:253
std::size_t subdetectorEnergies_size() const
Definition MutableCluster.cc:314
Definition CalorimeterHit.cc:17