Question in neutron capture (Gd155(n, gamma)Gd156) reaction

Hello everyone!
I’m simulating neutron capture reaction with Gd material. The physics list is QGSP_BIC_AllHP. The data I could find is Gd156* will release several gammas with total energy about 8 MeV, which is correspond to the highest level of Gd156. However, when I do the simulation, here comes:

The total energy of gammas is far more than 8 MeV. The same situation happens with Gd157. It really confuses me. What happened here?

1 Like

What is it that you are outputting? Is it one of the example programs from the Geant4 distribution?

Assuming that the column containing 4.07,4.7,…2.17 are energies in MeV of gamma rays, these do not correspond to any thermal neutron capture gamma rays from the 155Gd(n,gamma)156Gd reaction (see Thermal Neutron Capture Gammas - Target 155Gd). Does the output correspond to a single event (i.e., one incident thermal neutron on one 155Gd nucleus)? If so, this is problematic. The Q-value for the 155Gd(n,gamma)156Gd reaction is 8.536 MeV. The energies of the capture gamma rays in a single event should sum to the Q-value (assuming all gamma rays are detected and ignoring the very small nuclear recoil). However, if you are collecting over many events, this is not the case.

In addition, there are 13 other reactions induced by thermal neutrons on 155Gd that have positive Q-values which are large enough to leave the residual nuclei in excited states which could de-excite by gamma emission. (However, I suspect that their cross sections are small with respect to the 60900 b cross section of the (n,gamma) reaction, so they may not be a factor.)


Thanks for your reply, @John_McFee .

The output is generated by the command “/tracking/verbose 2”. This output is part of a neutron’s track.

The code is written by myself.

As far as I could understand, the output shows that the gammas ( with energy of 4.07 MeV, 4.7 MeV, 0.916 MeV etc.) is the secondaries of the neutron after the process “nCapture”. The sum of these gamma’s energy is obviously greater than the Q-value. This is what confuses me.

The output is part of a neutron’s track, so it is correspond to a single event.

I upload another output of a neutron’s track, which shows the process from generation to the end of life of a neutron and all the secondaries.

Gd157(n, gamma)Gd158.txt (20.7 KB)

I believe this post “Weird Features in Gamma Spectrum for Neutron Capture on Gd” has the same question as me.

Geant4 version of mine is 10.7.2 and the neutron data base is G4NDL4.6.

I ran a simulation with a very simple geometry consisting of a 3.86cm x3.86cm cylindrical detector (cyan), 30cm x 30cm x 10cm box target (magenta) and surrounding 4m x 4m x 2m box (red) (see Figure - ignore blue box which wasn’t used).

The target was 155Gd and everything else was G4_Galactic (vacuum). I fired 10^9 nominally thermal neutrons (0.025 eV) from an isotropically emitting point source 7.5cm to the right of the front (right) face of the target. The detector was 20 cm behind (to the left of) the back face of the target. Any gamma entering the detector volume was scored in a Root TTree. A spectrum is shown in the following Figure. All gammas, then, should correspond to thermal neutron capture on 155Gd.NG4_Gd155_target_rest_vacuum_t10_d20_25meV_109_logEgamma

I have analysed the spectrum and found gamma rays with 63 distinct energies. All are less than or equal to the Q-value of the 155Gd(n,gamma)156Gd reaction and none correspond to any of the 7 energies listed in your /tracking/verbose 2 output above. Unfortunately, none of them correspond to neutron capture gamma rays in 155Gd as listed in the previously mentioned NNDC link for 155Gd(n,gamma) either. So something seems to be amiss with the 155Gd files in the G4NDL library.

As a sanity check, I repeated the run with 10^8 neutrons on a 14N target (density 2g/cm3). Everything else was the same as the 155Gd run. The gamma ray energies were essentially the same (within ~5 keV) as those from NNDC Thermal Neutron Capture Gammas - Target 14N and the average deviation in normalized intensities was -0.352 (max normalized intensity was 100). In other words, good agreement.

For reference, I am using Geant4 10.7.2 multithreaded with the neutron data base G4NDL4.6. I have the following flags set:

export AllowForHeavyElements=1

1 Like

