3#ifndef EICD_MutableCluster_H
4#define EICD_MutableCluster_H
13#include "edm4hep/ParticleID.h"
14#include "edm4hep/Vector3f.h"
15#include "podio/RelationRange.h"
18#include "podio/ObjectID.h"
21#ifdef PODIO_JSON_OUTPUT
22#include "nlohmann/json.hpp"
44 MutableCluster(std::int32_t type,
float energy,
float energyError,
float time,
float timeError, std::uint32_t nhits, edm4hep::Vector3f
position,
eicd::Cov3f positionError,
float intrinsicTheta,
float intrinsicPhi,
eicd::Cov2f intrinsicDirectionError);
67 const std::int32_t&
getType()
const;
82 const std::uint32_t&
getNhits()
const;
102 void setType(std::int32_t value);
145 std::vector<eicd::Cluster>::const_iterator
clusters_begin()
const;
146 std::vector<eicd::Cluster>::const_iterator
clusters_end()
const;
147 podio::RelationRange<eicd::Cluster>
getClusters()
const;
151 std::vector<eicd::CalorimeterHit>::const_iterator
hits_begin()
const;
152 std::vector<eicd::CalorimeterHit>::const_iterator
hits_end()
const;
153 podio::RelationRange<eicd::CalorimeterHit>
getHits()
const;
158 std::vector<edm4hep::ParticleID>::const_iterator
particleIDs_end()
const;
198 swap(a.m_obj, b.m_obj);
205#ifdef PODIO_JSON_OUTPUT
206void to_json(nlohmann::json& j,
const MutableCluster& value);
Definition: CalorimeterHit.h:27
Definition: ClusterCollection.h:82
Definition: ClusterCollection.h:57
Definition: ClusterObj.h:20
Definition: MutableCluster.h:34
friend class Cluster
Definition: MutableCluster.h:38
MutableCluster & operator=(MutableCluster other)
copy-assignment operator
Definition: MutableCluster.cc:39
podio::RelationRange< eicd::CalorimeterHit > getHits() const
Definition: MutableCluster.cc:154
MutableCluster()
default constructor
Definition: MutableCluster.cc:16
void addToClusters(eicd::Cluster)
Definition: MutableCluster.cc:90
void setIntrinsicTheta(float value)
Set the Intrinsic cluster propagation direction polar angle [rad].
Definition: MutableCluster.cc:84
std::vector< float >::const_iterator shapeParameters_begin() const
Definition: MutableCluster.cc:203
void addToHitContributions(float)
Definition: MutableCluster.cc:234
void setType(std::int32_t value)
Set the Flagword that defines the type of the cluster.
Definition: MutableCluster.cc:74
void setEnergy(float value)
Set the Reconstructed energy of the cluster [GeV].
Definition: MutableCluster.cc:75
std::vector< float >::const_iterator hitContributions_end() const
Definition: MutableCluster.cc:245
const podio::ObjectID getObjectID() const
Definition: MutableCluster.cc:318
const float & getTimeError() const
Access the Error on the cluster time.
Definition: MutableCluster.cc:65
unsigned int particleIDs_size() const
Definition: MutableCluster.cc:179
unsigned int hitContributions_size() const
Definition: MutableCluster.cc:251
std::vector< eicd::Cluster >::const_iterator clusters_begin() const
Definition: MutableCluster.cc:95
void setIntrinsicDirectionError(eicd::Cov2f value)
Set the Error on the intrinsic cluster propagation direction.
Definition: MutableCluster.cc:86
const float & getEnergyError() const
Access the Error on the cluster energy [GeV].
Definition: MutableCluster.cc:63
void addToShapeParameters(float)
Definition: MutableCluster.cc:198
void addToParticleIDs(edm4hep::ParticleID)
Definition: MutableCluster.cc:162
podio::RelationRange< float > getHitContributions() const
Definition: MutableCluster.cc:262
std::vector< eicd::Cluster >::const_iterator clusters_end() const
Definition: MutableCluster.cc:101
const eicd::Cov3f & getPositionError() const
Access the Covariance matrix of the position (6 Parameters).
Definition: MutableCluster.cc:68
eicd::Cov2f & intrinsicDirectionError()
Get reference to Error on the intrinsic cluster propagation direction.
Definition: MutableCluster.cc:87
friend void swap(MutableCluster &a, MutableCluster &b)
Definition: MutableCluster.h:196
std::vector< float >::const_iterator shapeParameters_end() const
Definition: MutableCluster.cc:209
unsigned int hits_size() const
Definition: MutableCluster.cc:143
MutableCluster clone() const
create a mutable deep-copy of the object with identical relations
Definition: MutableCluster.cc:50
const float & getIntrinsicTheta() const
Access the Intrinsic cluster propagation direction polar angle [rad].
Definition: MutableCluster.cc:69
podio::RelationRange< eicd::Cluster > getClusters() const
Definition: MutableCluster.cc:118
~MutableCluster()
destructor
Definition: MutableCluster.cc:54
const edm4hep::Vector3f & getPosition() const
Access the Global position of the cluster [mm].
Definition: MutableCluster.cc:67
std::vector< float >::const_iterator hitContributions_begin() const
Definition: MutableCluster.cc:239
std::vector< eicd::CalorimeterHit >::const_iterator hits_begin() const
Definition: MutableCluster.cc:131
bool isAvailable() const
check whether the object is actually available
Definition: MutableCluster.cc:311
unsigned int clusters_size() const
Definition: MutableCluster.cc:107
podio::RelationRange< float > getShapeParameters() const
Definition: MutableCluster.cc:226
unsigned int shapeParameters_size() const
Definition: MutableCluster.cc:215
void setNhits(std::uint32_t value)
Set the Number of hits in the cluster.
Definition: MutableCluster.cc:79
const std::int32_t & getType() const
Access the Flagword that defines the type of the cluster.
Definition: MutableCluster.cc:61
void setEnergyError(float value)
Set the Error on the cluster energy [GeV].
Definition: MutableCluster.cc:76
std::vector< eicd::CalorimeterHit >::const_iterator hits_end() const
Definition: MutableCluster.cc:137
std::vector< float >::const_iterator subdetectorEnergies_end() const
Definition: MutableCluster.cc:281
const eicd::Cov2f & getIntrinsicDirectionError() const
Access the Error on the intrinsic cluster propagation direction.
Definition: MutableCluster.cc:71
void addToHits(eicd::CalorimeterHit)
Definition: MutableCluster.cc:126
bool operator<(const MutableCluster &other) const
Definition: MutableCluster.h:190
std::vector< edm4hep::ParticleID >::const_iterator particleIDs_end() const
Definition: MutableCluster.cc:173
void setTime(float value)
Set the [ns].
Definition: MutableCluster.cc:77
bool operator==(const MutableCluster &other) const
Definition: MutableCluster.h:186
eicd::Cov3f & positionError()
Get reference to Covariance matrix of the position (6 Parameters).
Definition: MutableCluster.cc:83
podio::RelationRange< float > getSubdetectorEnergies() const
Definition: MutableCluster.cc:298
const float & getEnergy() const
Access the Reconstructed energy of the cluster [GeV].
Definition: MutableCluster.cc:62
void addToSubdetectorEnergies(float)
Definition: MutableCluster.cc:270
std::vector< edm4hep::ParticleID >::const_iterator particleIDs_begin() const
Definition: MutableCluster.cc:167
unsigned int subdetectorEnergies_size() const
Definition: MutableCluster.cc:287
void setTimeError(float value)
Set the Error on the cluster time.
Definition: MutableCluster.cc:78
void setPositionError(eicd::Cov3f value)
Set the Covariance matrix of the position (6 Parameters).
Definition: MutableCluster.cc:82
const float & getIntrinsicPhi() const
Access the Intrinsic cluster propagation direction azimuthal angle [rad].
Definition: MutableCluster.cc:70
podio::RelationRange< edm4hep::ParticleID > getParticleIDs() const
Definition: MutableCluster.cc:190
const float & getTime() const
Access the [ns].
Definition: MutableCluster.cc:64
void setIntrinsicPhi(float value)
Set the Intrinsic cluster propagation direction azimuthal angle [rad].
Definition: MutableCluster.cc:85
void unlink()
disconnect from ClusterObj instance
Definition: MutableCluster.h:184
void setPosition(edm4hep::Vector3f value)
Set the Global position of the cluster [mm].
Definition: MutableCluster.cc:80
edm4hep::Vector3f & position()
Get reference to Global position of the cluster [mm].
Definition: MutableCluster.cc:81
std::vector< float >::const_iterator subdetectorEnergies_begin() const
Definition: MutableCluster.cc:275
const std::uint32_t & getNhits() const
Access the Number of hits in the cluster.
Definition: MutableCluster.cc:66
unsigned int id() const
Definition: MutableCluster.h:192
Definition: CalorimeterHit.cc:13