Weird Features in Gamma Spectrum for Neutron Capture on Gd

Hi all,

In upgrading from Geant4 10.3.p01 to 10.3.p02, I noticed a change in the spectrum of gamma rays produced by neutron capture on gadolinium. The spectrum of individual gamma ray energies appears to be shifted to higher energies and the total gamma ray energy has a long tail above the Q-value. Plots demonstrating both of these effects are attached.

Both 10.3.p01 and 10.3.p02 are using the G4NDL 4.5 data library. I have checked this behavior using 10.3.p03 and 10.5 as well and have confirmed that both produce results similar to 10.3.p02.

Below I show a print out of the processes registered to neutrons for both 10.3.p01 and 10.3.p02.

It’s unclear what’s caused this change. I checked the patch notes, but didn’t see anything that seemed like it would explain this behavior.

Any guidance on how to proceed would be appreciated. For now, I am sticking to 10.3.p01 because the new behavior seems like a bug.

                           Hadronic Processes for neutron

  Process: hadElastic
        Model:             hElasticCHIPS: 19.5 MeV ---> 100 TeV
        Model:          NeutronHPElastic: 4 eV  ---> 20 MeV
        Model: NeutronHPThermalScattering: 0 eV  ---> 4 eV 
     Cr_sctns: NeutronHPThermalScatteringData: 0 eV  ---> 4 eV 
     Cr_sctns:        NeutronHPElasticXS: 0 eV  ---> 20 MeV
     Cr_sctns:        G4NeutronElasticXS: 0 eV  ---> 100 TeV
     Cr_sctns:            GheishaElastic: 0 eV  ---> 100 TeV

  Process: neutronInelastic
        Model:                      FTFP: 4 GeV ---> 100 TeV
        Model:            BertiniCascade: 19.9 MeV ---> 5 GeV
        Model:        NeutronHPInelastic: 0 eV  ---> 20 MeV
     Cr_sctns:      NeutronHPInelasticXS: 0 eV  ---> 20 MeV
     Cr_sctns: JENDLHEInelasticCrossSection: 0 eV  ---> 100 TeV
     Cr_sctns:       Barashenkov-Glauber: 0 eV  ---> 100 TeV
     Cr_sctns:      NeutronHPInelasticXS: 0 eV  ---> 20 MeV
     Cr_sctns:       Barashenkov-Glauber: 0 eV  ---> 100 TeV
     Cr_sctns:          GheishaInelastic: 0 eV  ---> 100 TeV

  Process: nCapture
        Model:          NeutronHPCapture: 0 eV  ---> 20 MeV
        Model:               nRadCapture: 19.9 MeV ---> 100 TeV
     Cr_sctns:        NeutronHPCaptureXS: 0 eV  ---> 20 MeV
     Cr_sctns:        G4NeutronCaptureXS: 0 eV  ---> 100 TeV
     Cr_sctns:        NeutronHPCaptureXS: 0 eV  ---> 20 MeV
     Cr_sctns:          GheishaCaptureXS: 0 eV  ---> 100 TeV

  Process: nFission
        Model:          NeutronHPFission: 0 eV  ---> 20 MeV
        Model:                G4LFission: 19.9 MeV ---> 2.88022e+295 J  
     Cr_sctns:        NeutronHPFissionXS: 0 eV  ---> 20 MeV
     Cr_sctns:          GheishaFissionXS: 0 eV  ---> 100 TeV


individualGammaEnergy.pdf (14.9 KB) totalGammaEnergy.pdf (15.4 KB)

Hi jrjordan,

I can confirm that spectra for thermal neutrons on Gd in Geant4 have changed dramatically, but in my case it was between version 10.3.2 and 10.4.0. I compared the simulation results to the measurements in In Geant4 10.3.2 I had to enable G4NEUTRONHP_USE_ONLY_PHOTONEVAPORATION=1 to get the reference spectrum from Geant4, but in 10.4.0+ it is impossible to get the reference spectrum even with that option enabled.

The simulation setup has a Si detector with a thin Gd slab embedded inside, and I shoot 25 meV neutrons onto the target. I attached plots for versions 10.3.2, 10.4.0 and 10.6.0, both with and without ONLY_PHOTONEVAPORATION set to 1. I also attached the reference figure from the publication mentioned above. As can be seen, only 10.3.2 is able to reproduce the measurement, in this case the IC e- lines. In the newer versions the lines have either vanished or are basically monoenergetic.

The code for the simulations can be found at

Is this a bug? Have options changed from 10.3.2 to 10.4.0 which have to be enabled/disabled which might cause this behaviour?

EDIT: I have not verified it, but a colleague told me that 1.4.0 beta 1 is still fine as well.


silicon_3.2.pdf (12.6 KB)
silicon_phot_3.2.pdf (13.8 KB)
silicon_4.0.pdf (12.6 KB)
silicon_phot_4.0.pdf (12.4 KB)
silicon_6.0.pdf (12.3 KB)
silicon_phot_6.0.pdf (12.6 KB)

Hi @kohlrabi,

I’m wondering if you where you able to fix the issue with internal conversion. I would like to simulate the detection of these electrons after Gd thermal neutron capture, but I am unable to generate them.

I tried your code with geant4 10.7.p02 and played around with the “SetUseOnlyPhotoEvaporation()” of the particleHP module, but it was impossible for me to obtain the spectrum that you show in figure silicon_phot_3.2.pdf.


Hi @jrjordan ,
It seems that I met the same problem.
Have you figured this out?