10 #include <tracking/trackFindingCDC/filters/track/TrackFilterFactory.h>
12 #include <tracking/trackFindingCDC/filters/track/TruthTrackVarSet.h>
13 #include <tracking/trackFindingCDC/filters/track/BasicTrackVarSet.h>
15 #include <tracking/trackFindingCDC/filters/base/MVAFilter.icc.h>
17 #include <tracking/trackFindingCDC/filters/base/RecordingFilter.icc.h>
18 #include <tracking/trackFindingCDC/filters/base/TruthVarFilter.icc.h>
19 #include <tracking/trackFindingCDC/filters/base/AllFilter.icc.h>
20 #include <tracking/trackFindingCDC/filters/base/NoneFilter.icc.h>
22 #include <tracking/trackFindingCDC/filters/base/FilterFactory.icc.h>
23 #include <tracking/trackFindingCDC/filters/base/FilterVarSet.icc.h>
25 #include <tracking/trackFindingCDC/varsets/VariadicUnionVarSet.h>
28 using namespace TrackFindingCDC;
31 using AllTrackFilter = AllFilter<BaseTrackFilter>;
32 using NoneTrackFilter = NoneFilter<BaseTrackFilter>;
33 using MCTrackFilter = TruthVarFilter<TruthTrackVarSet>;
34 using RecordingTrackFilter = RecordingFilter<VariadicUnionVarSet<TruthTrackVarSet, BasicTrackVarSet>>;
35 using RecordingDataTrackFilter = RecordingFilter<BasicTrackVarSet>;
36 using MVATrackFilter = MVAFilter<BasicTrackVarSet>;
42 :
Super(defaultFilterName)
53 return "Track filter to reject fakes";
56 std::map<std::string, std::string>
60 {
"none",
"no track is valid"},
61 {
"all",
"set all tracks as good"},
62 {
"truth",
"monte carlo truth"},
63 {
"recording",
"record variables to a TTree"},
64 {
"recording_data",
"record reco-variables to a TTree (no truth information)"},
65 {
"eval",
"record truth and the mva response for insitu comparision"},
66 {
"mva",
"test with a mva method"}
70 std::unique_ptr<BaseTrackFilter>
73 if (filterName ==
"none") {
74 return std::make_unique<NoneTrackFilter>();
75 }
else if (filterName ==
"all") {
76 return std::make_unique<AllTrackFilter>();
77 }
else if (filterName ==
"truth") {
78 return std::make_unique<MCTrackFilter>();
79 }
else if (filterName ==
"recording") {
80 return std::make_unique<RecordingTrackFilter>(
"TrackFilter.root");
81 }
else if (filterName ==
"recording_data") {
82 return std::make_unique<RecordingDataTrackFilter>(
"TrackFilter.root");
83 }
else if (filterName ==
"eval") {
84 auto recordedVarSets = std::make_unique<UnionVarSet<CDCTrack>>();
86 recordedVarSets->push_back(std::make_unique<TrackFilterVarSet>(
"mva",
create(
"mva")));
87 recordedVarSets->push_back(std::make_unique<TrackFilterVarSet>(
"truth",
create(
"truth")));
88 return std::make_unique<Recording<BaseTrackFilter>>(std::move(recordedVarSets),
"TrackFilter_eval.root");
89 }
else if (filterName ==
"mva") {
90 return std::make_unique<MVATrackFilter>(
"trackfindingcdc_TrackFilter", 0.10);