59 std::default_random_engine*
rng =
nullptr;
73 template <
typename propagator_state_t,
typename stepper_t,
78 using namespace Acts::UnitLiterals;
81 if (not navigator.currentSurface(state.navigation)) {
87 if (not geoId.sensitive()) {
88 ACTS_VERBOSE(
"Create no measurements on non-sensitive surface " << geoId);
94 ACTS_VERBOSE(
"No resolution configured for sensitive surface " << geoId);
102 .globalToLocal(state.geoContext, stepper.position(state.stepping),
103 stepper.direction(state.stepping))
109 const auto& direction = stepper.position(state.stepping);
116 std::normal_distribution<double> normalDist(0., 1.);
120 Vector2 stddev(resolution.stddev[0], resolution.stddev[1]);
123 if (resolution.type == MeasurementType::eLoc0) {
124 double val =
loc[0] + stddev[0] * normalDist(*
rng);
130 }
else if (resolution.type == MeasurementType::eLoc1) {
133 double val =
loc[1] + stddev[0] * normalDist(*
rng);
139 }
else if (resolution.type == MeasurementType::eLoc01) {
152 template <
typename propagator_t,
typename track_parameters_t>
156 const track_parameters_t& trackParameters,
158 std::default_random_engine&
rng,
160 using Actions = Acts::ActionList<MeasurementsCreator>;
161 using Aborters = Acts::AbortList<Acts::EndOfWorldReached>;
171 auto result = propagator.propagate(trackParameters, options).value();
172 return std::move(result.template get<Measurements>());