13 :
public JOmniFactory<CalorimeterIslandCluster_factory, CalorimeterIslandClusterConfig> {
18 std::unique_ptr<AlgoT> m_algo;
20 PodioInput<edm4eic::CalorimeterHit> m_calo_hit_input{
this};
21 PodioOutput<edm4eic::ProtoCluster> m_proto_cluster_output{
this};
23 ParameterRef<double> m_sectorDist{
this,
"sectorDist",
config().sectorDist};
25 ParameterRef<std::vector<double>> m_localDistXZ{
this,
"localDistXZ",
config().localDistXZ};
26 ParameterRef<std::vector<double>> m_localDistYZ{
this,
"localDistYZ",
config().localDistYZ};
27 ParameterRef<std::vector<double>> m_globallDistRPhi{
this,
"globalDistRPhi",
29 ParameterRef<std::vector<double>> m_globalDistEtaPhi{
this,
"globalDistEtaPhi",
30 config().globalDistEtaPhi};
31 ParameterRef<std::vector<double>> m_dimScalledLocalDistXY{
this,
"dimScaledLocalDistXY",
32 config().dimScaledLocalDistXY};
33 ParameterRef<std::string> m_adjacencyMatrix{
this,
"adjacencyMatrix",
config().adjacencyMatrix};
34 ParameterRef<std::string> m_readout{
this,
"readoutClass",
config().readout};
35 ParameterRef<bool> m_splitCluster{
this,
"splitCluster",
config().splitCluster};
36 ParameterRef<double> m_minClusterHitEdep{
this,
"minClusterHitEdep",
config().minClusterHitEdep};
37 ParameterRef<double> m_minClusterCenterEdep{
this,
"minClusterCenterEdep",
38 config().minClusterCenterEdep};
39 ParameterRef<std::string> m_tepm{
this,
"transverseEnergyProfileMetric",
41 ParameterRef<double> m_teps{
this,
"transverseEnergyProfileScale",
42 config().transverseEnergyProfileScale};
44 Service<AlgorithmsInit_service> m_algorithmsInit{
this};
48 m_algo = std::make_unique<AlgoT>(
GetPrefix());
49 m_algo->level(
static_cast<algorithms::LogLevel
>(
logger()->level()));
53 m_algo->applyConfig(
config());
58 m_algo->process({m_calo_hit_input()}, {m_proto_cluster_output().get()});