@@ -34,6 +34,7 @@ struct propagator {
34
34
using navigator_type = navigator_t ;
35
35
using intersection_type = typename navigator_type::intersection_type;
36
36
using detector_type = typename navigator_type::detector_type;
37
+ using context_type = typename detector_type::geometry_context;
37
38
using actor_chain_type = actor_chain_t ;
38
39
using algebra_type = typename stepper_t ::algebra_type;
39
40
using scalar_type = dscalar<algebra_type>;
@@ -60,6 +61,7 @@ struct propagator {
60
61
struct state {
61
62
62
63
using detector_type = typename navigator_t ::detector_type;
64
+ using context_type = typename detector_type::geometry_context;
63
65
using navigator_state_type = typename navigator_t ::state;
64
66
using actor_chain_type = actor_chain_t ;
65
67
using scalar_type = typename navigator_t ::scalar_type;
@@ -101,8 +103,9 @@ struct propagator {
101
103
template <typename field_t >
102
104
DETRAY_HOST_DEVICE state (const bound_track_parameters_type ¶m,
103
105
const field_t &magnetic_field,
104
- const detector_type &det)
105
- : _stepping(param, magnetic_field, det), _navigation(det) {}
106
+ const detector_type &det,
107
+ const context_type &ctx = {})
108
+ : _stepping(param, magnetic_field, det, ctx), _navigation(det) {}
106
109
107
110
// / Set the particle hypothesis
108
111
DETRAY_HOST_DEVICE
@@ -135,7 +138,7 @@ struct propagator {
135
138
136
139
// Initialize the navigation
137
140
propagation._heartbeat =
138
- m_navigator.init (propagation, m_cfg.navigation );
141
+ m_navigator.init (propagation, m_cfg.navigation , m_cfg. context );
139
142
140
143
// Run all registered actors/aborters after init
141
144
run_actors (actor_state_refs, propagation);
0 commit comments