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