File indexing completed on 2025-09-19 08:49:41
0001
0002
0003
0004
0005
0006
0007 #pragma once
0008
0009 #include "celeritas/field/CartMapField.hh" // IWYU pragma: associated
0010 #include "celeritas/field/CartMapFieldData.hh" // IWYU pragma: associated
0011 #include "celeritas/field/DormandPrinceIntegrator.hh"
0012 #include "celeritas/field/MakeMagFieldPropagator.hh"
0013 #include "celeritas/global/CoreTrackView.hh"
0014
0015 namespace celeritas
0016 {
0017 namespace detail
0018 {
0019
0020
0021
0022
0023 struct CartMapFieldPropagatorFactory
0024 {
0025 CELER_FUNCTION decltype(auto) operator()(CoreTrackView const& track) const
0026 {
0027 return make_mag_field_propagator<DormandPrinceIntegrator>(
0028 CartMapField{field},
0029 field.options,
0030 track.particle(),
0031 track.geometry());
0032 }
0033
0034 static CELER_CONSTEXPR_FUNCTION bool tracks_can_loop() { return true; }
0035
0036
0037
0038 NativeCRef<CartMapFieldParamsData> field;
0039 };
0040
0041
0042 }
0043 }