3#ifndef EDM4EIC_IrtRadiatorInfo_H
4#define EDM4EIC_IrtRadiatorInfo_H
10#include "podio/utilities/MaybeSharedPtr.h"
11#include "podio/detail/OrderKey.h"
16#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
17#include "nlohmann/json_fwd.hpp"
28OrderKey
getOrderKey(
const edm4eic::IrtRadiatorInfo& obj);
57 IrtRadiatorInfo(
const std::uint16_t npe,
const std::uint16_t nhits,
const float angle);
80 static constexpr std::string_view
typeName =
"edm4eic::IrtRadiatorInfo";
83 std::uint16_t
getNpe()
const;
98 void unlink() { m_obj = podio::utils::MaybeSharedPtr<IrtRadiatorInfoObj>{
nullptr}; }
113 friend std::hash<IrtRadiatorInfo>;
117 swap(a.m_obj, b.m_obj);
122 explicit IrtRadiatorInfo(podio::utils::MaybeSharedPtr<IrtRadiatorInfoObj> obj);
125 podio::utils::MaybeSharedPtr<IrtRadiatorInfoObj> m_obj{
new IrtRadiatorInfoObj{}, podio::utils::MarkOwned};
130#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
142 return std::hash<edm4eic::IrtRadiatorInfoObj*>{}(obj.m_obj.get());
150#if defined(__clang__)
151 #pragma clang diagnostic push
152 #pragma clang diagnostic ignored "-Wunknown-warning-option"
153 #pragma clang diagnostic ignored "-Wdeprecated-redundant-constexpr-static-def"
154 #pragma clang diagnostic ignored "-Wdeprecated"
156 #pragma clang diagnostic pop
157#elif defined(__GNUC__)
158 #pragma GCC diagnostic push
159 #pragma GCC diagnostic ignored "-Wdeprecated"
161 #pragma GCC diagnostic pop
Definition IrtRadiatorInfoCollectionData.h:31
Definition IrtRadiatorInfoCollection.h:138
Definition IrtRadiatorInfo.h:41
bool operator<(const IrtRadiatorInfo &other) const
Definition IrtRadiatorInfo.h:107
friend class IrtRadiatorInfoCollectionIterator
Definition IrtRadiatorInfo.h:46
IrtRadiatorInfo & operator=(IrtRadiatorInfo other) &
copy-assignment operator
Definition IrtRadiatorInfo.cc:26
bool operator!=(const MutableIrtRadiatorInfo &other) const
Definition IrtRadiatorInfo.h:104
float getAngle() const
Access the Reconstructed Cherenkov angle.
Definition IrtRadiatorInfo.cc:52
const podio::ObjectID getObjectID() const
Definition IrtRadiatorInfo.cc:63
bool operator==(const IrtRadiatorInfo &other) const
Definition IrtRadiatorInfo.h:100
std::uint16_t getNpe() const
Access the Detected photoelectron count.
Definition IrtRadiatorInfo.cc:50
IrtRadiatorInfo()=default
default constructor
static IrtRadiatorInfo makeEmpty()
Definition IrtRadiatorInfo.cc:46
IrtRadiatorInfo & operator=(IrtRadiatorInfo other) &&=delete
IrtRadiatorInfoCollection collection_type
Definition IrtRadiatorInfo.h:51
~IrtRadiatorInfo()=default
destructor
bool isAvailable() const
check whether the object is actually available
Definition IrtRadiatorInfo.cc:59
friend void swap(IrtRadiatorInfo &a, IrtRadiatorInfo &b)
Definition IrtRadiatorInfo.h:115
MutableIrtRadiatorInfo clone(bool cloneRelations=true) const
Definition IrtRadiatorInfo.cc:31
friend class IrtRadiatorInfoCollection
Definition IrtRadiatorInfo.h:44
MutableIrtRadiatorInfo mutable_type
Definition IrtRadiatorInfo.h:50
void unlink()
disconnect from IrtRadiatorInfoObj instance
Definition IrtRadiatorInfo.h:98
std::uint16_t getNhits() const
Access the Hit count associated with this radiator by IRT engine.
Definition IrtRadiatorInfo.cc:51
IrtRadiatorInfo(const IrtRadiatorInfo &other)=default
copy constructor
bool operator!=(const IrtRadiatorInfo &other) const
Definition IrtRadiatorInfo.h:103
podio::ObjectID id() const
Definition IrtRadiatorInfo.h:109
static constexpr std::string_view typeName
Definition IrtRadiatorInfo.h:80
friend class MutableIrtRadiatorInfo
Definition IrtRadiatorInfo.h:43
Definition IrtRadiatorInfoObj.h:17
Definition MutableIrtRadiatorInfo.h:33
Definition CalorimeterHit.cc:17
std::ostream & operator<<(std::ostream &o, const CalorimeterHit &value)
Definition CalorimeterHit.cc:99
Definition CalorimeterHit.h:31
OrderKey getOrderKey(const edm4eic::CalorimeterHit &obj)
Definition CalorimeterHit.cc:146
std::size_t operator()(const edm4eic::IrtRadiatorInfo &obj) const
Definition IrtRadiatorInfo.h:141