8
8
#pragma once
9
9
10
10
// Project include(s)
11
+ #include " detray/definitions/detail/algebra.hpp"
11
12
#include " detray/definitions/detail/indexing.hpp"
12
13
#include " detray/definitions/detail/qualifiers.hpp"
13
14
#include " detray/materials/detail/concepts.hpp"
14
15
#include " detray/materials/detail/material_accessor.hpp"
15
16
#include " detray/materials/material.hpp"
16
- #include " detray/propagator/detail/jacobian_engine.hpp"
17
- #include " detray/tracks/detail/transform_track_parameters.hpp"
18
- #include " detray/tracks/tracks.hpp"
19
17
20
18
// System include(s)
21
19
#include < limits>
@@ -33,9 +31,6 @@ struct surface_kernels {
33
31
using point3_type = dpoint3D<algebra_t >;
34
32
using vector3_type = dvector3D<algebra_t >;
35
33
using transform3_type = dtransform3D<algebra_t >;
36
- using bound_param_vector_type = bound_parameters_vector<algebra_t >;
37
- using free_param_vector_type = free_parameters_vector<algebra_t >;
38
- using free_matrix_type = free_matrix<algebra_t >;
39
34
40
35
// / A functor to retrieve the masks shape name
41
36
struct get_shape_name {
@@ -211,111 +206,6 @@ struct surface_kernels {
211
206
}
212
207
};
213
208
214
- // / A functor to get from a free to a bound vector
215
- struct free_to_bound_vector {
216
-
217
- // Visitor to the detector mask store that is called on the mask
218
- // collection that contains the mask (shape) type of the surface
219
- template <typename mask_group_t , typename index_t >
220
- DETRAY_HOST_DEVICE inline bound_param_vector_type operator ()(
221
- const mask_group_t & /* mask_group*/ , const index_t & /* index*/ ,
222
- const transform3_type& trf3,
223
- const free_param_vector_type& free_vec) const {
224
-
225
- using frame_t = typename mask_group_t ::value_type::local_frame;
226
-
227
- return detail::free_to_bound_vector<frame_t >(trf3, free_vec);
228
- }
229
- };
230
-
231
- // / A functor to get from a bound to a free vector
232
- struct bound_to_free_vector {
233
-
234
- template <typename mask_group_t , typename index_t >
235
- DETRAY_HOST_DEVICE inline free_param_vector_type operator ()(
236
- const mask_group_t & mask_group, const index_t & index,
237
- const transform3_type& trf3,
238
- const bound_param_vector_type& bound_vec) const {
239
-
240
- return detail::bound_to_free_vector (trf3, mask_group[index ],
241
- bound_vec);
242
- }
243
- };
244
-
245
- // / A functor to get the free-to-bound Jacobian
246
- struct free_to_bound_jacobian {
247
-
248
- template <typename mask_group_t , typename index_t >
249
- DETRAY_HOST_DEVICE inline auto operator ()(
250
- const mask_group_t & /* mask_group*/ , const index_t & /* index*/ ,
251
- const transform3_type& trf3,
252
- const free_param_vector_type& free_vec) const {
253
-
254
- using frame_t = typename mask_group_t ::value_type::local_frame;
255
-
256
- return detail::jacobian_engine<frame_t >::free_to_bound_jacobian (
257
- trf3, free_vec);
258
- }
259
- };
260
-
261
- // / A functor to get the bound-to-free Jacobian
262
- struct bound_to_free_jacobian {
263
-
264
- template <typename mask_group_t , typename index_t >
265
- DETRAY_HOST_DEVICE inline auto operator ()(
266
- const mask_group_t & mask_group, const index_t & index,
267
- const transform3_type& trf3,
268
- const bound_param_vector_type& bound_vec) const {
269
-
270
- using frame_t = typename mask_group_t ::value_type::local_frame;
271
-
272
- return detail::jacobian_engine<frame_t >::bound_to_free_jacobian (
273
- trf3, mask_group[index ], bound_vec);
274
- }
275
- };
276
-
277
- // / A functor to get the path correction
278
- struct path_correction {
279
-
280
- template <typename mask_group_t , typename index_t , typename scalar_t >
281
- DETRAY_HOST_DEVICE inline free_matrix_type operator ()(
282
- const mask_group_t & /* mask_group*/ , const index_t & /* index*/ ,
283
- const transform3_type& trf3, const vector3_type& pos,
284
- const vector3_type& dir, const vector3_type& dtds,
285
- const scalar_t dqopds) const {
286
-
287
- using frame_t = typename mask_group_t ::value_type::local_frame;
288
-
289
- return detail::jacobian_engine<frame_t >::path_correction (
290
- pos, dir, dtds, dqopds, trf3);
291
- }
292
- };
293
-
294
- // / A functor to get the local min bounds.
295
- struct local_min_bounds {
296
-
297
- template <typename mask_group_t , typename index_t , typename scalar_t >
298
- DETRAY_HOST_DEVICE inline auto operator ()(
299
- const mask_group_t & mask_group, const index_t & index,
300
- const scalar_t env =
301
- std::numeric_limits<scalar_t >::epsilon()) const {
302
-
303
- return mask_group[index ].local_min_bounds (env);
304
- }
305
- };
306
-
307
- // / A functor to get the minimum distance to any surface boundary.
308
- struct min_dist_to_boundary {
309
-
310
- template <typename mask_group_t , typename index_t , typename point_t >
311
- DETRAY_HOST_DEVICE inline auto operator ()(
312
- const mask_group_t & mask_group, const index_t & index,
313
- const point_t & loc_p) const {
314
-
315
- return mask_group[index ].min_dist_to_boundary (loc_p);
316
- }
317
- };
318
-
319
209
// / A functor to get the vertices in local coordinates.
320
210
struct local_vertices {
321
211
0 commit comments