14 :
public JOmniFactory<FarForwardNeutralsReconstruction_factory,
15 FarForwardNeutralsReconstructionConfig> {
21 std::unique_ptr<AlgoT> m_algo;
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};
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};
33 ParameterRef<std::string> m_offset_position_name{
this,
"offsetPositionName",
34 config().offsetPositionName};
36 ParameterRef<std::vector<double>> m_n_scale_corr_coeff_hcal_zdc{
37 this,
"neutronScaleCorrCoeffHcalZDC",
config().neutronScaleCorrCoeffHcalZDC};
39 ParameterRef<std::vector<double>> m_gamma_scale_corr_coeff_hcal_zdc{
40 this,
"gammaScaleCorrCoeffHcalZDC",
config().gammaScaleCorrCoeffHcalZDC};
42 ParameterRef<std::vector<double>> m_n_scale_corr_coeff_b0ecal{
43 this,
"neutronScaleCorrCoeffB0Ecal",
config().neutronScaleCorrCoeffB0Ecal};
45 ParameterRef<std::vector<double>> m_gamma_scale_corr_coeff_b0ecal{
46 this,
"gammaScaleCorrCoeffB0Ecal",
config().gammaScaleCorrCoeffB0Ecal};
48 ParameterRef<std::vector<double>> m_n_scale_corr_coeff_ecalendcapp{
49 this,
"neutronScaleCorrCoeffEcalEndcapP",
config().neutronScaleCorrCoeffEcalEndcapP};
51 ParameterRef<std::vector<double>> m_gamma_scale_corr_coeff_ecalendcapp{
52 this,
"gammaScaleCorrCoeffEcalEndcapP",
config().gammaScaleCorrCoeffEcalEndcapP};
54 ParameterRef<std::vector<double>> m_n_scale_corr_coeff_lfhcal{
55 this,
"neutronScaleCorrCoeffLFHCAL",
config().neutronScaleCorrCoeffLFHCAL};
57 ParameterRef<std::vector<double>> m_gamma_scale_corr_coeff_lfhcal{
58 this,
"gammaScaleCorrCoeffLFHCAL",
config().gammaScaleCorrCoeffLFHCAL};
60 ParameterRef<double> m_cluster_emin_hcal_zdc{
this,
"clusterEminHcalZDC",
61 config().clusterEminHcalZDC};
63 ParameterRef<double> m_cluster_emin_b0ecal{
this,
"clusterEminB0Ecal",
config().clusterEminB0Ecal};
65 ParameterRef<double> m_cluster_emin_ecalendcapp{
this,
"clusterEminEcalEndcapP",
66 config().clusterEminEcalEndcapP};
68 ParameterRef<double> m_cluster_emin_lfhcal{
this,
"clusterEminLFHCAL",
config().clusterEminLFHCAL};
70 ParameterRef<double> m_global_to_proton_rotation{
this,
"globalToProtonRotation",
71 config().globalToProtonRotation};
73 ParameterRef<double> m_gamma_zmax_offset{
this,
"gammaZMaxOffset",
config().gammaZMaxOffset};
75 ParameterRef<double> m_gamma_max_length{
this,
"gammaMaxLength",
config().gammaMaxLength};
77 ParameterRef<double> m_gamma_max_width{
this,
"gammaMaxWidth",
config().gammaMaxWidth};
79 Service<AlgorithmsInit_service> m_algorithmsInit{
this};
83 m_algo = std::make_unique<AlgoT>(
GetPrefix());
84 m_algo->level((algorithms::LogLevel)
logger()->level());
86 m_algo->applyConfig(
config());
93 m_clusters_hcal_input(),
94 m_clusters_b0_input(),
95 m_clusters_ecalendcapp_input(),
96 m_clusters_lfhcal_input(),
100 m_hcal_neutrals_output().get(),
101 m_b0_neutrals_output().get(),
102 m_ecalendcapp_neutrals_output().get(),
103 m_lfhcal_neutrals_output().get(),