20 Test::CubicBVHTrackingGeometry
grid(
NBOXES, 1000, 5);
28 bdata::distribution = std::uniform_real_distribution<>(-5,
32 std::uniform_real_distribution<>(-M_PI, M_PI))) ^
35 std::uniform_real_distribution<>(-100, 100))) ^
38 std::uniform_real_distribution<>(-100, 100))) ^
41 std::uniform_real_distribution<>(-100, 100))) ^
44 using namespace Acts::UnitLiterals;
48 double theta = 2 * std::atan(std::exp(-
eta));
50 dir << std::cos(
phi), std::sin(
phi), 1. / std::tan(
theta);
55 std::vector<SurfaceIntersection> hits;
56 for (
const auto& vol :
volumes) {
57 const auto& absVol =
dynamic_cast<const AbstractVolume&
>(*vol);
58 auto bndSurfaces = absVol.boundarySurfaces();
60 for (
const auto& bndSrf : bndSurfaces) {
61 const auto& srf = bndSrf->surfaceRepresentation();
62 auto srmi = srf.intersect(
tgContext, ray.origin(), ray.dir(),
true);
63 for (
const auto& sri : srmi.split()) {
74 std::vector<const Surface*> expHits;
75 expHits.reserve(hits.size());
76 for (
const auto& hit : hits) {
77 expHits.push_back(hit.object());
82 using Stepper = StraightLineStepper;
89 using ActionList = Acts::ActionList<SteppingLogger>;
90 using AbortConditions = Acts::AbortList<>;
103 const auto result = propagator.propagate(startPar, options).value();
106 std::vector<const Surface*> actHits;
107 auto steppingResults =
108 result.template get<SteppingLogger::result_type>().
steps;
109 for (
const auto&
step : steppingResults) {
114 auto sensitiveID =
step.surface->geometryId().sensitive();
115 if (sensitiveID != 0) {
116 actHits.push_back(
step.surface.get());
120 BOOST_CHECK_EQUAL(expHits.size(), actHits.size());
121 for (
size_t i = 0;
i < expHits.size();
i++) {
125 BOOST_CHECK_EQUAL(exp, act);
126 BOOST_CHECK_EQUAL(exp->geometryId(), act->geometryId());