diff --git a/src/mccode_antlr/translators/c_trace.py b/src/mccode_antlr/translators/c_trace.py index 15a3eae..905fbcb 100644 --- a/src/mccode_antlr/translators/c_trace.py +++ b/src/mccode_antlr/translators/c_trace.py @@ -8,7 +8,7 @@ def _runtime_parameters(flavor: Flavor): if Flavor.MCSTAS == flavor: pars.extend(['vx', 'vy', 'vz', 't', 'sx', 'sy', 'sz', 'p', 'mcgravitation', 'mcMagnet', 'allow_backprop']) elif Flavor.MCXTRACE == flavor: - pars.extend(['kx', 'ky', 'kz', 'phi', 't', 'Ex', 'Ey', 'Ez', 'p']) + pars.extend(['kx', 'ky', 'kz', 'phi', 't', 'Ex', 'Ey', 'Ez', 'p', 'allow_backprop']) else: raise ValueError(f'Unknown flavor {flavor}') # Add the temporary particle parameters added sometime after v3.4.0 ... to the v3.4.0 tag diff --git a/tests/test_trace_allow_backprop.py b/tests/test_trace_allow_backprop.py new file mode 100644 index 0000000..842d952 --- /dev/null +++ b/tests/test_trace_allow_backprop.py @@ -0,0 +1,10 @@ +from mccode_antlr import Flavor +from mccode_antlr.translators.c_trace import def_trace_section, undef_trace_section + + +def test_allow_backprop_defined_in_trace(): + # The runtime macros (PROP_*, DISALLOW_BACKPROP) use `allow_backprop` for both + # flavors, McXtrace since McCode v3.6.9 -- see mccode-dev/mccode-antlr#118 + for flavor in (Flavor.MCSTAS, Flavor.MCXTRACE): + assert '#define allow_backprop (_particle->allow_backprop)' in def_trace_section(flavor) + assert '#undef allow_backprop' in undef_trace_section(flavor)