3#ifndef EDM4EIC_Truthiness_H
4#define EDM4EIC_Truthiness_H
11#include "edm4hep/MCParticle.h"
12#include "podio/RelationRange.h"
15#include "podio/utilities/MaybeSharedPtr.h"
16#include "podio/detail/OrderKey.h"
21#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
22#include "nlohmann/json_fwd.hpp"
33OrderKey
getOrderKey(
const edm4eic::Truthiness& obj);
85 static constexpr std::string_view
typeName =
"edm4eic::Truthiness";
103 std::vector<edm4eic::MCRecoParticleAssociation>::const_iterator
associations_begin()
const;
104 std::vector<edm4eic::MCRecoParticleAssociation>::const_iterator
associations_end()
const;
105 podio::RelationRange<edm4eic::MCRecoParticleAssociation>
getAssociations()
const;
126 void unlink() { m_obj = podio::utils::MaybeSharedPtr<TruthinessObj>{
nullptr}; }
141 friend std::hash<Truthiness>;
145 swap(a.m_obj, b.m_obj);
150 explicit Truthiness(podio::utils::MaybeSharedPtr<TruthinessObj> obj);
153 podio::utils::MaybeSharedPtr<TruthinessObj> m_obj{
nullptr};
158#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
159void to_json(nlohmann::json& j,
const Truthiness& value);
170 return std::hash<edm4eic::TruthinessObj*>{}(obj.m_obj.get());
178#if defined(__clang__)
179#pragma clang diagnostic push
180#pragma clang diagnostic ignored "-Wunknown-warning-option"
181#pragma clang diagnostic ignored "-Wdeprecated-redundant-constexpr-static-def"
182#pragma clang diagnostic ignored "-Wdeprecated"
184#pragma clang diagnostic pop
185#elif defined(__GNUC__)
186#pragma GCC diagnostic push
187#pragma GCC diagnostic ignored "-Wdeprecated"
189#pragma GCC diagnostic pop
Definition MCRecoParticleAssociation.h:47
Definition MutableTruthiness.h:38
Definition ReconstructedParticle.h:54
Definition TruthinessCollectionData.h:33
Definition TruthinessCollection.h:137
Definition TruthinessContribution.h:18
Definition Truthiness.h:46
bool operator==(const Truthiness &other) const
Definition Truthiness.h:128
std::vector< edm4hep::MCParticle >::const_iterator unassociatedMCParticles_end() const
Definition Truthiness.cc:144
podio::RelationRange< edm4hep::MCParticle > getUnassociatedMCParticles() const
Definition Truthiness.cc:161
std::vector< edm4eic::MCRecoParticleAssociation >::const_iterator associations_begin() const
Definition Truthiness.cc:106
bool operator!=(const MutableTruthiness &other) const
Definition Truthiness.h:132
podio::ObjectID id() const
Definition Truthiness.h:137
bool isAvailable() const
check whether the object is actually available
Definition Truthiness.cc:237
float getUnassociatedMCParticlesContribution() const
Access the Contribution from unassociated MC particles.
Definition Truthiness.cc:101
const edm4eic::TruthinessContribution & getAssociationContribution() const
Access the Contribution from all associated particles.
Definition Truthiness.cc:100
podio::RelationRange< edm4eic::TruthinessContribution > getAssociationContributions() const
Definition Truthiness.cc:225
static constexpr std::string_view typeName
Definition Truthiness.h:85
bool operator<(const Truthiness &other) const
Definition Truthiness.h:135
podio::RelationRange< edm4eic::ReconstructedParticle > getUnassociatedRecoParticles() const
Definition Truthiness.cc:193
std::size_t unassociatedRecoParticles_size() const
Definition Truthiness.cc:182
std::vector< edm4eic::TruthinessContribution >::const_iterator associationContributions_end() const
Definition Truthiness.cc:208
friend void swap(Truthiness &a, Truthiness &b)
Definition Truthiness.h:143
std::size_t associationContributions_size() const
Definition Truthiness.cc:214
podio::RelationRange< edm4eic::MCRecoParticleAssociation > getAssociations() const
Definition Truthiness.cc:129
static Truthiness makeEmpty()
Definition Truthiness.cc:95
std::vector< edm4eic::MCRecoParticleAssociation >::const_iterator associations_end() const
Definition Truthiness.cc:112
friend class TruthinessCollection
Definition Truthiness.h:49
std::vector< edm4eic::ReconstructedParticle >::const_iterator unassociatedRecoParticles_end() const
Definition Truthiness.cc:176
friend class TruthinessCollectionIterator
Definition Truthiness.h:51
void unlink()
disconnect from TruthinessObj instance
Definition Truthiness.h:126
std::vector< edm4hep::MCParticle >::const_iterator unassociatedMCParticles_begin() const
Definition Truthiness.cc:138
Truthiness(const Truthiness &other)=default
copy constructor
MutableTruthiness mutable_type
Definition Truthiness.h:55
float getTruthiness() const
Access the Overall truthiness of the entire event.
Definition Truthiness.cc:99
float getUnassociatedRecoParticlesContribution() const
Access the Contribution from unassociated reconstructed particles.
Definition Truthiness.cc:102
std::size_t associations_size() const
Definition Truthiness.cc:118
std::size_t unassociatedMCParticles_size() const
Definition Truthiness.cc:150
friend class MutableTruthiness
Definition Truthiness.h:48
Truthiness & operator=(Truthiness other) &
copy-assignment operator
Definition Truthiness.cc:31
const podio::ObjectID getObjectID() const
Definition Truthiness.cc:241
TruthinessCollection collection_type
Definition Truthiness.h:56
~Truthiness()=default
destructor
std::vector< edm4eic::ReconstructedParticle >::const_iterator unassociatedRecoParticles_begin() const
Definition Truthiness.cc:170
Truthiness()
default constructor
Definition Truthiness.cc:20
MutableTruthiness clone(bool cloneRelations=true) const
Definition Truthiness.cc:36
Truthiness & operator=(Truthiness other) &&=delete
std::vector< edm4eic::TruthinessContribution >::const_iterator associationContributions_begin() const
Definition Truthiness.cc:202
bool operator!=(const Truthiness &other) const
Definition Truthiness.h:131
Definition TruthinessObj.h:23
Definition CalorimeterHit.cc:17
std::ostream & operator<<(std::ostream &o, const CalorimeterHit &value)
Definition CalorimeterHit.cc:103
Definition CalorimeterHit.h:31
OrderKey getOrderKey(const edm4eic::CalorimeterHit &obj)
Definition CalorimeterHit.cc:150
std::size_t operator()(const edm4eic::Truthiness &obj) const
Definition Truthiness.h:169