EICrecon
JANA based reconstruction for the EPIC detector
Loading...
Searching...
No Matches
PulseCombiner_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>
9
11#include <iostream>
12
13namespace eicrecon {
14
15class PulseCombiner_factory : public JOmniFactory<PulseCombiner_factory, PulseCombinerConfig> {
16public:
18
19private:
20 std::unique_ptr<AlgoT> m_algo;
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<double> m_minimum_separation{this, "minimumSeperation", config().minimum_separation};
30 ParameterRef<std::string> m_readout{this, "readout", config().readout};
31 ParameterRef<std::string> m_combine_field{this, "combineField", config().combine_field};
32
33 Service<AlgorithmsInit_service> m_algorithmsInit{this};
34
35public:
36 void Configure() {
37 m_algo = std::make_unique<eicrecon::PulseCombiner>(GetPrefix());
38 m_algo->level(static_cast<algorithms::LogLevel>(logger()->level()));
39 m_algo->applyConfig(config());
40 m_algo->init();
41 }
42
43 void Process(int32_t /* run_number */, uint64_t /* event_number */) {
44 m_algo->process({m_in_pulses()}, {m_out_pulses().get()});
45 }
46};
47
48} // namespace eicrecon
Definition JOmniFactory.h:30
PulseCombinerConfig & 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 PulseCombiner_factory.h:15
void Process(int32_t, uint64_t)
Definition PulseCombiner_factory.h:43
void Configure()
Definition PulseCombiner_factory.h:36
Definition PulseCombiner.h:36
-client
Definition CalorimeterClusterRecoCoG.cc:37