I have observed a problem with neutrons that first manifested itself as an infinite loop in my own custom physics list. My target was composed of a few layers of Si and SiO2. The physics I was using was essentially Bertini cascade and HP neutrons. For incident neutrons > 20 MeV, and I mean greater by even 0.00000000001, everything is fine. For incident neutrons with energy < 19.999 MeV things also seem very sensible. However, if one sets the beam to either 19.9999 MeV or 20.00000 MeV, there is an infinite loop in my simulation. This behavior can be reproduced very easily. Go to novice example N03, define silicon as a material, and change the calorimeter from lead/liquid Argon to silicon/quartz. The failure does not happen if the default materials are used. Apparently it is specific to Si or O. I have not determined which. The material quartz is already defined in the detector construction file. Now replace the example physics list with Hans-Peter's LHEP_BERT_HP class in main() in the "exampleN03.cc" file with the approprite "#include" header, compile and run. On this system, the one I have done the testing with, Mac OS X 10.3.5, Apple Developer tools 1.5, and Geant4 6.2.p01, the result using the exampleN03 code produces a segmentation fault. I have not bothered to get a student to reproduce this on Linux, since it can be demonstrated easily using the simple modification to N03 described above. The very odd thing about this, apart from the very narrow range in which the error happens, is that originally in my simulation I tried setting the max energy for the HP neutron processes below the energy value 19.999 MeV where the simulation was functional, and the problem was still present for neutrons from somewhere between 19.999 and 19.9999 MeV and the appearently hard threshold at exactly 20 MeV. I tried using the debugger to find out what was going on, but couldn't make out what was happening, becuse my main Geant4 library isn't compiled with debugging symbols on. If the problem is found to be platform dependent I can perhaps help find it if the designated hardonic- physics team member doesn't use a Mac. Thanks, Bob Weller Vanderbilt University
Hi Bob, the problem should go away, if you lower the transition energy to the neutron_hp model somewhat below 20 MeV. For all I see, it is a rounding problem in the lorenztransormations, that makes ti such that you cannot use the model too close too threshold. Many greetings, Hans-Peter.