EICrecon
JANA based reconstruction for the EPIC detector
Loading...
Searching...
No Matches
PulseNoise_factory.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-3.0-or-later
2// Copyright (C) 2025 Simon Gardner
3
4#pragma once
5
6#include <edm4eic/EDM4eicVersion.h>
10
11namespace eicrecon {
12
13class PulseNoise_factory : public JOmniFactory<PulseNoise_factory, PulseNoiseConfig> {
14public:
16
17private:
18 std::unique_ptr<AlgoT> m_algo;
19
20 PodioInput<edm4hep::EventHeader> m_in_headers{this};
21#if EDM4EIC_VERSION_MAJOR > 8 || (EDM4EIC_VERSION_MAJOR == 8 && EDM4EIC_VERSION_MINOR >= 1)
22 PodioInput<edm4eic::SimPulse> m_in_pulses{this};
23 PodioOutput<edm4eic::SimPulse> m_out_pulses{this};
24#else
25 PodioInput<edm4hep::TimeSeries> m_in_pulses{this};
26 PodioOutput<edm4hep::TimeSeries> m_out_pulses{this};
27#endif
28
29 ParameterRef<std::size_t> m_poles{this, "poles", config().poles};
30 ParameterRef<double> m_variance{this, "variance", config().variance};
31 ParameterRef<double> m_alpha{this, "alpha", config().alpha};
32 ParameterRef<double> m_scale{this, "scale", config().scale};
33
34 Service<AlgorithmsInit_service> m_algorithmsInit{this};
35
36public:
37 void Configure() {
38 m_algo = std::make_unique<eicrecon::PulseNoise>(GetPrefix());
39 m_algo->level(static_cast<algorithms::LogLevel>(logger()->level()));
40 m_algo->applyConfig(config());
41 m_algo->init();
42 }
43
44 void Process(int32_t /* run_number */, uint64_t /* event_number */) {
45 m_algo->process({m_in_headers(), m_in_pulses()}, {m_out_pulses().get()});
46 }
47};
48
49} // namespace eicrecon
Definition JOmniFactory.h:30
PulseNoiseConfig & config()
Retrieve reference to embedded config object.
Definition JOmniFactory.h:576
std::shared_ptr< spdlog::logger > & logger()
Retrieve reference to already-configured logger.
Definition JOmniFactory.h:573
std::string GetPrefix()
Definition JOmniFactory.h:570
Definition PulseNoise_factory.h:13
void Process(int32_t, uint64_t)
Definition PulseNoise_factory.h:44
void Configure()
Definition PulseNoise_factory.h:37
Definition PulseNoise.h:36
-client
Definition CalorimeterClusterRecoCoG.cc:37