3#ifndef EDM4EIC_MutableSimPulse_H
4#define EDM4EIC_MutableSimPulse_H
10#include "edm4hep/MCParticle.h"
11#include "edm4hep/SimCalorimeterHit.h"
12#include "edm4hep/SimTrackerHit.h"
13#include "edm4hep/Vector3f.h"
14#include "podio/RelationRange.h"
18#include "podio/utilities/MaybeSharedPtr.h"
22#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
23#include "nlohmann/json_fwd.hpp"
89 [[deprecated(
"use getCellID instead")]]
97 [[deprecated(
"use getIntegral instead")]]
105 [[deprecated(
"use getPosition instead")]]
113 [[deprecated(
"use getTime instead")]]
121 [[deprecated(
"use getInterval instead")]]
136 std::vector<edm4hep::SimTrackerHit>::const_iterator
trackerHits_end()
const;
137 podio::RelationRange<edm4hep::SimTrackerHit>
getTrackerHits()
const;
141 std::vector<edm4eic::SimPulse>::const_iterator
pulses_begin()
const;
142 std::vector<edm4eic::SimPulse>::const_iterator
pulses_end()
const;
143 podio::RelationRange<edm4eic::SimPulse>
getPulses()
const;
147 std::vector<edm4hep::MCParticle>::const_iterator
particles_begin()
const;
148 std::vector<edm4hep::MCParticle>::const_iterator
particles_end()
const;
149 podio::RelationRange<edm4hep::MCParticle>
getParticles()
const;
162 void unlink() { m_obj = podio::utils::MaybeSharedPtr<SimPulseObj>{
nullptr}; }
179 swap(a.m_obj, b.m_obj);
184 explicit MutableSimPulse(podio::utils::MaybeSharedPtr<SimPulseObj> obj);
186 podio::utils::MaybeSharedPtr<SimPulseObj> m_obj{
nullptr};
189#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
190void to_json(nlohmann::json& j,
const MutableSimPulse& value);
Definition MutableSimPulse.h:35
std::vector< edm4hep::SimCalorimeterHit >::const_iterator calorimeterHits_end() const
Definition MutableSimPulse.cc:95
bool operator!=(const SimPulse &other) const
Definition MutableSimPulse.h:168
MutableSimPulse & operator=(MutableSimPulse other)
copy-assignment operator
Definition MutableSimPulse.cc:30
podio::ObjectID id() const
Definition MutableSimPulse.h:173
void unlink()
disconnect from SimPulseObj instance
Definition MutableSimPulse.h:162
friend class SimPulse
Definition MutableSimPulse.h:39
std::vector< float >::const_iterator amplitude_end() const
Definition MutableSimPulse.cc:239
void setTime(float value)
Set the Start time for the pulse in [ns].
Definition MutableSimPulse.cc:76
void setCellID(std::uint64_t value)
Set the ID of the readout cell for this pulse.
Definition MutableSimPulse.cc:67
void addToAmplitude(const float &)
Definition MutableSimPulse.cc:228
void addToParticles(const edm4hep::MCParticle &)
Definition MutableSimPulse.cc:192
const edm4hep::Vector3f & getPosition() const
Access the Position the pulse is evaluated in world coordinates [mm].
Definition MutableSimPulse.cc:62
float & time()
Get reference to Start time for the pulse in [ns].
Definition MutableSimPulse.cc:78
void setIntegral(float value)
Set the Total pulse integral in relevant units.
Definition MutableSimPulse.cc:70
float getTime() const
Access the Start time for the pulse in [ns].
Definition MutableSimPulse.cc:63
podio::RelationRange< edm4hep::SimTrackerHit > getTrackerHits() const
Definition MutableSimPulse.cc:148
void addToTrackerHits(const edm4hep::SimTrackerHit &)
Definition MutableSimPulse.cc:120
friend class SimPulseCollection
Definition MutableSimPulse.h:37
void addToCalorimeterHits(const edm4hep::SimCalorimeterHit &)
Definition MutableSimPulse.cc:84
podio::RelationRange< edm4eic::SimPulse > getPulses() const
Definition MutableSimPulse.cc:184
void setInterval(float value)
Set the Time interval between amplitude values [ns].
Definition MutableSimPulse.cc:79
std::uint64_t & cellID()
Get reference to ID of the readout cell for this pulse.
Definition MutableSimPulse.cc:69
bool operator!=(const MutableSimPulse &other) const
Definition MutableSimPulse.h:167
std::vector< edm4eic::SimPulse >::const_iterator pulses_begin() const
Definition MutableSimPulse.cc:161
std::vector< edm4hep::MCParticle >::const_iterator particles_begin() const
Definition MutableSimPulse.cc:197
bool operator<(const MutableSimPulse &other) const
Definition MutableSimPulse.h:171
podio::RelationRange< edm4hep::SimCalorimeterHit > getCalorimeterHits() const
Definition MutableSimPulse.cc:112
MutableSimPulse clone(bool cloneRelations=true) const
Definition MutableSimPulse.cc:35
std::size_t amplitude_size() const
Definition MutableSimPulse.cc:245
void addToPulses(const edm4eic::SimPulse &)
Definition MutableSimPulse.cc:156
const podio::ObjectID getObjectID() const
Definition MutableSimPulse.cc:273
std::size_t pulses_size() const
Definition MutableSimPulse.cc:173
std::size_t calorimeterHits_size() const
Definition MutableSimPulse.cc:101
float & integral()
Get reference to Total pulse integral in relevant units.
Definition MutableSimPulse.cc:72
std::vector< edm4hep::SimTrackerHit >::const_iterator trackerHits_begin() const
Definition MutableSimPulse.cc:125
float getIntegral() const
Access the Total pulse integral in relevant units.
Definition MutableSimPulse.cc:61
std::vector< float >::const_iterator amplitude_begin() const
Definition MutableSimPulse.cc:233
podio::RelationRange< float > getAmplitude() const
Definition MutableSimPulse.cc:256
float & interval()
Get reference to Time interval between amplitude values [ns].
Definition MutableSimPulse.cc:81
std::vector< edm4hep::SimCalorimeterHit >::const_iterator calorimeterHits_begin() const
Definition MutableSimPulse.cc:89
std::vector< edm4hep::SimTrackerHit >::const_iterator trackerHits_end() const
Definition MutableSimPulse.cc:131
~MutableSimPulse()=default
destructor
MutableSimPulse()
default constructor
Definition MutableSimPulse.cc:18
std::vector< edm4hep::MCParticle >::const_iterator particles_end() const
Definition MutableSimPulse.cc:203
std::size_t particles_size() const
Definition MutableSimPulse.cc:209
float getInterval() const
Access the Time interval between amplitude values [ns].
Definition MutableSimPulse.cc:64
bool isAvailable() const
check whether the object is actually available
Definition MutableSimPulse.cc:269
std::size_t trackerHits_size() const
Definition MutableSimPulse.cc:137
std::vector< edm4eic::SimPulse >::const_iterator pulses_end() const
Definition MutableSimPulse.cc:167
bool operator==(const MutableSimPulse &other) const
Definition MutableSimPulse.h:164
friend void swap(MutableSimPulse &a, MutableSimPulse &b)
Definition MutableSimPulse.h:177
void setPosition(edm4hep::Vector3f value)
Set the Position the pulse is evaluated in world coordinates [mm].
Definition MutableSimPulse.cc:73
std::uint64_t getCellID() const
Access the ID of the readout cell for this pulse.
Definition MutableSimPulse.cc:60
podio::RelationRange< edm4hep::MCParticle > getParticles() const
Definition MutableSimPulse.cc:220
edm4hep::Vector3f & position()
Get reference to Position the pulse is evaluated in world coordinates [mm].
Definition MutableSimPulse.cc:75
MutableSimPulse(const MutableSimPulse &other)=default
copy constructor
Definition SimPulseCollection.h:92
Definition SimPulseCollection.h:63
Definition CalorimeterHit.cc:17