File indexing completed on 2026-06-17 07:50:47
0001
0002
0003
0004 #pragma once
0005
0006 #include <algorithms/algorithm.h>
0007 #include <edm4eic/ClusterCollection.h>
0008 #include <edm4eic/EDM4eicVersion.h>
0009 #include <edm4eic/ProtoClusterCollection.h>
0010 #include <edm4eic/TrackClusterMatchCollection.h>
0011 #if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
0012 #include <edm4eic/TrackProtoClusterLinkCollection.h>
0013 #elif EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 4, 0)
0014 #include <edm4eic/TrackProtoClusterMatchCollection.h>
0015 #endif
0016 #include <string>
0017 #include <string_view>
0018
0019 #include "algorithms/interfaces/WithPodConfig.h"
0020
0021 namespace eicrecon {
0022
0023 using TrackProtoClusterMatchPromoterAlgorithm = algorithms::Algorithm<
0024 #if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
0025 typename algorithms::Input<edm4eic::TrackProtoClusterLinkCollection,
0026 edm4eic::ProtoClusterCollection, edm4eic::ClusterCollection>,
0027 #elif EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 4, 0)
0028 typename algorithms::Input<edm4eic::TrackProtoClusterMatchCollection,
0029 edm4eic::ProtoClusterCollection, edm4eic::ClusterCollection>,
0030 #else
0031 typename algorithms::Input<edm4eic::ProtoClusterCollection, edm4eic::ClusterCollection>,
0032 #endif
0033 typename algorithms::Output<edm4eic::TrackClusterMatchCollection>>;
0034
0035
0036
0037
0038
0039
0040
0041
0042 class TrackProtoClusterMatchPromoter : public TrackProtoClusterMatchPromoterAlgorithm,
0043 public WithPodConfig<NoConfig> {
0044
0045 public:
0046
0047 TrackProtoClusterMatchPromoter(std::string_view name)
0048 : TrackProtoClusterMatchPromoterAlgorithm{
0049 name,
0050 #if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
0051 {"inputTrackProtoclusterLinks", "inputProtoclusters", "inputClusters"},
0052 #elif EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 4, 0)
0053 {"inputTrackProtoclusterMatches", "inputProtoclusters", "inputClusters"},
0054 #else
0055 {"inputProtoclusters", "inputClusters"},
0056 #endif
0057 {"outputTrackClusterMatches"},
0058 "Copies track-protocluster matches onto track-cluster matches"} {
0059 }
0060
0061 void process(const Input&, const Output&) const final;
0062
0063 };
0064
0065 }