10 #include <tracking/trackFindingCDC/filters/trackRelation/TrackRelationFilterFactory.h>
12 #include <tracking/trackFindingCDC/filters/base/FilterFactory.icc.h>
14 #include <tracking/trackFindingCDC/filters/trackRelation/BaseTrackRelationFilter.h>
15 #include <tracking/trackFindingCDC/filters/trackRelation/AllTrackRelationFilter.h>
16 #include <tracking/trackFindingCDC/filters/trackRelation/MCTrackRelationFilter.h>
17 #include <tracking/trackFindingCDC/filters/trackRelation/UnionRecordingTrackRelationFilter.h>
18 #include <tracking/trackFindingCDC/filters/trackRelation/MVAFeasibleTrackRelationFilter.h>
19 #include <tracking/trackFindingCDC/filters/trackRelation/MVARealisticTrackRelationFilter.h>
20 #include <tracking/trackFindingCDC/filters/trackRelation/PhiTrackRelationFilter.h>
22 #include <tracking/trackFindingCDC/filters/base/NoneFilter.icc.h>
26 using namespace TrackFindingCDC;
31 :
Super(defaultFilterName)
37 return "TrackRelation";
42 return "Track relation filter to construct a track network for merging";
45 std::map<std::string, std::string>
49 {
"none",
"accepts nothing"},
50 {
"all",
"accepts everything"},
51 {
"truth",
"accepts based on monte carlo information"},
52 {
"unionrecording",
"record multiple choosable variable set"},
53 {
"phi",
"filter just based on the phi distance"},
54 {
"feasible",
"a rough efficient compatibility check"},
55 {
"realistic",
"an expensive pure compatibility check"},
59 std::unique_ptr<BaseTrackRelationFilter>
62 if (filterName ==
"none") {
63 return std::make_unique<NoneFilter<BaseTrackRelationFilter>>();
64 }
else if (filterName ==
"all") {
65 return std::make_unique<AllTrackRelationFilter>();
66 }
else if (filterName ==
"truth") {
67 return std::make_unique<MCTrackRelationFilter>();
68 }
else if (filterName ==
"unionrecording") {
69 return std::make_unique< UnionRecordingTrackRelationFilter>();
70 }
else if (filterName ==
"feasible") {
71 return std::make_unique<MVAFeasibleTrackRelationFilter>();
72 }
else if (filterName ==
"realistic") {
73 return std::make_unique<MVARealisticTrackRelationFilter>();
74 }
else if (filterName ==
"phi") {
75 return std::make_unique<PhiTrackRelationFilter>();