File indexing completed on 2025-02-22 10:31:22
0001
0002
0003
0004
0005
0006
0007
0008 #pragma once
0009
0010 #include "celeritas/field/DormandPrinceStepper.hh"
0011 #include "celeritas/field/MakeMagFieldPropagator.hh"
0012 #include "celeritas/field/RZMapField.hh" // IWYU pragma: associated
0013 #include "celeritas/field/RZMapFieldData.hh" // IWYU pragma: associated
0014
0015 namespace celeritas
0016 {
0017 namespace detail
0018 {
0019
0020
0021
0022
0023 struct RZMapFieldPropagatorFactory
0024 {
0025 CELER_FUNCTION decltype(auto) operator()(CoreTrackView const& track) const
0026 {
0027 return make_mag_field_propagator<DormandPrinceStepper>(
0028 RZMapField{field},
0029 field.options,
0030 track.make_particle_view(),
0031 track.make_geo_view());
0032 }
0033
0034 static CELER_CONSTEXPR_FUNCTION bool tracks_can_loop() { return true; }
0035
0036
0037
0038 NativeCRef<RZMapFieldParamsData> field;
0039 };
0040
0041
0042 }
0043 }