10 #include <tracking/trackFindingCDC/filters/track/TrackQualityFilterFactory.h>
12 #include <tracking/trackFindingCDC/filters/track/BestMatchedTruthVarSet.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;
33 using AllTrackFilter = AllFilter<BaseTrackFilter>;
34 using NoneTrackFilter = NoneFilter<BaseTrackFilter>;
35 using MCTrackFilter = TruthVarFilter<BestMatchedTruthVarSet>;
36 using RecordingTrackFilter =
37 RecordingFilter<VariadicUnionVarSet<BestMatchedTruthVarSet, BasicTrackVarSet>>;
38 using RecordingDataTrackFilter =
39 RecordingFilter<BasicTrackVarSet>;
40 using MVATrackFilter = MVAFilter<BasicTrackVarSet>;
47 return "Track filter for getting the quality indicator for CDC tracks. It should "
48 "distinguish correct PR tracks from fake and if wanted also clone tracks. ";
52 const std::string& filterName)
const
54 if (filterName ==
"none") {
55 return std::make_unique<NoneTrackFilter>();
56 }
else if (filterName ==
"all") {
57 return std::make_unique<AllTrackFilter>();
58 }
else if (filterName ==
"truth") {
59 return std::make_unique<MCTrackFilter>();
60 }
else if (filterName ==
"recording") {
61 return std::make_unique<RecordingTrackFilter>(
"TrackQualityFilter.root");
62 }
else if (filterName ==
"recording_data") {
63 return std::make_unique<RecordingDataTrackFilter>(
"TrackQualityFilter.root");
64 }
else if (filterName ==
"eval") {
65 auto recordedVarSets = std::make_unique<UnionVarSet<CDCTrack>>();
67 recordedVarSets->push_back(std::make_unique<TrackFilterVarSet>(
"mva",
create(
"mva")));
68 recordedVarSets->push_back(std::make_unique<TrackFilterVarSet>(
"truth",
create(
"truth")));
69 return std::make_unique<Recording<BaseTrackFilter>>(std::move(recordedVarSets),
70 "TrackQualityFilter_eval.root");
71 }
else if (filterName ==
"mva") {
72 return std::make_unique<MVATrackFilter>(
"trackfindingcdc_TrackQualityIndicator", 0.10);