10 #include <tracking/ckf/cdc/filters/paths/CDCPathFilterFactory.h>
12 #include <tracking/trackFindingCDC/filters/base/FilterFactory.icc.h>
14 #include <tracking/ckf/cdc/filters/paths/SizeCDCPathFilter.h>
15 #include <tracking/trackFindingCDC/filters/base/AllFilter.icc.h>
16 #include <tracking/trackFindingCDC/filters/base/AndFilter.icc.h>
17 #include <tracking/trackFindingCDC/filters/base/NoneFilter.icc.h>
18 #include <tracking/trackFindingCDC/filters/base/RecordingFilter.icc.h>
20 #include <tracking/trackFindingCDC/varsets/VariadicUnionVarSet.h>
22 #include <tracking/ckf/cdc/filters/paths/CDCPathBasicVarSet.h>
23 #include <tracking/ckf/cdc/filters/paths/CDCPathTruthVarSet.h>
24 #include <tracking/ckf/cdc/filters/paths/CDCfromEclPathTruthVarSet.h>
26 #include <tracking/ckf/cdc/filters/paths/SeedChargeCDCPathFilter.h>
29 using namespace TrackFindingCDC;
33 using RecordingCDCPathFilter = RecordingFilter<VariadicUnionVarSet<CDCPathBasicVarSet, CDCPathTruthVarSet>>;
35 using RecordingCDCfromEclPathFilter = RecordingFilter<VariadicUnionVarSet<CDCPathBasicVarSet, CDCfromEclPathTruthVarSet>>;
37 using AndCDCPathFilter = AndFilter<BaseCDCPathFilter>;
41 :
Super(defaultFilterName)
54 return "Reject cdc ckf paths";
60 {
"none",
"no track combination is valid"},
61 {
"size",
"very rough filtering"},
62 {
"recording",
"record variables to a TTree"},
63 {
"size_and_recording",
"record variables to a TTree"},
64 {
"recording_fromEcl",
"record variables to a TTree"},
65 {
"size_and_recording_fromEcl",
"record variables to a TTree"},
66 {
"seedCharge",
"charge of path corresponds to charge of seed"},
67 {
"seedCharge_and_recording_fromEcl",
"record variables to a TTree"}
72 std::unique_ptr<BaseCDCPathFilter>
75 if (filterName ==
"none") {
76 return std::make_unique<TrackFindingCDC::NoneFilter<BaseCDCPathFilter>>();
77 }
else if (filterName ==
"all") {
78 return std::make_unique<TrackFindingCDC::AllFilter<BaseCDCPathFilter>>();
79 }
else if (filterName ==
"size") {
80 return std::make_unique<SizeCDCPathFilter>();
83 }
else if (filterName ==
"recording") {
84 return std::make_unique<RecordingCDCPathFilter>(
"CDCPathFilter.root");
85 }
else if (filterName ==
"size_and_recording") {
86 return std::make_unique<AndCDCPathFilter>(
87 std::make_unique<RecordingCDCPathFilter>(
"CDCPathFilter.root"),
88 std::make_unique<SizeCDCPathFilter>()
90 }
else if (filterName ==
"recording_fromEcl") {
91 return std::make_unique<RecordingCDCfromEclPathFilter>(
"CDCfromEclPathFilter.root");
92 }
else if (filterName ==
"size_and_recording_fromEcl") {
93 return std::make_unique<AndCDCPathFilter>(
94 std::make_unique<RecordingCDCfromEclPathFilter>(
"CDCfromEclPathFilter.root"),
95 std::make_unique<SizeCDCPathFilter>()
97 }
else if (filterName ==
"seedCharge") {
98 return std::make_unique<SeedChargeCDCPathFilter>();
99 }
else if (filterName ==
"seedCharge_and_recording_fromEcl") {
100 return std::make_unique<AndCDCPathFilter>(
101 std::make_unique<RecordingCDCfromEclPathFilter>(
"CDCfromEclPathFilter.root"),
102 std::make_unique<SeedChargeCDCPathFilter>()