9#include <algorithms/algorithm.h>
10#include <edm4eic/EDM4eicVersion.h>
11#include <edm4eic/unit_system.h>
12#include <edm4hep/SimCalorimeterHitCollection.h>
13#include <edm4hep/SimTrackerHitCollection.h>
14#if EDM4EIC_VERSION_MAJOR > 8 || (EDM4EIC_VERSION_MAJOR == 8 && EDM4EIC_VERSION_MINOR >= 1)
15#include <edm4eic/SimPulseCollection.h>
17#include <edm4hep/TimeSeriesCollection.h>
29#if EDM4EIC_VERSION_MAJOR > 8 || (EDM4EIC_VERSION_MAJOR == 8 && EDM4EIC_VERSION_MINOR >= 1)
40 static std::tuple<double, double> getPulseSources(
const edm4hep::SimTrackerHit& hit);
41#if EDM4EIC_VERSION_MAJOR > 8 || (EDM4EIC_VERSION_MAJOR == 8 && EDM4EIC_VERSION_MINOR >= 1)
42 static void addRelations(
MutablePulseType& pulse,
const edm4hep::SimTrackerHit& hit);
46template <>
struct HitAdapter<edm4hep::SimCalorimeterHit> {
47 static std::tuple<double, double> getPulseSources(
const edm4hep::SimCalorimeterHit& hit);
48#if EDM4EIC_VERSION_MAJOR > 8 || (EDM4EIC_VERSION_MAJOR == 8 && EDM4EIC_VERSION_MINOR >= 1)
49 static void addRelations(
MutablePulseType& pulse,
const edm4hep::SimCalorimeterHit& hit);
53template <
typename HitT>
55 algorithms::Algorithm<algorithms::Input<typename HitT::collection_type>,
56 algorithms::Output<PulseType::collection_type>>;
60template <
typename HitT>
72 std::shared_ptr<SignalPulse> m_pulse;
73 float m_min_sampling_time = 0 * edm4eic::unit::ns;
Definition PulseGeneration.h:62
void process(const typename PulseGenerationAlgorithm< HitT >::Input &, const typename PulseGenerationAlgorithm< HitT >::Output &) const final
Definition PulseGeneration.cc:218
PulseGeneration(std::string_view name)
Definition PulseGeneration.h:65
void init() final
Definition PulseGeneration.cc:209
Definition PulseGeneration.cc:32
Definition WithPodConfig.h:22
edm4hep::TimeSeries PulseType
Definition digi_PulseGeneration.cc:29
-client
Definition CalorimeterClusterRecoCoG.cc:37
edm4hep::MutableTimeSeries MutablePulseType
Definition PulseGeneration.h:34
algorithms::Algorithm< algorithms::Input< typename HitT::collection_type >, algorithms::Output< PulseType::collection_type > > PulseGenerationAlgorithm
Definition PulseGeneration.h:56
Definition SimCalorimeterHitProcessor.cc:35
Definition PulseGeneration.h:37