Thermal neutron capture gamma spectra give major disagreement with NNDC data base for some isotopes

This is not what I find. I run example Hadr3, 1 Mev neutron on Ni58 and the command produces no extra gamma with
/process/had/particle_hp/do_not_adjust_final_state true
I did not write the code but to my understanding G4ParticleInelasticCompFS / BaseFS only create extra photons because there is isotope decay or because G4ParticleHPFinalState::adjust_final_state() is called (you may uncomment the printings in these classes, specially the “Add secondary” ones
Did you check that you have not set environmental variable G4PHP_DO_NOT_ADJUST_FINAL_STATE at the same time?

I am not using the UI commands e.g., /process/had/particle_hp/do_not_adjust_final_state. Rather I have set the state variables in my main program, e.g.,
G4ParticleHPManager::GetInstance()->SetDoNotAdjustFinalState( true );

I thought that the two ways were equivalent, although I cannot find mention of the C++ way in any of the 11.0. manuals. However, the C++ way does indeed seem to change the parameters, according to my terminal printouts.

I will try Hadr03 to see if I get similar results to yours.

I have been running the Hadr03 example (Geant4 11.0.2) with the attached macro
Ni58_nCapture.mac.txt (1.6 KB). I am using 0.025 eV neutrons (i.e., monoenergetic, nominally thermal energy). Setting parameters use_photo_evaporation, skip_missing_isotopes, do_not_adjust_final_state, neglect_Doppler_broadening all true, I get a spectrum that contains most if not all of the NNDC energies. The relative intensities

are nowhere near those of NNDC

. There are also many “extra” gamma rays (ones that do not match NNDC energies) which are being used to force energy conservation in the capture processes (all have energy conserved).

I have not yet tried it with 1 MeV neutrons.

Other combinations of the four parameters give the same or worse results. I will write a summary of those and post it soon.

I have summarized my findings of the effects of varying HP process parameters on 58Ni thermal neutron capture gamma ray results from distribution example Hadr03. I have attached the detailed description
Summary_of_results.txt (4.4 KB). To sum up:

  1. There is good agreement between Geant4 and NNDC thermal neutron capture gamma ray energies ONLY when use_photo_evaporation is true.

  2. There is very poor agreement between Geant4 and NNDC gamma ray relative intensities for all combination of HP process parameters.

  3. Energy conservation of individual neutron capture gamma ray processes happens 100% of the time ONLY when all HP process parameters are true.

  4. ‘Fictional’ gamma rays are produced for all combinations of HP process parameters, regardless of whether energy conservation occurs or not.

  5. I do not know what the default values of the HP process parameters are, but they are not all false as stated in the documentation (p.60 11.0 Guide for Physics Lists).

Finally, my previous post showed the best spectrum that Hadr03 could produce for 58Ni(n,g). I have attached one with use_photo_evaporation and do_not_adjust_final_state false and other parameters true to show what a “bad” spectrum looks like.

1 Like

Hi John,
I used Geant4 10.07.p03 with G4NDL4.6 to simulate Gd’s thermal neutron(0.025eV) capture gamma energy spectrum. I set the parameters you mentioned above, but I still got some extra peaks compared with the IAEA database. After you upgrade the version of geant4, have you simulated the capture gamma of Gd155 or Gd 157?
Best wishes


No, I haven’t tried either Gd155 or 157 since upgrading to Geant4 11.0. I will try them, however, and get back to you.

I did a couple of quick runs using Hadr03 with Geant4 11.0.2. I am using the QGSP_BIC_HP physics list. For Gd155:

and for Gd157 (which I think is what you are showing in your post):

The Gd157 result is similar, but not identical to yours (but then I do not know exactly what your geometry, scoring, etc. is). The different physics list should not matter for 25 meV neutrons. Without doing a detailed analysis, it seems in both cases as though many spectral lines match in energy the NNDC data base, but the intensities are not even close.

Hi John,
Thank you very much for your time! The element in my simulation is G4_Gd, so my energy spectrum contains contributions from Gd155 and Gd157. And the figure with the title “database” also contains contributions from Gd155 and Gd157. So I think the results simulated with Geant4 11.0 are similar to what I got with 10.07.

Hi, I just ran G4_Gd and my spectrum is almost identical to yours.

As you said before, the gamma intensity is not the same as the database. In order to get the same intensity, can I modify the intensity of the gamma ray in the step action? For example for 3700keV, the cross-section is actually only 99b, I will kill secondary gamma rays with the energy of 3700keV in step action with a certain probability to reduce the equivalent gamma intensity. I don’t know if this is helpful.

That might solve your specific problem, but it would be onerous to generalize it. Such conditionals in the user Stepping Action would be required for each specific problematic material (with possibly many energies per material). Although I am not sure, I imagine that the additional stepping actions would slow things down too.

It would be better if the neutron capture processes and data bases were modified to better reflected reality.

Hi @John_McFee, I am quite new to Geant4 and am very much a beginner - I was wondering how you edited the Hadr03 example and corresponding macro(s) to obtain the Gd157 spectrum? I am just trying to simulate a basic gadolinium spectrum and was wondering if you could help?
I am using version 11.0.0 of Geant and ROOT 6.26/06, and the examples do run successfully on my machine. Thank you! :slight_smile:

Hi @avmc1,

I used the QGSP_BIC_HP physics list instead of the default. So in, you have to comment out line:
RegisterPhysics( new G4HadronInelasticQBBC(verb));

and uncomment line:
RegisterPhysics( new G4HadronPhysicsQGSP_BIC_HP(verb));

then recompile.

Here is the macro I used for thermal neutron capture on Gd157:
Gd157_nCapture.mac.txt (1.6 KB)

The README file in the distribution example explains how to run Hadr03 with a macro (.mac) file.

Hope it helps.

Hi @John_McFee,

This is a great help, thank you so much! All is running perfectly.

Forgive my ignorance, but I was wondering how you have made your gamma spectra above look like a spectrum. My histogram for kinetic energy of gamma rays just outputs individual points (below) - is there a way to draw this so it looks like a spectrum like yours do? This is probably a very basic question so sorry for that.


Thank you,

Hi ,

I uncomment the two lines in the .mac file (not needed if you are using the unmodified version of from the distribution):
/process/had/particle_hp/use_photo_evaporation true
/process/had/particle_hp/do_not_adjust_final_state true

I output a .ascii file with same name as the .root file (that’s what the /analysis/h1/setAscii 2 line in the macro does). I then use a separate Octave program (it should be able run under Matlab too) to plot the spectrum. I’ve attached that program as Read_Hadr03Ascii_Spectum_Plot.m.txt. To use it, remove the .txt extension, move it to the same directory as the .ascii file, gzip the .ascii file, change the path to the ascii input file in the .m program to match where it is on your computer. Then run the program under Octave.

Read_Hadr03Ascii_Spectum_Plot.m.txt (2.9 KB)

Of course, you can use any external software you wish instead.

Good luck.

you could also try linear scaling of the y-axis instead of log, because then the bars of the histogram can start from 0.

@John_McFee can you please post your result for Argon. I’m obtaining big discrepancies as reported here : Discrepancy on gammas from thermal n capture on liquid argon


Hi Luis,
I have a LibreOffice spreadsheet for 35Cl(n,gamma), 36Ar(n,gamma), 40Ar(n,gamma), 58Ni(n,gamma) comparing Geant4 simulation energy and intensity results to the NNDC data base. However, this forum does not support .ods files for uploading. Please let me know your email address and I will send it to you.

Hi @John_McFee John, you can use manzanilla+lapp_in2p3_fr, with “+”->“@” and “_” → “.”
Could you please include the exact settings for your simulation?
Thanks in advance!

I have sent you the spreadsheet and exact settings used to get the results.