Thanks for your time, @John_McFee .
Did you check the sum of all gamma rays’ energy in a single neutron capture event? Did it correspond to the Q-value of the 155Gd(n, gamma)156Gd reaction? My question is that it does not.
I tried to use Geant4 10.3.1 with G4NDL4.5 to compile the same code. The result shows the sum of all gamma rays’ energy in a single neutron capture event corresponds to the Q-value or is less. But the result of G4 10.3.1 with G4NDL4.6 is similar to the result of G4 10.7.2 with G4NDL4.6. I also tried G4 10.7.2 with G4NDL4.5.The result is also similar to that of G4 10.7.2 with G4NDL4.6. It seems only G4 10.3.1 with G4NDL4.5 gives the right result. I plan to replace the G4NDL with other neutron data bases ( and see what will happen.
If you have any other ideas to check this, I will appreciate you sharing them with me.
Best wishes.

I ran my previously described simulation with /tracking/verbose 2 on 155Gd (note that I am using physics list QGSP_BERT_HP in Geant4 10.7.2 with G4NDL4.6). I then examined the individual neutron capture occurrences along the tracks. For all occurrences, the capture gamma rays (i.e., for neutron capture on a a single nucleus) summed to less than or equal to the Q-value for the (n,gamma) reaction. Below is a snippet of the output for one capture occurrence on 155Gd(n,gamma)156Gd.

G4WT0 > 2 2.4 -17.7 -0.00061 0 0 0.000628 77.1 Target nCapture
G4WT1 > Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName
G4WT0 > :----- List of 2ndaries - #SpawnInStep= 14(Rest= 0,Along= 0,Post=14), #SpawnTotal= 14 ---------------
G4WT1 > 0 62.5 -69.6 -0.00857 0.297 0 0 0 Target initStep
G4WT0 > : 2.4 -17.7 -0.00061 2.76 gamma
G4WT0 > : 2.4 -17.7 -0.00061 0.753 gamma
G4WT0 > : 2.4 -17.7 -0.00061 0.7 gamma
G4WT0 > : 2.4 -17.7 -0.00061 0.653 gamma
G4WT0 > : 2.4 -17.7 -0.00061 0.614 gamma
G4WT0 > : 2.4 -17.7 -0.00061 0.533 e-
G4WT1 > 1 62.9 -70.9 -0.274 0 0.000111 1.48 1.48 Target phot
G4WT0 > : 2.4 -17.7 -0.00061 0.551 gamma
G4WT1 > :----- List of 2ndaries - #SpawnInStep= 8(Rest= 0,Along= 0,Post= 8), #SpawnTotal= 8 ---------------
G4WT0 > : 2.4 -17.7 -0.00061 0.508 gamma
G4WT1 > : 62.9 -70.9 -0.274 0.246 e-
G4WT0 > : 2.4 -17.7 -0.00061 0.401 e-
G4WT1 > : 62.9 -70.9 -0.274 0.0424 gamma
G4WT0 > : 2.4 -17.7 -0.00061 0.38 gamma
G4WT1 > : 62.9 -70.9 -0.274 0.000393 e-
G4WT0 > : 2.4 -17.7 -0.00061 0.297 gamma
G4WT1 > : 62.9 -70.9 -0.274 0.00709 gamma
G4WT0 > : 2.4 -17.7 -0.00061 0.199 gamma
G4WT1 > : 62.9 -70.9 -0.274 8.54e-05 e-
G4WT0 > : 2.4 -17.7 -0.00061 0.0387 e-
G4WT1 > : 62.9 -70.9 -0.274 0.000129 e-
G4WT0 > : 2.4 -17.7 -0.00061 8.04e-06 Gd156
G4WT1 > : 62.9 -70.9 -0.274 0.000123 e-
G4WT0 > :----------------------------------------------------------------- EndOf2ndaries Info ---------------
G4WT1 > : 62.9 -70.9 -0.274 1.88e-05 e-
G4WT0 >
G4WT1 > :----------------------------------------------------------------- EndOf2ndaries Info ---------------

Attached is a screenshot of a spreadsheet I made for a run with 50 events (each event is the emission of a thermal neutron by the source) using a 155Gd target. 16 neutron captures occurred and the gamma rays emitted for each capture are shown. You can see that for each capture, the gamma ray energies sum to less than or equal to (within a small error) the Q-value. The orange boxes correspond to gammas that are strong lines in the NNDC data base for thermal capture (see link in previous post). I did not check in depth the other gamma ray energies because there are 1009 of them listed. The gamma ray energies in @CHAO’s above post do not match any in my simulations or those in the NNDC data base.

I also ran the simulation in verbose level 2 on 14N, 58Ni, 60Ni and G4_Ni, which have much simpler level structures. All the captures for all of the nuclei yielded capture gamma rays whose energies summed to less than or equal to the Q-value for each individual neutron capture gamma ray reaction. For 14N and 60Ni, the gamma rays all corresponded to gamma energies in the NNDC data base. However, for 58Ni they did not. I will investigate the gamma ray energies from capture on 58Ni and 155Gd further.

to enforce @John_McFee results, here a macro for example Hadr03, its printout and the corresponding plot. Please, notice that in this plot, Q is computed as Ekin_out - Ekin_in

In PhysicsList, I selected QGSP_BIC_HP, but others constructors gives similar results.

Gd155.mac.txt (475 Bytes)
Gd155.out.txt (1.5 KB)

I was simulating Gd’s neutron capture gamma spectra. I was wondering whether you have some new results about Gd’s simulation. If you have time, could we communicate by email? My email address:

Hi there @John_McFee , would you kindly send me a copy of your repository to the following mail:

Thank you in advance!

~ Debodyuti

I sent a copy to your email address. Note that the code was written to run under Geant4 10.7.2. It will likely run under 11.0, but I haven’t tried it. So no guarantees.


Hey John,

Thanks a lot for sharing the repository.

~ Debodyuti

Hey John,

Thanks a lot for sharing the repository. It is showing g4root.hh not found. I guess it might be they way Geant4 11.0 handles ROOT compared to Geant4 10.7. If you have any insight it would be great.

~ Debodyuti

Start with the Geant4 11.0 ReleaseNotes. They are disturbingly long, and there is a lot of stuff where .hh files are different, or functions have been renamed or deleted, and so on. Migrating 10.7 to 11.0 is a big deal.

I am pretty sure that all the G4Analysis stuff is different.

1 Like

Mike is correct. A lot changed from 10.7 to 11.0. I didn’t have a need to migrate that particular code to 11.0, so I haven’t yet. But I gave it a quick look. Try the following:

  1. get rid of the B4aAnalysis.hh file in the /include folder.
  2. Remove or comment out the line #include “B4Analysis.hh” in the and files in the /src folder
  3. In, change G4String fileName = “NG4”; to G4String fileName = “NG4.root”;

That might do it.

1 Like