In the G4NeutronInelasticXS class, the wrong physics vector is used to evaluate the upper energy bound in the IsoCrossSection(....) method - around line 167-170. In this method, the physics vector associated to the element instead of the isotope is used to derive the maximum energy limit (pv instead of pviso). If the limit is greater for the element table than the isotope one, the function will return the last entry in the table, which isn't correct. For example, the cross-section at 20 MeV is returned for n on Fe, even if the kinetic energy of the neutron is 1 GeV. I believe the problem is still present in later versions.
Dennis, please, assign this to me. The bug is already fixed in 11.1 master, will double check it. The main problem - I am not sure, to which patch the fix is integrated, will investigate. VL
Hello, the problem is fixed in the development version of Geant4. Unfortunately, the fix is not included in recent patches to 11.0 and 10.7. It is not clear when new official patches will be prepared. The impact of the problem on results should not be significant. If indeed it is important, the code with the fix may be provided privately. VI
To be more clear: I expect limited effect of this bug, because for tracking element cross section is used. Isotope cross section is used to select isotope on which interaction happens.
the fix will be propagated to patches for 10.7 and 11.0 if they will be created.