12 #include <tracking/trackFindingCDC/findlets/base/Findlet.h>
14 #include <tracking/trackFindingCDC/numerics/Weight.h>
16 #include <tracking/trackFindingCDC/utilities/WeightedRelation.h>
17 #include <tracking/trackFindingCDC/utilities/Algorithms.h>
28 class ModuleParamList;
29 namespace TrackFindingCDC {
46 template <
class ACollectorItem,
class ACollectionItem,
class AFilter>
47 class FilterSelector :
48 public Findlet<WeightedRelation<ACollectorItem, const ACollectionItem>> {
54 using Super = Findlet<WeightedRelation<ACollectorItem, const ACollectionItem>>;
66 m_filter.exposeParameters(moduleParamList, prefix);
70 void apply(std::vector<WeightedRelationItem>& weightedRelations)
override
73 const Weight weight =
m_filter(weightedRelation);
74 weightedRelation.setWeight(weight);
78 return std::isnan(item.getWeight());
82 erase_remove_if(weightedRelations, weightIsNan);
84 std::sort(weightedRelations.begin(), weightedRelations.end());