13 :
public JOmniFactory<ImagingTopoCluster_factory, ImagingTopoClusterConfig> {
19 std::unique_ptr<AlgoT> m_algo;
21 PodioInput<edm4eic::CalorimeterHit> m_hits_input{
this};
22 PodioOutput<edm4eic::ProtoCluster> m_protos_output{
this};
28 ParameterRef<std::vector<double>> m_ldep_same{
this,
"sameLayerDistEtaPhi",
29 config().sameLayerDistEtaPhi};
30 ParameterRef<std::vector<double>> m_ldep_diff{
this,
"diffLayerDistEtaPhi",
31 config().diffLayerDistEtaPhi};
32 ParameterRef<std::vector<double>> m_ldtz_same{
this,
"sameLayerDistTZ",
config().sameLayerDistTZ};
33 ParameterRef<std::vector<double>> m_ldtz_diff{
this,
"diffLayerDistTZ",
config().diffLayerDistTZ};
34 ParameterRef<eicrecon::ImagingTopoClusterConfig::ELayerMode> m_sameLayerMode{
35 this,
"sameLayerMode",
config().sameLayerMode};
36 ParameterRef<eicrecon::ImagingTopoClusterConfig::ELayerMode> m_diffLayerMode{
37 this,
"diffLayerMode",
config().diffLayerMode};
39 ParameterRef<int> m_nlr{
this,
"neighbourLayersRange",
config().neighbourLayersRange};
40 ParameterRef<double> m_sd{
this,
"sectorDist",
config().sectorDist};
41 ParameterRef<double> m_mched{
this,
"minClusterHitEdep",
config().minClusterHitEdep};
42 ParameterRef<double> m_mcced{
this,
"minClusterCenterEdep",
config().minClusterCenterEdep};
43 ParameterRef<double> m_mced{
this,
"minClusterEdep",
config().minClusterEdep};
44 ParameterRef<std::size_t> m_mcnh{
this,
"minClusterNhits",
config().minClusterNhits};
46 Service<AlgorithmsInit_service> m_algorithmsInit{
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_hits_input()}, {m_protos_output().get()});