EDM4eic
EIC data model
Loading...
Searching...
No Matches
CherenkovParticleID.h
Go to the documentation of this file.
1// AUTOMATICALLY GENERATED FILE - DO NOT EDIT
2
3#ifndef EDM4EIC_CherenkovParticleID_H
4#define EDM4EIC_CherenkovParticleID_H
5
7
10#include "podio/RelationRange.h"
11#include <vector>
12
13#include "podio/utilities/MaybeSharedPtr.h"
14
15#include <ostream>
16#include <cstddef>
17
18#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
19#include "nlohmann/json_fwd.hpp"
20#endif
21
22// forward declarations
23namespace edm4eic {
24class TrackSegment;
25class MutableTrackSegment;
26}
27
28
29namespace edm4eic {
30
31class MutableCherenkovParticleID;
32class CherenkovParticleIDCollection;
33class CherenkovParticleIDCollectionData;
34
35/** @class CherenkovParticleID
36 * Cherenkov detector PID
37 * @author: A. Kiselev, C. Chatterjee, C. Dilks
38 */
40
45
46public:
49
50 /// default constructor
52
53 /// Constructor initializing all members
54 CherenkovParticleID(float npe, float refractiveIndex, float photonEnergy);
55
56 /// copy constructor
58
59 /// copy-assignment operator
61
62 /// create a mutable deep-copy of the object with identical relations
64
65 /// destructor
67
68
70
71public:
72
73 /// Access the Overall photoelectron count
74 float getNpe() const;
75
76 /// Access the Average refractive index at the Cherenkov photons' vertices
77 float getRefractiveIndex() const;
78
79 /// Access the Average energy for these Cherenkov photons [GeV]
80 float getPhotonEnergy() const;
81
82
83 /// Access the reconstructed charged particle
85
86 std::size_t rawHitAssociations_size() const;
88 std::vector<edm4eic::MCRecoTrackerHitAssociation>::const_iterator rawHitAssociations_begin() const;
89 std::vector<edm4eic::MCRecoTrackerHitAssociation>::const_iterator rawHitAssociations_end() const;
90 podio::RelationRange<edm4eic::MCRecoTrackerHitAssociation> getRawHitAssociations() const;
91 std::size_t hypotheses_size() const;
93 std::vector<edm4eic::CherenkovParticleIDHypothesis>::const_iterator hypotheses_begin() const;
94 std::vector<edm4eic::CherenkovParticleIDHypothesis>::const_iterator hypotheses_end() const;
95 podio::RelationRange<edm4eic::CherenkovParticleIDHypothesis> getHypotheses() const;
96 std::size_t thetaPhiPhotons_size() const;
97 edm4hep::Vector2f getThetaPhiPhotons(std::size_t) const;
98 std::vector<edm4hep::Vector2f>::const_iterator thetaPhiPhotons_begin() const;
99 std::vector<edm4hep::Vector2f>::const_iterator thetaPhiPhotons_end() const;
100 podio::RelationRange<edm4hep::Vector2f> getThetaPhiPhotons() const;
101
102
103 /// check whether the object is actually available
104 bool isAvailable() const;
105 /// disconnect from CherenkovParticleIDObj instance
106 void unlink() { m_obj = podio::utils::MaybeSharedPtr<CherenkovParticleIDObj>{nullptr}; }
107
108 bool operator==(const CherenkovParticleID& other) const { return m_obj == other.m_obj; }
109 bool operator==(const MutableCherenkovParticleID& other) const;
110
111 // less comparison operator, so that objects can be e.g. stored in sets.
112 bool operator<(const CherenkovParticleID& other) const { return m_obj < other.m_obj; }
113
114 podio::ObjectID id() const { return getObjectID(); }
115
116 const podio::ObjectID getObjectID() const;
117
119 using std::swap;
120 swap(a.m_obj, b.m_obj); // swap out the internal pointers
121 }
122
123private:
124 /// constructor from existing CherenkovParticleIDObj
125 explicit CherenkovParticleID(podio::utils::MaybeSharedPtr<CherenkovParticleIDObj> obj);
127
128 podio::utils::MaybeSharedPtr<CherenkovParticleIDObj> m_obj{nullptr};
129};
130
131std::ostream& operator<<(std::ostream& o, const CherenkovParticleID& value);
132
133#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
134void to_json(nlohmann::json& j, const CherenkovParticleID& value);
135#endif
136
137
138} // namespace edm4eic
139
140
141#endif
Definition CherenkovParticleIDCollectionData.h:32
Definition CherenkovParticleIDCollection.h:95
Definition CherenkovParticleIDCollection.h:40
Definition CherenkovParticleID.h:39
std::vector< edm4eic::MCRecoTrackerHitAssociation >::const_iterator rawHitAssociations_begin() const
Definition CherenkovParticleID.cc:62
float getNpe() const
Access the Overall photoelectron count.
Definition CherenkovParticleID.cc:49
const edm4eic::TrackSegment getChargedParticle() const
Access the reconstructed charged particle.
Definition CherenkovParticleID.cc:53
podio::RelationRange< edm4eic::MCRecoTrackerHitAssociation > getRawHitAssociations() const
Definition CherenkovParticleID.cc:85
std::vector< edm4hep::Vector2f >::const_iterator thetaPhiPhotons_end() const
Definition CherenkovParticleID.cc:132
CherenkovParticleID(const CherenkovParticleID &other)=default
copy constructor
podio::ObjectID id() const
Definition CherenkovParticleID.h:114
CherenkovParticleID & operator=(CherenkovParticleID other)
copy-assignment operator
Definition CherenkovParticleID.cc:32
std::vector< edm4hep::Vector2f >::const_iterator thetaPhiPhotons_begin() const
Definition CherenkovParticleID.cc:126
std::size_t hypotheses_size() const
Definition CherenkovParticleID.cc:106
float getPhotonEnergy() const
Access the Average energy for these Cherenkov photons [GeV].
Definition CherenkovParticleID.cc:51
MutableCherenkovParticleID clone() const
create a mutable deep-copy of the object with identical relations
Definition CherenkovParticleID.cc:37
~CherenkovParticleID()=default
destructor
const podio::ObjectID getObjectID() const
Definition CherenkovParticleID.cc:168
CherenkovParticleID()
default constructor
Definition CherenkovParticleID.cc:22
friend void swap(CherenkovParticleID &a, CherenkovParticleID &b)
Definition CherenkovParticleID.h:118
bool isAvailable() const
check whether the object is actually available
Definition CherenkovParticleID.cc:161
std::vector< edm4eic::MCRecoTrackerHitAssociation >::const_iterator rawHitAssociations_end() const
Definition CherenkovParticleID.cc:68
void unlink()
disconnect from CherenkovParticleIDObj instance
Definition CherenkovParticleID.h:106
std::vector< edm4eic::CherenkovParticleIDHypothesis >::const_iterator hypotheses_end() const
Definition CherenkovParticleID.cc:100
std::vector< edm4eic::CherenkovParticleIDHypothesis >::const_iterator hypotheses_begin() const
Definition CherenkovParticleID.cc:94
friend class MutableCherenkovParticleID
Definition CherenkovParticleID.h:41
bool operator<(const CherenkovParticleID &other) const
Definition CherenkovParticleID.h:112
friend class CherenkovParticleIDCollection
Definition CherenkovParticleID.h:42
static CherenkovParticleID makeEmpty()
Definition CherenkovParticleID.cc:45
podio::RelationRange< edm4hep::Vector2f > getThetaPhiPhotons() const
Definition CherenkovParticleID.cc:149
bool operator==(const CherenkovParticleID &other) const
Definition CherenkovParticleID.h:108
podio::RelationRange< edm4eic::CherenkovParticleIDHypothesis > getHypotheses() const
Definition CherenkovParticleID.cc:117
float getRefractiveIndex() const
Access the Average refractive index at the Cherenkov photons' vertices.
Definition CherenkovParticleID.cc:50
std::size_t rawHitAssociations_size() const
Definition CherenkovParticleID.cc:74
std::size_t thetaPhiPhotons_size() const
Definition CherenkovParticleID.cc:138
Definition CherenkovParticleIDHypothesis.h:19
Definition CherenkovParticleIDObj.h:25
Definition MCRecoTrackerHitAssociation.h:39
Definition MutableCherenkovParticleID.h:38
Definition TrackSegment.h:38
Definition CalorimeterHit.cc:18
std::ostream & operator<<(std::ostream &o, const CalorimeterHit &value)
Definition CalorimeterHit.cc:97