EICrecon
JANA based reconstruction for the EPIC detector
Loading...
Searching...
No Matches
EnergyPositionClusterMerger_factory.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-3.0-or-later
2// Copyright (C) 2023 Wouter Deconinck
3
4#pragma once
5
6#include <edm4eic/EDM4eicVersion.h>
10
11namespace eicrecon {
12
14 : public JOmniFactory<EnergyPositionClusterMerger_factory, EnergyPositionClusterMergerConfig> {
15
16public:
18
19private:
20 std::unique_ptr<AlgoT> m_algo;
21
22 PodioInput<edm4eic::Cluster> m_energy_cluster_input{this};
23 PodioInput<edm4eic::MCRecoClusterParticleAssociation> m_energy_assoc_input{this};
24 PodioInput<edm4eic::Cluster> m_position_cluster_input{this};
25 PodioInput<edm4eic::MCRecoClusterParticleAssociation> m_position_assoc_input{this};
26
27 PodioOutput<edm4eic::Cluster> m_cluster_output{this};
28#if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
29 PodioOutput<edm4eic::MCRecoClusterParticleLink> m_links_output{this};
30#endif
31 PodioOutput<edm4eic::MCRecoClusterParticleAssociation> m_assoc_output{this};
32
33 ParameterRef<double> m_energyRelTolerance{this, "energyRelTolerance",
34 config().energyRelTolerance};
35 ParameterRef<double> m_phiTolerance{this, "phiTolerance", config().phiTolerance};
36 ParameterRef<double> m_etaTolerance{this, "etaTolerance", config().etaTolerance};
37
38 Service<AlgorithmsInit_service> m_algorithmsInit{this};
39
40public:
41 void Configure() {
42 m_algo = std::make_unique<AlgoT>(GetPrefix());
43 m_algo->level(static_cast<algorithms::LogLevel>(logger()->level()));
44 m_algo->applyConfig(config());
45 m_algo->init();
46 }
47
48 void Process(int32_t /* run_number */, uint64_t /* event_number */) {
49 m_algo->process({m_energy_cluster_input(), m_energy_assoc_input(), m_position_cluster_input(),
50 m_position_assoc_input()},
51 {m_cluster_output().get(),
52#if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
53 m_links_output().get(),
54#endif
55 m_assoc_output().get()});
56 }
57};
58
59} // namespace eicrecon
Definition JOmniFactory.h:30
EnergyPositionClusterMergerConfig & 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
Definition EnergyPositionClusterMerger_factory.h:14
void Process(int32_t, uint64_t)
Definition EnergyPositionClusterMerger_factory.h:48
void Configure()
Definition EnergyPositionClusterMerger_factory.h:41
Definition EnergyPositionClusterMerger.h:45
-client
Definition CalorimeterClusterRecoCoG.cc:37