EICrecon
JANA based reconstruction for the EPIC detector
Loading...
Searching...
No Matches
FarForwardNeutralsReconstruction_factory.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-3.0-or-later
2// Copyright (C) 2026 Sebouh Paul, Baptiste Fraisse
3
4#pragma once
5
10
11namespace eicrecon {
12
14 : public JOmniFactory<FarForwardNeutralsReconstruction_factory,
15 FarForwardNeutralsReconstructionConfig> {
16
17public:
19
20private:
21 std::unique_ptr<AlgoT> m_algo;
22
23 PodioInput<edm4eic::Cluster> m_clusters_hcal_input{this};
24 PodioInput<edm4eic::Cluster> m_clusters_b0_input{this};
25 PodioInput<edm4eic::Cluster> m_clusters_ecalendcapp_input{this};
26 PodioInput<edm4eic::Cluster> m_clusters_lfhcal_input{this};
27
28 PodioOutput<edm4eic::ReconstructedParticle> m_hcal_neutrals_output{this};
29 PodioOutput<edm4eic::ReconstructedParticle> m_b0_neutrals_output{this};
30 PodioOutput<edm4eic::ReconstructedParticle> m_ecalendcapp_neutrals_output{this};
31 PodioOutput<edm4eic::ReconstructedParticle> m_lfhcal_neutrals_output{this};
32
33 ParameterRef<std::string> m_offset_position_name{this, "offsetPositionName",
34 config().offsetPositionName};
35
36 ParameterRef<std::vector<double>> m_n_scale_corr_coeff_hcal_zdc{
37 this, "neutronScaleCorrCoeffHcalZDC", config().neutronScaleCorrCoeffHcalZDC};
38
39 ParameterRef<std::vector<double>> m_gamma_scale_corr_coeff_hcal_zdc{
40 this, "gammaScaleCorrCoeffHcalZDC", config().gammaScaleCorrCoeffHcalZDC};
41
42 ParameterRef<std::vector<double>> m_n_scale_corr_coeff_b0ecal{
43 this, "neutronScaleCorrCoeffB0Ecal", config().neutronScaleCorrCoeffB0Ecal};
44
45 ParameterRef<std::vector<double>> m_gamma_scale_corr_coeff_b0ecal{
46 this, "gammaScaleCorrCoeffB0Ecal", config().gammaScaleCorrCoeffB0Ecal};
47
48 ParameterRef<std::vector<double>> m_n_scale_corr_coeff_ecalendcapp{
49 this, "neutronScaleCorrCoeffEcalEndcapP", config().neutronScaleCorrCoeffEcalEndcapP};
50
51 ParameterRef<std::vector<double>> m_gamma_scale_corr_coeff_ecalendcapp{
52 this, "gammaScaleCorrCoeffEcalEndcapP", config().gammaScaleCorrCoeffEcalEndcapP};
53
54 ParameterRef<std::vector<double>> m_n_scale_corr_coeff_lfhcal{
55 this, "neutronScaleCorrCoeffLFHCAL", config().neutronScaleCorrCoeffLFHCAL};
56
57 ParameterRef<std::vector<double>> m_gamma_scale_corr_coeff_lfhcal{
58 this, "gammaScaleCorrCoeffLFHCAL", config().gammaScaleCorrCoeffLFHCAL};
59
60 ParameterRef<double> m_cluster_emin_hcal_zdc{this, "clusterEminHcalZDC",
61 config().clusterEminHcalZDC};
62
63 ParameterRef<double> m_cluster_emin_b0ecal{this, "clusterEminB0Ecal", config().clusterEminB0Ecal};
64
65 ParameterRef<double> m_cluster_emin_ecalendcapp{this, "clusterEminEcalEndcapP",
66 config().clusterEminEcalEndcapP};
67
68 ParameterRef<double> m_cluster_emin_lfhcal{this, "clusterEminLFHCAL", config().clusterEminLFHCAL};
69
70 ParameterRef<double> m_global_to_proton_rotation{this, "globalToProtonRotation",
71 config().globalToProtonRotation};
72
73 ParameterRef<double> m_gamma_zmax_offset{this, "gammaZMaxOffset", config().gammaZMaxOffset};
74
75 ParameterRef<double> m_gamma_max_length{this, "gammaMaxLength", config().gammaMaxLength};
76
77 ParameterRef<double> m_gamma_max_width{this, "gammaMaxWidth", config().gammaMaxWidth};
78
79 Service<AlgorithmsInit_service> m_algorithmsInit{this};
80
81public:
82 void Configure() {
83 m_algo = std::make_unique<AlgoT>(GetPrefix());
84 m_algo->level((algorithms::LogLevel)logger()->level());
85
86 m_algo->applyConfig(config());
87 m_algo->init();
88 }
89
90 void Process(int32_t /* run_number */, uint64_t /* event_number */) {
91 m_algo->process(
92 {
93 m_clusters_hcal_input(),
94 m_clusters_b0_input(),
95 m_clusters_ecalendcapp_input(),
96 m_clusters_lfhcal_input(),
97
98 },
99 {
100 m_hcal_neutrals_output().get(),
101 m_b0_neutrals_output().get(),
102 m_ecalendcapp_neutrals_output().get(),
103 m_lfhcal_neutrals_output().get(),
104
105 });
106 }
107};
108
109} // namespace eicrecon
Definition JOmniFactory.h:30
FarForwardNeutralsReconstructionConfig & 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 FarForwardNeutralsReconstruction_factory.h:15
void Configure()
Definition FarForwardNeutralsReconstruction_factory.h:82
void Process(int32_t, uint64_t)
Definition FarForwardNeutralsReconstruction_factory.h:90
Definition FarForwardNeutralsReconstruction.h:57
-client
Definition CalorimeterClusterRecoCoG.cc:37