14 :
public JOmniFactory<CalorimeterClusterRecoCoG_factory, CalorimeterClusterRecoCoGConfig> {
20 std::unique_ptr<AlgoT> m_algo;
22 PodioInput<edm4eic::ProtoCluster> m_proto_input{
this};
23#if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
24 PodioInput<edm4eic::MCRecoCalorimeterHitLink, true> m_mchitlinks_input{
27 PodioInput<edm4eic::MCRecoCalorimeterHitAssociation, true> m_mchitassocs_input{
30 PodioOutput<edm4eic::Cluster> m_cluster_output{
this};
31#if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
32 PodioOutput<edm4eic::MCRecoClusterParticleLink> m_links_output{
this};
34 PodioOutput<edm4eic::MCRecoClusterParticleAssociation> m_assoc_output{
this};
36 ParameterRef<std::string> m_energyWeight{
this,
"energyWeight",
config().energyWeight};
37 ParameterRef<double> m_samplingFraction{
this,
"samplingFraction",
config().sampFrac};
38 ParameterRef<double> m_logWeightBase{
this,
"logWeightBase",
config().logWeightBase};
39 ParameterRef<std::vector<double>> m_logWeightBaseCoeffs{
this,
"logWeightBaseCoeffs",
40 config().logWeightBaseCoeffs};
41 ParameterRef<double> m_logWeightBase_Eref{
this,
"logWeightBase_Eref",
42 config().logWeightBase_Eref};
43 ParameterRef<bool> m_enableEtaBounds{
this,
"enableEtaBounds",
config().enableEtaBounds};
45 Service<AlgorithmsInit_service> m_algorithmsInit{
this};
49 m_algo = std::make_unique<AlgoT>(
GetPrefix());
50 m_algo->level(
static_cast<algorithms::LogLevel
>(
logger()->level()));
51 m_algo->applyConfig(
config());
56 m_algo->process({m_proto_input(),
57#if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
60 m_mchitassocs_input()},
61 {m_cluster_output().get(),
62#if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
63 m_links_output().get(),
65 m_assoc_output().get()});