10 #include <tracking/ckf/svd/filters/results/SVDResultFilterFactory.h>
12 #include <tracking/trackFindingCDC/filters/base/FilterFactory.icc.h>
13 #include <tracking/trackFindingCDC/filters/base/AllFilter.icc.h>
14 #include <tracking/trackFindingCDC/filters/base/NoneFilter.icc.h>
15 #include <tracking/trackFindingCDC/filters/base/ChoosableFromVarSetFilter.icc.h>
16 #include <tracking/trackFindingCDC/filters/base/RecordingFilter.icc.h>
17 #include <tracking/trackFindingCDC/filters/base/MVAFilter.icc.h>
19 #include <tracking/trackFindingCDC/varsets/VariadicUnionVarSet.h>
21 #include <tracking/ckf/svd/filters/results/SVDResultVarSet.h>
22 #include <tracking/ckf/svd/filters/results/RelationSVDResultVarSet.h>
23 #include <tracking/ckf/svd/filters/results/SVDResultTruthVarSet.h>
24 #include <tracking/ckf/svd/filters/results/SizeSVDResultFilter.h>
25 #include <tracking/ckf/svd/filters/results/WeightSVDResultFilter.h>
28 using namespace TrackFindingCDC;
32 using ChooseableTruthSVDResultFilter = ChoosableFromVarSetFilter<SVDResultTruthVarSet>;
35 using RecordingSVDResultFilter =
36 RecordingFilter<VariadicUnionVarSet<SVDResultTruthVarSet, SVDResultVarSet>>;
39 using RecordingSVDSeededResultFilter =
40 RecordingFilter<VariadicUnionVarSet<SVDResultTruthVarSet, SVDResultVarSet, RelationSVDResultVarSet>>;
43 using MVASVDResultFilter = MVAFilter<SVDResultVarSet>;
46 using MVASVDSeededResultFilter = MVAFilter<VariadicUnionVarSet<SVDResultVarSet, RelationSVDResultVarSet>>;
51 :
Super(defaultFilterName)
64 return "Reject svd results";
70 {
"none",
"no combination is valid"},
71 {
"all",
"all combination are valid"},
72 {
"recording",
"record variables to a TTree"},
73 {
"recording_with_relations",
"record variables to a TTree"},
74 {
"mva",
"filter based on the trained MVA method"},
75 {
"mva_with_relations",
"filter based on the trained MVA method"},
76 {
"size",
"ordering according to size"},
77 {
"weight",
"ordering according to weight"},
78 {
"truth",
"monte carlo truth"},
79 {
"truth_svd_cdc_relation",
"monte carlo truth on the related CDC and SVD tracks"},
83 std::unique_ptr<BaseSVDResultFilter>
86 if (filterName ==
"none") {
87 return std::make_unique<TrackFindingCDC::NoneFilter<BaseSVDResultFilter>>();
88 }
else if (filterName ==
"all") {
89 return std::make_unique<TrackFindingCDC::AllFilter<BaseSVDResultFilter>>();
90 }
else if (filterName ==
"recording") {
91 return std::make_unique<RecordingSVDResultFilter>();
92 }
else if (filterName ==
"recording_with_relations") {
93 return std::make_unique<RecordingSVDSeededResultFilter>();
94 }
else if (filterName ==
"mva") {
95 return std::make_unique<MVASVDResultFilter>(
"ckf_CDCToSVDResult");
96 }
else if (filterName ==
"mva_with_relations") {
97 return std::make_unique<MVASVDSeededResultFilter>(
"ckf_SeededCDCToSVDResult");
98 }
else if (filterName ==
"truth") {
99 return std::make_unique<ChooseableTruthSVDResultFilter>(
"truth");
100 }
else if (filterName ==
"truth_svd_cdc_relation") {
101 return std::make_unique<ChooseableTruthSVDResultFilter>(
"truth_svd_cdc_relation");
102 }
else if (filterName ==
"size") {
103 return std::make_unique<SizeSVDResultFilter>();
104 }
else if (filterName ==
"weight") {
105 return std::make_unique<WeightSVDResultFilter>();