10 #include <tracking/ckf/cdc/filters/pathPairs/CDCPathPairFilterFactory.h>
12 #include <tracking/trackFindingCDC/filters/base/FilterFactory.icc.h>
14 #include <tracking/ckf/cdc/filters/pathPairs/DistanceBasedCDCPathPairFilter.h>
15 #include <tracking/ckf/cdc/filters/pathPairs/DuplicateCDCPathPairFilter.h>
16 #include <tracking/ckf/cdc/filters/pathPairs/Chi2BasedCDCPathPairFilter.h>
17 #include <tracking/ckf/cdc/filters/pathPairs/HitDistanceBasedCDCPathPairFilter.h>
18 #include <tracking/ckf/cdc/filters/pathPairs/ArcLengthBasedCDCPathPairFilter.h>
19 #include <tracking/ckf/cdc/filters/pathPairs/ArcLengthBasedCDCfromEclPathPairFilter.h>
20 #include <tracking/ckf/cdc/filters/pathPairs/MCTruthCDCPathPairFilter.h>
22 #include <tracking/trackFindingCDC/filters/base/AllFilter.icc.h>
23 #include <tracking/trackFindingCDC/filters/base/NoneFilter.icc.h>
26 using namespace TrackFindingCDC;
30 :
Super(defaultFilterName)
38 return "CDCCKFPathPair";
43 return "Order cdc ckf path pairs";
49 {
"none",
"no track combination is valid"},
50 {
"distance",
"ordering based on distance"},
51 {
"chi2",
"ordering based on chi2"},
52 {
"duplicateHits",
"compares last hits of both tracks to check for duplicates"},
53 {
"hitDistance",
"ordering based on hitDistance"},
54 {
"arc_length",
"ordering based on arc_length"},
55 {
"arc_length_fromEcl",
"ordering based on arc_length; track from Ecl seed"},
56 {
"mc_truth",
"ordering based on mc truth information"},
60 std::unique_ptr<BaseCDCPathPairFilter>
63 if (filterName ==
"none") {
64 return std::make_unique<TrackFindingCDC::NoneFilter<BaseCDCPathPairFilter>>();
65 }
else if (filterName ==
"all") {
66 return std::make_unique<TrackFindingCDC::AllFilter<BaseCDCPathPairFilter>>();
67 }
else if (filterName ==
"distance") {
68 return std::make_unique<DistanceBasedCDCPathPairFilter>();
69 }
else if (filterName ==
"chi2") {
70 return std::make_unique<Chi2BasedCDCPathPairFilter>();
71 }
else if (filterName ==
"duplicateHits") {
72 return std::make_unique<DuplicateCDCPathPairFilter>();
73 }
else if (filterName ==
"hitDistance") {
74 return std::make_unique<HitDistanceBasedCDCPathPairFilter>();
75 }
else if (filterName ==
"arc_length") {
76 return std::make_unique<ArcLengthBasedCDCPathPairFilter>();
77 }
else if (filterName ==
"arc_length_fromEcl") {
78 return std::make_unique<ArcLengthBasedCDCfromEclPathPairFilter>();
79 }
else if (filterName ==
"mc_truth") {
80 return std::make_unique<MCTruthCDCPathPairFilter>();