Problem 955

Summary: Energy of prompt photon from G4NeutronHPCaptureFS is higher than that in reality
Product: Geant4 Reporter: Jing Liu <jingliu>
Component: processes/hadronic/models/neutron_hpAssignee: tkoi
Status: RESOLVED INVALID    
Severity: major CC: jingliu
Priority: P5    
Version: 8.3   
Hardware: All   
OS: All   
Attachments: showing the peak position shift in the energy spectrum

Description Jing Liu 2007-07-08 19:57:23 CEST
Created attachment 3 [details]
showing the peak position shift in the energy spectrum

Hi,

I am using Geant4.8.3 to simulate the neutron interactions with germanium detectors. The energy of neutron from the source is smaller than 20 MeV. So I am using the high precise neutron process in my simulation.

In the experimental setup, the neutron source is put in a big paraffin collimator. From the energy spectrum recorded by the germanium detector, I observed a gamma line with energy of 2223.0 keV (the statistic error is very small), which is from the neutron capture process: n + H -> D + gamma. However, the same gamma line in the simulation has the energy of 2224.6 keV.

In order to understand the discrepancy, I looked into the codes of the class "G4NeutronHPCaptureFS", I found the following code:

thePhotons = theFinalStatePhotons.GetPhotons(eKinetic);

which, I think, tries to set the final state photon energy based on the neutron energy and the Geant4 neutron data sets file:

G4NDL3.10/Capture/FS/1_1_Hydrogen (This file contains the energy of the excitation level of D, that is, 2224.6 keV)

My guess is that the "GetPhotons" function reads in the energy of the excitation level of D, but somehow does not calculate the energy of the final state photon accordingly, which should be a little smaller. In order to check that, I added the following tracing codes right after the above codes:

 for(i=0; i<thePhotons->size(); i++)
   G4cout<<"Egtot = " << thePhotons->operator[](i)->GetTotalEnergy()<<G4endl;

It gave the value of 2224.6 keV. To further test it, I changed the values in the file 1_1_Hydrogen to 2223.0 keV, and the tracing codes gave me 2223.0 keV. Seems my guess is true.

Is this a real Geant4 bug or I misunderstand something?
Comment 1 tkoi 2007-07-10 01:03:29 CEST
Thank you for reporting.
The value of "2224.6keV" most likely come from JEF 3.0 or JENDL 3.3 libraries.
ENDF VI and JENDL 3.1 use "2223.0keV" for the same physics value.
(And ENDF VII has no data for this value.)

So that this is not a bug in Geant4.

Tatsumi
Comment 2 Jing Liu 2007-07-11 17:44:03 CEST
(In reply to comment #1)
> Thank you for reporting.
> The value of "2224.6keV" most likely come from JEF 3.0 or JENDL 3.3 libraries.
> ENDF VI and JENDL 3.1 use "2223.0keV" for the same physics value.
> (And ENDF VII has no data for this value.)

Hi, Tatsumi,

Thank you very much for your quick reply!

I am not sure which library is used to set this value. But I am sure that Geant4 get this value from G4NDL3.10/Capture/FS/1_1_Hydrogen. (Please refer to my test described in my report). By comparing all the files inside this directory, G4NDL3.10/Capture/FS/, to the online ENSDF (http://www.nndc.bnl.gov/ensdf/), I am also sure that the files inside G4NDL3.10/Capture/FS/ contain the energies of the excited nuclear levels instead of the energies of the emitted photons. Take another file in G4NDL3.10/Capture/FS/ instead of 1_1_Hydrogen as an example:

1_2_Hydrogen:

           1  1.99680
           1
           2 0.625733E+07           2
           1
           2           2
 0.100000E-04  1.00000     0.200000E+08  1.00000
           1

The value 0.625733E+07 (eV, I guess) is the energy of the excited 3H level. (Please refer to http://www.nndc.bnl.gov/useroutput/AR_78986_1.html) The energy of the photon emitted from the de-excitation of 3H is 6250 keV, which is 7 keV smaller than the energy of the excited 3H level.

Since Geant4 reads in the energy of the excited nuclear levels instead of the energy of the emitted photon, it must calculate the energy of the emitted photon by itself. From the results of my tracing codes (as described in my report), one can see that this calculation is not done or at least not done properly in Geant4.8.3. So I still think this is a Geant4 bug.

Another possibility is that the files in G4NDL3.10/Capture/FS/ should contain the energies of the emitted photons instead of the energies of the nuclear levels. If this is the case, then of course Geant4 does not need to do the calculation by itself. Is this what you mean?

Cheers, Jing
Comment 3 tkoi 2007-07-13 03:55:10 CEST
Hi,
There are neutron data libaries which have 2,224.6 keV (JENDL3.3 and JEF 3.0) and 2,223.0 keV(ENDF VI and JEF3.1)for the same value(In ENDF MAT125 MT102 MF12 EGk)(ESk is used for energy of the level and all above libraries has 0 for this value).
If we created the file "Capture/FS/1_1_Hydrogen" from ENDF VI or JEF3.1 then the data should become 2,223keV.  So that I mentioned this particular difference is not a Geant4 bug.

Please read the header part data of ENDF VI or JEF3.1 for 1H.
They clearly mentioned that
"The energy of the photon from neutron capture (MT=102) in File 12 has been updated to 2.2233 MeV."