10 #include <tracking/trackFindingCDC/filters/stereoHits/StereoHitFilterFactory.h>
12 #include <tracking/trackFindingCDC/filters/stereoHits/StereoHitTruthVarSet.h>
13 #include <tracking/trackFindingCDC/filters/stereoHits/StereoHitVarSet.h>
15 #include <tracking/trackFindingCDC/filters/base/MVAFilter.icc.h>
17 #include <tracking/trackFindingCDC/filters/base/AllFilter.icc.h>
18 #include <tracking/trackFindingCDC/filters/base/NoneFilter.icc.h>
19 #include <tracking/trackFindingCDC/filters/base/RandomFilter.icc.h>
20 #include <tracking/trackFindingCDC/filters/base/ChoosableFromVarSetFilter.icc.h>
21 #include <tracking/trackFindingCDC/filters/base/TruthVarFilter.icc.h>
22 #include <tracking/trackFindingCDC/filters/base/RecordingFilter.icc.h>
24 #include <tracking/trackFindingCDC/filters/base/FilterFactory.icc.h>
26 #include <tracking/trackFindingCDC/varsets/VariadicUnionVarSet.h>
29 using namespace TrackFindingCDC;
32 using AllStereoHitFilter = AllFilter<BaseStereoHitFilter>;
33 using NoneStereoHitFilter = NoneFilter<BaseStereoHitFilter>;
34 using RandomStereoHitFilter = RandomFilter<BaseStereoHitFilter>;
35 using MCStereoHitFilter = TruthVarFilter<StereoHitTruthVarSet>;
36 using SimpleStereoHitFilter = ChoosableFromVarSetFilter<StereoHitVarSet>;
37 using RecordingStereoHitFilter =
38 RecordingFilter<VariadicUnionVarSet<StereoHitTruthVarSet, StereoHitVarSet>>;
39 using MVAStereoHitFilter = MVAFilter<StereoHitVarSet>;
45 :
Super(defaultFilterName)
56 return "Stereo hit to track combination filter for adding the hit.";
59 std::map<std::string, std::string>
63 {
"none",
"no hit track combination is valid."},
64 {
"all",
"set all hits as good."},
65 {
"random",
"returns a random weight (for testing)."},
66 {
"truth",
"monte carlo truth."},
67 {
"simple",
"give back a weight based on very simple variables you can give as a parameter."},
68 {
"recording",
"record variables to a TTree."},
69 {
"mva",
"use the trained BDT."},
73 std::unique_ptr<BaseStereoHitFilter>
76 if (filterName ==
"none") {
77 return std::make_unique<NoneStereoHitFilter>();
78 }
else if (filterName ==
"all") {
79 return std::make_unique<AllStereoHitFilter>();
80 }
else if (filterName ==
"random") {
81 return std::make_unique<RandomStereoHitFilter>();
82 }
else if (filterName ==
"simple") {
83 return std::make_unique<SimpleStereoHitFilter>();
84 }
else if (filterName ==
"truth") {
85 return std::make_unique<MCStereoHitFilter>();
86 }
else if (filterName ==
"recording") {
87 return std::make_unique<RecordingStereoHitFilter>(
"StereoHitFilter.root");
88 }
else if (filterName ==
"mva") {
89 return std::make_unique<MVAStereoHitFilter>(
"trackfindingcdc_StereoHitFilter");