10 #include <tracking/trackFindingCDC/filters/segment/SegmentFilterFactory.h>
12 #include <tracking/trackFindingCDC/filters/segment/BkgTruthSegmentVarSet.h>
14 #include <tracking/trackFindingCDC/filters/segment/AdvancedSegmentVarSet.h>
16 #include <tracking/trackFindingCDC/filters/base/MVAFilter.icc.h>
18 #include <tracking/trackFindingCDC/filters/base/RecordingFilter.icc.h>
19 #include <tracking/trackFindingCDC/filters/base/TruthVarFilter.icc.h>
20 #include <tracking/trackFindingCDC/filters/base/AllFilter.icc.h>
21 #include <tracking/trackFindingCDC/filters/base/NoneFilter.icc.h>
23 #include <tracking/trackFindingCDC/filters/base/FilterFactory.icc.h>
25 #include <tracking/trackFindingCDC/varsets/VariadicUnionVarSet.h>
28 using namespace TrackFindingCDC;
31 using AllSegmentFilter = AllFilter<BaseSegmentFilter>;
32 using NoneSegmentFilter = NoneFilter<BaseSegmentFilter>;
33 using BkgMCSegmentFilter = TruthVarFilter<BkgTruthSegmentVarSet>;
34 using BkgRecordingSegmentFilter =
35 RecordingFilter<VariadicUnionVarSet<BkgTruthSegmentVarSet, AdvancedSegmentVarSet>>;
36 using BkgMVASegmentFilter = MVAFilter<AdvancedSegmentVarSet>;
42 :
Super(defaultFilterName)
53 return "Segment filter to reject fakes";
56 std::map<std::string, std::string>
60 {
"none",
"no segment track combination is valid"},
61 {
"all",
"filter out all segments as background"},
62 {
"bkg_truth",
"monte carlo truth"},
63 {
"bkg_recording",
"record variables to a TTree"},
64 {
"bkg_mva",
"test with a mva method"}
68 std::unique_ptr<BaseSegmentFilter>
71 if (filterName ==
"none") {
72 return std::make_unique<NoneSegmentFilter>();
73 }
else if (filterName ==
"all") {
74 return std::make_unique<AllSegmentFilter>();
75 }
else if (filterName ==
"bkg_truth") {
76 return std::make_unique<BkgMCSegmentFilter>();
77 }
else if (filterName ==
"bkg_recording") {
78 return std::make_unique<BkgRecordingSegmentFilter>(
"BackgroundSegmentFilter.root");
79 }
else if (filterName ==
"bkg_mva") {
80 return std::make_unique<BkgMVASegmentFilter>(
"trackfindingcdc_BackgroundSegmentFilter");