14 :
public JOmniFactory<LambdaReconstruction_factory, LambdaReconstructionConfig> {
20 std::unique_ptr<AlgoT> m_algo;
22 PodioInput<edm4eic::ReconstructedParticle> m_hcal_neutrals_input{
this};
23 PodioInput<edm4eic::ReconstructedParticle> m_b0_neutrals_input{
this};
24 PodioInput<edm4eic::ReconstructedParticle> m_ecalendcapp_neutrals_input{
this};
25 PodioInput<edm4eic::ReconstructedParticle> m_lfhcal_neutrals_input{
this};
27 PodioOutput<edm4eic::ReconstructedParticle> m_lambda_output{
this};
28 PodioOutput<edm4eic::ReconstructedParticle> m_lambda_decay_products_cm_output{
this};
30 ParameterRef<std::string> m_offset_position_name{
this,
"offsetPositionName",
31 config().offsetPositionName};
32 ParameterRef<double> m_rot_y{
this,
"globalToProtonRotation",
config().globalToProtonRotation};
33 ParameterRef<double> m_lambda_mass_window{
this,
"lambdaMassWindow",
config().lambdaMassWindow};
34 ParameterRef<double> m_pi0_mass_window{
this,
"pi0Window",
config().pi0Window};
35 ParameterRef<int> m_iterations{
this,
"iterations",
config().iterations};
36 Service<AlgorithmsInit_service> m_algorithmsInit{
this};
40 m_algo = std::make_unique<AlgoT>(
GetPrefix());
41 m_algo->level((algorithms::LogLevel)
logger()->level());
43 m_algo->applyConfig(
config());
48 m_algo->process({m_hcal_neutrals_input(), m_b0_neutrals_input(), m_ecalendcapp_neutrals_input(),
49 m_lfhcal_neutrals_input()},
50 {m_lambda_output().get(), m_lambda_decay_products_cm_output().get()});