61 if (filterName ==
"none") {
62 return std::make_unique<NoneFilter<BaseSegmentRelationFilter>>();
63 }
else if (filterName ==
"truth") {
64 return std::make_unique<MCSegmentRelationFilter>();
65 }
else if (filterName ==
"unionrecording") {
66 return std::make_unique<UnionRecordingSegmentRelationFilter>();
67 }
else if (filterName ==
"feasible") {
68 return std::make_unique<MVAFeasibleSegmentRelationFilter>();
69 }
else if (filterName ==
"realistic") {
70 return std::make_unique<MVARealisticSegmentRelationFilter>();
71 }
else if (filterName ==
"false_positive") {
73 auto defaultFilter = this->
create(defaultFilterName);
74 std::string truthFilterName =
"truth";
75 auto truthFilter = this->
create(truthFilterName);
76 auto notTruthFilter = std::make_unique<NotFilter<BaseSegmentRelationFilter>>(std::move(truthFilter));
77 return std::make_unique<AndFilter<BaseSegmentRelationFilter>>(std::move(notTruthFilter),
78 std::move(defaultFilter));
79 }
else if (filterName ==
"false_negative") {
81 auto defaultFilter = this->
create(defaultFilterName);
82 std::string truthFilterName =
"truth";
83 auto truthFilter = this->
create(truthFilterName);
84 auto notDefaultFilter = std::make_unique<NotFilter<BaseSegmentRelationFilter>>(std::move(defaultFilter));
85 return std::make_unique<AndFilter<BaseSegmentRelationFilter>>(std::move(notDefaultFilter),
86 std::move(truthFilter));