57 public WithPodConfig<FarForwardNeutralsReconstructionConfig> {
63 {
"clustersHcal",
"clustersB0",
"clustersEcalEndCapP",
"clustersLFHCAL"},
65 {
"outputNeutralsHcal",
"outputNeutralsB0",
"outputNeutralsEcalEndCapP",
66 "outputNeutralsLFHCAL"},
68 "Convert EMCal and HCal clusters into neutron or photon candidates"} {}
71 void process(const Input&, const Output&) const final;
74 bool isGamma(const edm4eic::Cluster& cluster) const;
75 std::shared_ptr<spdlog::logger> m_log;
77 const
dd4hep::Detector* m_detector{algorithms::GeoSvc::instance().detector()};
78 double m_gammaZMax{0};
80 enum class GammaMode { None, LeaderOnly, AllPassing };
81 enum class NeutronMode { None, SumAll, LeaderOnly };
83 using CorrFunc = std::function<double(
double,
const std::vector<double>&)>;
85 static double corrPower(
double E,
const std::vector<double>& coeffs);
87 int processNeutralCalo(
const edm4eic::ClusterCollection* clusters,
88 edm4eic::ReconstructedParticleCollection* out_neutrals,
89 const std::vector<double>& gammaScaleCoeff,
90 const std::vector<double>& neutronScaleCoeff,
bool canDetectGammas,
91 bool canDetectNeutrons,
const CorrFunc& gammaCorr,
92 const CorrFunc& neutronCorr, GammaMode gammaMode,
93 double gammaLeaderFracMin,
double clusterEmin, NeutronMode neutronMode,
94 bool associateAllClustersToNeutron)
const;
algorithms::Algorithm< algorithms::Input< const edm4eic::ClusterCollection, const edm4eic::ClusterCollection, const edm4eic::ClusterCollection, const edm4eic::ClusterCollection >, algorithms::Output< edm4eic::ReconstructedParticleCollection, edm4eic::ReconstructedParticleCollection, edm4eic::ReconstructedParticleCollection, edm4eic::ReconstructedParticleCollection > > FarForwardNeutralsReconstructionAlgorithm
Definition FarForwardNeutralsReconstruction.h:35