10 #include <gtest/gtest.h>
12 #include <tracking/trackFindingCDC/testFixtures/TrackFindingCDCTestWithTopology.h>
14 #include <tracking/trackFindingCDC/filters/facet/FeasibleRLFacetFilter.h>
16 #include <tracking/trackFindingCDC/eventdata/hits/CDCFacet.h>
17 #include <tracking/trackFindingCDC/eventdata/hits/CDCRLWireHit.h>
18 #include <tracking/trackFindingCDC/eventdata/hits/CDCWireHit.h>
20 #include <tracking/trackFindingCDC/topology/CDCWireTopology.h>
22 #include <framework/utilities/TestHelpers.h>
25 using namespace TrackFindingCDC;
27 TEST_F(TrackFindingCDCTestWithTopology, filter_facet_FeasibleRLFacetFilter_accepts_long_para)
29 FeasibleRLFacetFilter
filter;
36 const CDCWire& aWire = wireTopology.getWire(0, 0, 0);
37 const CDCWire& bWire = wireTopology.getWire(0, 0, 1);
38 const CDCWire& cWire = wireTopology.getWire(0, 0, 3);
40 const CDCWireHit aWireHit(aWire.getWireID(), 0.1);
41 const CDCWireHit bWireHit(bWire.getWireID(), 0.1);
42 const CDCWireHit cWireHit(cWire.getWireID(), 0.1);
46 std::vector<std::array<ERightLeft, 3> > acceptableRLs = {
47 { ERightLeft::c_Right, ERightLeft::c_Right, ERightLeft::c_Right,},
48 { ERightLeft::c_Right, ERightLeft::c_Right, ERightLeft::c_Left,},
49 { ERightLeft::c_Left, ERightLeft::c_Right, ERightLeft::c_Right,},
50 { ERightLeft::c_Left, ERightLeft::c_Left, ERightLeft::c_Left,},
51 { ERightLeft::c_Left, ERightLeft::c_Left, ERightLeft::c_Right,},
52 { ERightLeft::c_Right, ERightLeft::c_Left, ERightLeft::c_Left,},
55 for (
const std::array<ERightLeft, 3>& acceptableRL : acceptableRLs) {
57 TEST_CONTEXT(
"For rl combination " <<
static_cast<int>(acceptableRL[0]) <<
", "
58 <<
static_cast<int>(acceptableRL[1]) <<
", "
59 <<
static_cast<int>(acceptableRL[2]));
60 CDCRLWireHit aRLWireHit(&aWireHit, acceptableRL[0]);
61 CDCRLWireHit bRLWireHit(&bWireHit, acceptableRL[1]);
62 CDCRLWireHit cRLWireHit(&cWireHit, acceptableRL[2]);
63 CDCFacet facet(aRLWireHit, bRLWireHit, cRLWireHit);
64 Weight weight =
filter(facet);
65 EXPECT_TRUE(not std::isnan(weight));