10 #include <tracking/trackFindingCDC/testFixtures/TrackFindingCDCTestWithSimpleSimulation.h>
12 #include <tracking/trackFindingCDC/legendre/quadtree/AxialHitQuadTreeProcessor.h>
13 #include <tracking/trackFindingCDC/legendre/precisionFunctions/PrecisionUtil.h>
16 #include <gtest/gtest.h>
19 using namespace TrackFindingCDC;
23 TEST_F(TrackFindingCDCTestWithSimpleSimulation, legendre_QuadTreeTest)
29 XYSpans xySpans1({0, maxTheta}, {0., 0.15});
33 XYSpans xySpans2({0, maxTheta}, {0., 0.30});
36 using Candidate = std::vector<const CDCWireHit*>;
37 std::vector<Candidate> candidates;
39 this->loadPreparedEvent();
40 const int nMCTracks = m_mcTracks.size();
42 auto candidateReceiver = [&candidates](
const Candidate & candidate,
void*) {
43 candidates.push_back(candidate);
46 TimeItResult timeItResult = timeIt(100,
true, [&]() {
48 for (
const CDCWireHit* wireHit : m_axialWireHits) {
49 (*wireHit)->unsetTakenFlag();
50 (*wireHit)->unsetMaskedFlag();
53 AxialHitQuadTreeProcessor qtProcessor1(13, 4, xySpans1, highPtPrecisionFunction);
54 qtProcessor1.seed(m_axialWireHits);
57 qtProcessor1.fill(candidateReceiver, 30);
59 AxialHitQuadTreeProcessor qtProcessor2(11, 1, xySpans2, lowPtPrecisionFunction);
60 qtProcessor2.seed(m_axialWireHits);
63 qtProcessor2.fill(candidateReceiver, 30);
68 ASSERT_EQ(nMCTracks, candidates.size());
72 EXPECT_GE(candidates[0].size(), 30);
73 EXPECT_GE(candidates[1].size(), 30);