12 #include <tracking/trackFindingCDC/findlets/base/Findlet.h>
13 #include <tracking/trackFindingCDC/utilities/WeightedRelation.h>
22 namespace TrackFindingCDC {
41 template <
class ACollectorItem,
class ACollectionItem>
42 class MatcherInterface :
43 public Findlet<ACollectorItem,
44 const ACollectionItem,
45 WeightedRelation<ACollectorItem, const ACollectionItem>> {
54 void apply(std::vector<ACollectorItem>& collectorItems,
const std::vector<ACollectionItem>& collectionItems,
55 std::vector<WeightedRelationItem>& weightedRelations)
override
57 for (ACollectorItem& collectorItem : collectorItems) {
58 match(collectorItem, collectionItems, weightedRelations);
61 std::sort(weightedRelations.begin(), weightedRelations.end());
70 virtual void match(ACollectorItem& collectorItem,
const std::vector<ACollectionItem>& collectionItems,
71 std::vector<WeightedRelationItem>& relationsForCollector)
73 for (
const ACollectionItem& collectionItem : collectionItems) {
74 Weight weight =
match(collectorItem, collectionItem);
75 relationsForCollector.emplace_back(&collectorItem, weight, &collectionItem);
84 virtual Weight
match(ACollectorItem& collectorItem __attribute__((unused)),
85 const ACollectionItem& collectionItem __attribute__((unused)))