14 :
public JOmniFactory<ImagingClusterReco_factory, ImagingClusterRecoConfig> {
20 std::unique_ptr<AlgoT> m_algo;
22 PodioInput<edm4eic::ProtoCluster> m_protos_input{
this};
23#if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
24 PodioInput<edm4eic::MCRecoCalorimeterHitLink> m_mchitlinks_input{
this};
26 PodioInput<edm4eic::MCRecoCalorimeterHitAssociation> m_mchitassocs_input{
this};
28 PodioOutput<edm4eic::Cluster> m_clusters_output{
this};
29#if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
30 PodioOutput<edm4eic::MCRecoClusterParticleLink> m_links_output{
this};
32 PodioOutput<edm4eic::MCRecoClusterParticleAssociation> m_assocs_output{
this};
33 PodioOutput<edm4eic::Cluster> m_layers_output{
this};
35 ParameterRef<int> m_trackStopLayer{
this,
"trackStopLayer",
config().trackStopLayer};
37 Service<AlgorithmsInit_service> m_algorithmsInit{
this};
41 m_algo = std::make_unique<AlgoT>(
GetPrefix());
42 m_algo->level(
static_cast<algorithms::LogLevel
>(
logger()->level()));
43 m_algo->applyConfig(
config());
48 m_algo->process({m_protos_input(),
49#if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
52 m_mchitassocs_input()},
53 {m_clusters_output().get(),
54#if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
55 m_links_output().get(),
57 m_assocs_output().get(), m_layers_output().get()});