10 #include <tracking/ckf/svd/filters/relations/SVDPairFilterFactory.h>
11 #include <tracking/ckf/svd/filters/relations/SensorSVDPairFilter.h>
12 #include <tracking/ckf/svd/filters/relations/DistanceSVDPairFilter.h>
13 #include <tracking/ckf/svd/filters/relations/SectorMapBasedSVDPairFilter.h>
14 #include <tracking/ckf/svd/filters/relations/LooseSVDPairFilter.h>
16 #include <tracking/trackFindingCDC/filters/base/Filter.icc.h>
17 #include <tracking/trackFindingCDC/filters/base/FilterFactory.icc.h>
18 #include <tracking/trackFindingCDC/filters/base/NoneFilter.icc.h>
19 #include <tracking/trackFindingCDC/filters/base/AllFilter.icc.h>
22 using namespace TrackFindingCDC;
26 :
Super(defaultFilterName)
39 return "Reject svd pairs. ";
45 {
"all",
"all combinations are valid"},
46 {
"none",
"no combination is valid"},
47 {
"sensor",
"use sensor/ladder information"},
48 {
"sectormap",
"use the sector map"},
49 {
"distance",
"based on the position distance"},
50 {
"loose",
"loose prefilter"},
54 std::unique_ptr<BaseSVDPairFilter>
57 if (filterName ==
"all") {
58 return std::make_unique<TrackFindingCDC::AllFilter<BaseSVDPairFilter>>();
61 if (filterName ==
"none") {
62 return std::make_unique<TrackFindingCDC::NoneFilter<BaseSVDPairFilter>>();
65 if (filterName ==
"sensor") {
66 return std::make_unique<SensorSVDPairFilter>();
69 if (filterName ==
"distance") {
70 return std::make_unique<DistanceSVDPairFilter>();
73 if (filterName ==
"sectormap") {
74 return std::make_unique<SectorMapBasedSVDPairFilter>();
77 if (filterName ==
"loose") {
78 return std::make_unique<LooseSVDPairFilter>();