14 :
public JOmniFactory<CalorimeterClusterShape_factory, CalorimeterClusterShapeConfig> {
21 std::unique_ptr<AlgoT> m_algo;
24 PodioInput<edm4eic::Cluster> m_clusters_input{
this};
25 PodioInput<edm4eic::MCRecoClusterParticleAssociation> m_assocs_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};
35 ParameterRef<bool> m_longitudinalShowerInfoAvailable{
this,
"longitudinalShowerInfoAvailable",
36 config().longitudinalShowerInfoAvailable};
37 ParameterRef<std::string> m_energyWeight{
this,
"energyWeight",
config().energyWeight};
38 ParameterRef<double> m_sampFrac{
this,
"sampFrac",
config().sampFrac};
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<double> m_logWeightBase{
this,
"logWeightBase",
config().logWeightBase};
46 Service<AlgorithmsInit_service> m_algoInitSvc{
this};
50 m_algo = std::make_unique<AlgoT>(
GetPrefix());
51 m_algo->level(
static_cast<algorithms::LogLevel
>(
logger()->level()));
52 m_algo->applyConfig(
config());
57 m_algo->process({m_clusters_input(), m_assocs_input()}, {m_clusters_output().get(),
58#if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
59 m_links_output().get(),
61 m_assocs_output().get()});