3#ifndef EDM4EIC_MutableProtoCluster_H
4#define EDM4EIC_MutableProtoCluster_H
11#include "podio/RelationRange.h"
14#include "podio/utilities/MaybeSharedPtr.h"
18#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
19#include "nlohmann/json_fwd.hpp"
73 std::vector<edm4eic::CalorimeterHit>::const_iterator
hits_begin()
const;
74 std::vector<edm4eic::CalorimeterHit>::const_iterator
hits_end()
const;
75 podio::RelationRange<edm4eic::CalorimeterHit>
getHits()
const;
80 std::vector<float>::const_iterator
weights_end()
const;
81 podio::RelationRange<float>
getWeights()
const;
88 void unlink() { m_obj = podio::utils::MaybeSharedPtr<ProtoClusterObj>{
nullptr}; }
103 friend std::hash<MutableProtoCluster>;
107 swap(a.m_obj, b.m_obj);
114 podio::utils::MaybeSharedPtr<ProtoClusterObj> m_obj{
nullptr};
117#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
127struct std::hash<
edm4eic::MutableProtoCluster> {
129 return std::hash<edm4eic::ProtoClusterObj*>{}(obj.m_obj.get());
Definition CalorimeterHit.h:46
Definition MutableProtoCluster.h:35
friend class ProtoClusterCollection
Definition MutableProtoCluster.h:37
MutableProtoCluster clone(bool cloneRelations=true) const
Definition MutableProtoCluster.cc:27
bool operator==(const MutableProtoCluster &other) const
Definition MutableProtoCluster.h:90
friend class ProtoClusterMutableCollectionIterator
Definition MutableProtoCluster.h:38
std::size_t weights_size() const
Definition MutableProtoCluster.cc:100
MutableProtoCluster & operator=(MutableProtoCluster other) &
copy-assignment operator
Definition MutableProtoCluster.cc:22
MutableProtoCluster & operator=(MutableProtoCluster other) &&=delete
podio::ObjectID id() const
Definition MutableProtoCluster.h:99
bool operator<(const MutableProtoCluster &other) const
Definition MutableProtoCluster.h:97
void addToHits(const edm4eic::CalorimeterHit &)
Definition MutableProtoCluster.cc:47
friend void swap(MutableProtoCluster &a, MutableProtoCluster &b)
Definition MutableProtoCluster.h:105
std::vector< edm4eic::CalorimeterHit >::const_iterator hits_end() const
Definition MutableProtoCluster.cc:58
bool isAvailable() const
check whether the object is actually available
Definition MutableProtoCluster.cc:124
void addToWeights(const float &)
Definition MutableProtoCluster.cc:83
const podio::ObjectID getObjectID() const
Definition MutableProtoCluster.cc:128
bool operator!=(const MutableProtoCluster &other) const
Definition MutableProtoCluster.h:93
std::vector< float >::const_iterator weights_end() const
Definition MutableProtoCluster.cc:94
~MutableProtoCluster()=default
destructor
bool operator!=(const ProtoCluster &other) const
Definition MutableProtoCluster.h:94
friend class ProtoCluster
Definition MutableProtoCluster.h:39
podio::RelationRange< float > getWeights() const
Definition MutableProtoCluster.cc:111
std::vector< float >::const_iterator weights_begin() const
Definition MutableProtoCluster.cc:88
podio::RelationRange< edm4eic::CalorimeterHit > getHits() const
Definition MutableProtoCluster.cc:75
void unlink()
disconnect from ProtoClusterObj instance
Definition MutableProtoCluster.h:88
MutableProtoCluster()
default constructor
Definition MutableProtoCluster.cc:18
ProtoClusterCollection collection_type
Definition MutableProtoCluster.h:43
std::vector< edm4eic::CalorimeterHit >::const_iterator hits_begin() const
Definition MutableProtoCluster.cc:52
ProtoCluster object_type
Definition MutableProtoCluster.h:42
MutableProtoCluster(const MutableProtoCluster &other)=default
copy constructor
std::size_t hits_size() const
Definition MutableProtoCluster.cc:64
Definition ProtoClusterCollection.h:137
Definition ProtoCluster.h:43
Definition CalorimeterHit.cc:17
OrderKey getOrderKey(const edm4eic::CalorimeterHit &obj)
Definition CalorimeterHit.cc:150
std::size_t operator()(const edm4eic::MutableProtoCluster &obj) const
Definition MutableProtoCluster.h:128