10 #include <tracking/trackFindingCDC/findlets/combined/AxialTrackFinderHough.h>
12 #include <tracking/trackFindingCDC/eventdata/tracks/CDCTrack.h>
13 #include <tracking/trackFindingCDC/eventdata/hits/CDCWireHit.h>
15 #include <tracking/trackFindingCDC/utilities/StringManipulation.h>
17 #include <framework/core/ModuleParamList.templateDetails.h>
18 #include <framework/core/ModuleParam.h>
21 using namespace TrackFindingCDC;
35 const std::string prefix =
"";
39 moduleParamList.
getParameter<
int>(
"fineGranularityLevel").setDefaultValue(12);
40 moduleParamList.
getParameter<
int>(
"fineSectorLevelSkip").setDefaultValue(2);
42 moduleParamList.
getParameter<std::vector<float>>(
"fineCurvBounds").setDefaultValue({{ -0.02, 0.14}});
43 moduleParamList.
getParameter<
int>(
"fineDiscretePhi0Width").setDefaultValue(19);
44 moduleParamList.
getParameter<
int>(
"fineDiscretePhi0Overlap").setDefaultValue(5);
45 moduleParamList.
getParameter<
int>(
"fineDiscreteCurvWidth").setDefaultValue(1);
46 moduleParamList.
getParameter<
int>(
"fineDiscreteCurvOverlap").setDefaultValue(-1);
47 moduleParamList.
getParameter<std::vector<ParameterVariantMap>>(
"fineRelaxationSchedule")
51 moduleParamList.
getParameter<
int>(
"roughGranularityLevel").setDefaultValue(10);
52 moduleParamList.
getParameter<
int>(
"roughSectorLevelSkip").setDefaultValue(0);
53 moduleParamList.
getParameter<std::vector<float>>(
"roughCurvBounds").setDefaultValue({{ 0.0, 0.30}});
54 moduleParamList.
getParameter<
int>(
"roughDiscretePhi0Width").setDefaultValue(19);
55 moduleParamList.
getParameter<
int>(
"roughDiscretePhi0Overlap").setDefaultValue(5);
56 moduleParamList.
getParameter<
int>(
"roughDiscreteCurvWidth").setDefaultValue(1);
57 moduleParamList.
getParameter<
int>(
"roughDiscreteCurvOverlap").setDefaultValue(-1);
58 moduleParamList.
getParameter<std::vector<ParameterVariantMap>>(
"roughRelaxationSchedule")
64 return "Generates axial tracks from hits using several increasingly relaxed hough space search over phi0 and curvature.";
68 const std::string& prefix)
77 std::vector<CDCTrack>& tracks)
80 std::vector<const CDCWireHit*> axialWireHits;
81 axialWireHits.reserve(wireHits.size());
83 wireHit->unsetTemporaryFlags();
84 wireHit->unsetMaskedFlag();
85 if (not wireHit.isAxial())
continue;
86 if (wireHit->hasBackgroundFlag())
continue;
87 axialWireHits.emplace_back(&wireHit);
110 std::vector<ParameterVariantMap>
113 std::vector<ParameterVariantMap> result;
120 result.push_back(ParameterVariantMap{
123 {
"maxCurv", 1.0 * 0.02},
124 {
"curvResolution", std::string(
"origin")},
125 {
"nRoadSearches", 1},
129 result.push_back(ParameterVariantMap{
132 {
"maxCurv", 2.0 * 0.02},
133 {
"curvResolution", std::string(
"origin")},
134 {
"nRoadSearches", 1},
138 for (
double minWeight = 50.0; minWeight > 10.0; minWeight *= 0.75) {
139 result.push_back(ParameterVariantMap{
141 {
"minWeight", minWeight},
143 {
"curvResolution", std::string(
"origin")},
144 {
"nRoadSearches", 1},
150 result.push_back(ParameterVariantMap{
153 {
"maxCurv", 1.0 * 0.02},
154 {
"curvResolution", std::string(
"nonOrigin")},
155 {
"nRoadSearches", 2},
159 result.push_back(ParameterVariantMap{
162 {
"maxCurv", 2.0 * 0.02},
163 {
"curvResolution", std::string(
"nonOrigin")},
164 {
"nRoadSearches", 2},
168 result.push_back(ParameterVariantMap{
172 {
"curvResolution", std::string(
"nonOrigin")},
173 {
"nRoadSearches", 2},
177 for (
double minWeight = 37.5; minWeight > 10.0; minWeight *= 0.75) {
178 result.push_back(ParameterVariantMap{
180 {
"minWeight", minWeight},
182 {
"curvResolution", std::string(
"nonOrigin")},
183 {
"nRoadSearches", 2},
191 std::vector<ParameterVariantMap>
194 std::vector<ParameterVariantMap> result;
197 result.push_back(ParameterVariantMap{
200 {
"maxCurv", 1.0 * 0.02},
201 {
"curvResolution", std::string(
"nonOrigin")},
202 {
"nRoadSearches", 3},
206 result.push_back(ParameterVariantMap{
209 {
"maxCurv", 2.0 * 0.02},
210 {
"curvResolution", std::string(
"nonOrigin")},
211 {
"nRoadSearches", 3},
215 for (
double minWeight = 30.0; minWeight > 10.0; minWeight *= 0.75) {
216 result.push_back(ParameterVariantMap{
218 {
"minWeight", minWeight},
220 {
"curvResolution", std::string(
"nonOrigin")},
221 {
"nRoadSearches", 3},