I have encountered a strange behavior using G4NeutronHPThermalScattering: after scattering, neutron momenta mostly stay in the same plane as if randomization is not performed in Phi direction.
I have prepared a simple demonstrator at https://github.com/andrmor/TSmin
- The world is made of G4_POLYETHYLENE (or TS_Aluminium_Metal, see DetectorConstruction)
- Neutron physics is set using a QGSP_BIC_HP physics list and TS is activated using the approach described in the Hadr04 example
- A given number of neutrons is generated at (0,0,0) with (1,0,0) direction and a fixed energy
- The code reports the momentum direction after the first neutron interaction and kills the neutron
- At the end the mean free path is reported
If the neutron energy is set above 4 eV, everything works as expected in terms of scattering direction and MFP.
When energy is below 4 eV (TS model range), the MFP is still realistic, but the momentum direction after scatter lays in the Z = 0 plane with just a few exceptions
When neutron killing is disabled, the result show that the direction mostly is kept to the same plane even after consequent scatterings.
The tests were performed with the newest Geant4 version (10.6.2) at Ubuntu 18.04
I have created a bug report:
Note that this problem was already reported in 2016
but was closed without a check due to old version of Geant4 used by the bug reporter.
I stumbled upon the same problem.
Going from 10.5 to 10.6, the random rotation around the z-axis was removed in /source/processes/hadronic/processes/src/G4HadronElasticProcess.cc (i.e. “outdir.rotate(phi, it);” and “pdir.rotate(phi, it);” were removed prior to applying “rotateUz(indir)”). For a temporary fix it is sufficient to put these rotations back into the code.
we arrived by chance to this topic because, when simulating 3 meV neutrons scattering through a GEM model (just made of materials like copper and capton, thus very “standard” materials, we encountered the same problem. We profited of the suggestions here proposed and implemented the proposed patch (Attachment #659 for problem #2290) into the G4 10.7-patch3 version used.
However, the same problem seems to be still present: sxcattered neutrons tend to accumulate along the (X,Z) plane (in our case, the primary neutrons are in the (0.,0.,1.) direction).
The same appears also for 30 meV neutrons but slightly reduced, and it is not visible for 200 meV, but it is possible that it is just a statistical effect.
Our main concern is: even if the directions of the scattered neutrons is unrealistic, does this have any effect on the NUMBER of scattered neutrons? For our purposes, in fact, we need to simulate/estimate the number of neutrons that are removed from the beam and scattered away in WHATEVER direction.
From what we understand, the number of scattered neutrons should not be affected by the previous effect, but we would be happy to have the confirmation by more experienced users.
Even if this topic is quite old, I hope that someone can help us.