17 :
public JOmniFactory<TrackClusterMergeSplitter_factory, TrackClusterMergeSplitterConfig> {
25 std::unique_ptr<AlgoT> m_algo;
28 PodioInput<edm4eic::TrackClusterMatch> m_track_cluster_matches_input{
this};
29 PodioInput<edm4eic::Cluster> m_clusters_input{
this};
30 PodioInput<edm4eic::TrackSegment> m_track_projections_input{
this};
33 PodioOutput<edm4eic::ProtoCluster> m_protoclusters_output{
this};
34#if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
35 PodioOutput<edm4eic::TrackProtoClusterLink> m_track_protocluster_links_output{
this};
36#elif EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 4, 0)
37 PodioOutput<edm4eic::TrackProtoClusterMatch> m_track_protocluster_matches_output{
this};
41 ParameterRef<double> m_minSigCut{
this,
"minSigCut",
config().minSigCut};
42 ParameterRef<double> m_avgEP{
this,
"avgEP",
config().avgEP};
43 ParameterRef<double> m_sigEP{
this,
"sigEP",
config().sigEP};
44 ParameterRef<double> m_drAdd{
this,
"drAdd",
config().drAdd};
45 ParameterRef<uint64_t> m_surfaceToUse{
this,
"surfaceToUse",
config().surfaceToUse};
46 ParameterRef<double> m_transverseEnergyProfileScale{
this,
"transverseEnergyProfileScale",
47 config().transverseEnergyProfileScale};
50 Service<AlgorithmsInit_service> m_algoInitSvc{
this};
55 m_algo = std::make_unique<AlgoT>(
GetPrefix());
56 m_algo->level(
static_cast<algorithms::LogLevel
>(
logger()->level()));
57 m_algo->applyConfig(
config());
64 {m_track_cluster_matches_input(), m_clusters_input(), m_track_projections_input()},
65#if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
66 { m_protoclusters_output().get(), m_track_protocluster_links_output().get() }
67#elif EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 4, 0)
68 { m_protoclusters_output().get(), m_track_protocluster_matches_output().get() }
70 {m_protoclusters_output().get()}