10 #include <tracking/trackFindingCDC/legendre/quadtree/OffOriginExtension.h>
12 #include <tracking/trackFindingCDC/legendre/quadtree/AxialHitQuadTreeProcessor.h>
13 #include <tracking/trackFindingCDC/processing/AxialTrackUtil.h>
15 #include <tracking/trackFindingCDC/fitting/CDCKarimakiFitter.h>
16 #include <tracking/trackFindingCDC/eventdata/hits/CDCWireHit.h>
18 #include <tracking/trackFindingCDC/eventdata/trajectories/CDCTrajectory2D.h>
20 #include <tracking/trackFindingCDC/numerics/LookupTable.h>
21 #include <tracking/trackFindingCDC/geometry/Vector2D.h>
26 using namespace TrackFindingCDC;
29 double levelPrecision)
31 , m_levelPrecision(levelPrecision)
36 void* qt __attribute__((unused)))
39 for (
const CDCWireHit* wireHit : inputWireHits) {
40 (*wireHit)->setTakenFlag(
false);
43 std::vector<const CDCWireHit*> candidateHits =
roadSearch(inputWireHits);
50 std::vector<const CDCWireHit*>
56 double chi2 = trackTrajectory2D.
getChi2();
67 hit->getAutomatonCell().setTakenFlag(
true);
74 hit->getAutomatonCell().setTakenFlag(
false);
77 if (newWireHits.size() == 0)
return wireHits;
79 std::vector<const CDCWireHit*> combinedWireHits;
82 combinedWireHits.push_back(hit);
86 combinedWireHits.push_back(hit);
90 double combinedChi2 = combinedTrajectory2D.
getChi2();
92 if (combinedChi2 < chi2 * 2.) {
93 return combinedWireHits;
99 std::vector<const CDCWireHit*>
106 YSpan curvSpan{curv - curvPrecision, curv + curvPrecision};
112 std::vector<const CDCWireHit*> newWireHits = qtProcessor.
getAssignedItems();