10 #include <tracking/trackFindingCDC/filters/segmentTrack/SegmentTrackFilterFactory.h>
12 #include <tracking/trackFindingCDC/filters/segmentTrack/SegmentTrackTruthVarSet.h>
13 #include <tracking/trackFindingCDC/filters/segmentTrack/SegmentTrackVarSet.h>
15 #include <tracking/trackFindingCDC/filters/base/MVAFilter.icc.h>
16 #include <tracking/trackFindingCDC/filters/base/AllFilter.icc.h>
17 #include <tracking/trackFindingCDC/filters/base/NoneFilter.icc.h>
18 #include <tracking/trackFindingCDC/filters/base/TruthVarFilter.icc.h>
19 #include <tracking/trackFindingCDC/filters/base/RecordingFilter.icc.h>
21 #include <tracking/trackFindingCDC/filters/base/FilterVarSet.icc.h>
23 #include <tracking/trackFindingCDC/filters/base/FilterFactory.icc.h>
25 #include <tracking/trackFindingCDC/varsets/VariadicUnionVarSet.h>
28 using namespace TrackFindingCDC;
31 using AllSegmentTrackFilter = AllFilter<BaseSegmentTrackFilter>;
32 using NoneSegmentTrackFilter = NoneFilter<BaseSegmentTrackFilter>;
33 using MCSegmentTrackFilter = TruthVarFilter<SegmentTrackTruthVarSet>;
34 using RecordingSegmentTrackFilter = RecordingFilter<VariadicUnionVarSet<SegmentTrackTruthVarSet, SegmentTrackVarSet>>;
35 using MVASegmentTrackFilter = MVAFilter<SegmentTrackVarSet>;
41 :
Super(defaultFilterName)
45 std::map<std::string, std::string>
49 {
"none",
"no segment track combination is valid"},
50 {
"truth",
"monte carlo truth"},
51 {
"mva",
"test with a mva method"},
52 {
"recording",
"record variables to a TTree"},
56 std::unique_ptr<BaseSegmentTrackFilter>
59 if (filterName ==
"none") {
60 return std::make_unique<NoneSegmentTrackFilter>();
61 }
else if (filterName ==
"truth") {
62 return std::make_unique<MCSegmentTrackFilter>();
63 }
else if (filterName ==
"mva") {
64 return std::make_unique<MVASegmentTrackFilter>(
"trackfindingcdc_SegmentTrackFilter", 0.74);
65 }
else if (filterName ==
"eval") {
66 auto recordedVarSets = std::make_unique<UnionVarSet<BaseSegmentTrackFilter::Object>>();
68 recordedVarSets->push_back(std::make_unique<TrackFilterVarSet>(
"mva",
create(
"mva")));
69 recordedVarSets->push_back(std::make_unique<TrackFilterVarSet>(
"truth",
create(
"truth")));
70 return std::make_unique<Recording<BaseSegmentTrackFilter>>(std::move(recordedVarSets),
"SegmentTrackFilter_eval.root");
71 }
else if (filterName ==
"recording") {
72 return std::make_unique<RecordingSegmentTrackFilter>(
"SegmentTrackFilter.root");
80 return "Segment track chooser to be used during the combination of segment track pairs";
85 return "SegmentTrackFilter";