Problem 1666

Summary: Energy Non-Convservation in nCapture
Product: Geant4 Reporter: Eric Stevens <eds7eb>
Component: processes/hadronic/models/neutron_hpAssignee: tkoi
Status: RESOLVED INVALID    
Severity: major    
Priority: P5    
Version: 9.6   
Hardware: All   
OS: Linux   
Attachments: Energy and Momentum Non-Conservation Log File
Contains Initial Momentum and Energy Information for Secondaries from nCapture in Event 938

Description Eric Stevens 2014-08-22 18:37:59 CEST
Dear Sir/Ma'am,

I have found that Geant4.10.00.p02 and Geant4.9.6.p02 both release too much energy in an nCapture event.  I am using the QGSP_BERT_HP physics list that comes with the installation.  The issue does not occur in every event, but it appears to be in approximately half.  (I can acquire more firm numbers if it will help develop a solution.)  In my case, I am generating neutrons of 5 meV in a block of Aluminium (pure aluminium) with half lengths of 2m, 1m, and 1m.

The aluminium declaration is as follows:
  new G4Material("Aluminium", z=13, a=26.98*g/mole, density= 2.700*g/cm3);

For easy reference, I have used the NNDC Q-Value calculator to confirm that the Q-value for n(27Al,28Al)gamma is 7.7251 MeV.  After some quick calculations, I found that momentum is also not being conserved.  The difference in momenta is on the order of 20 MeV/c.

Please let me know if you would like the program itself or the source code.  Although the log file was generated by simply running the program with a macro (/run/initialize \n /run/beamOn 1000 \n /exit) and redirecting the output to this file.

Below is a relevant snapshot of the attached TestG4EPConservation.txt log file:

 **PostStepDoIt (after all invocations):
    ++List of invoked processes 
      1) Transportation
      2) nCapture (Forced)

    ++G4Step Information 
      Address of G4Track    : 0xd14b4e0
      Step Length (mm)      : 60.95888202819931
      Energy Deposit (MeV)  : 0
      -----------------------------------------------------------------------
        StepPoint Information               PreStep            PostStep
      -----------------------------------------------------------------------
         Position - x (mm)   :    121.3379881099838    105.095395488929
         Position - y (mm)   :    123.0050222654553   64.84044804696626
         Position - z (mm)   :   -158.4989833719286  -166.8083629550416
         Global Time (ns)    :    28711798.23567392   28754829.63515642
         Local Time (ns)     :    289929.2715472825   332960.6710297865
         Proper Time (ns)    :    289929.2715457158   332960.6710277393
         Momentum Direct - x :  -0.2664516159194176 -0.2664516159194176
         Momentum Direct - y :  -0.9541607766294395 -0.9541607766294395
         Momentum Direct - z :  -0.1363112200658323 -0.1363112200658323
         Momentum - x (MeV/c): -0.001182976657507524                  -0
         Momentum - y (MeV/c): -0.00423622848886472                  -0
         Momentum - z (MeV/c): -0.0006051867651011663                  -0
         Total Energy (MeV)  :    939.5653600104896   939.5653600000001
         Kinetic Energy (MeV): 1.048959308302955e-08                   0
         Velocity (mm/ns)    : 0.001416613978659572                   0
         Volume Name         :   GammaAluminiumTest  GammaAluminiumTest
         Safety (mm)         :    717.4429635012905    780.542134599872
         Polarization - x    :                    0                   0
         Polarization - y    :                   -1                  -1
         Polarization - Z    :                    0                   0
         Weight              :                    1                   1
         Step Status         :        PostStep Proc       PostStep Proc
         Process defined Step:           hadElastic            nCapture
      -----------------------------------------------------------------------

    ++List of secondaries generated (x,y,z,kE,t,PID):  No. of secodaries = 7
      [Note]Secondaries from AlongStepDoIt included.
        105.095   64.8404  -166.808     6.317 2.87548e+07              gamma
        105.095   64.8404  -166.808     5.861 2.87548e+07              gamma
        105.095   64.8404  -166.808     4.691 2.87548e+07              gamma
        105.095   64.8404  -166.808     4.261 2.87548e+07              gamma
        105.095   64.8404  -166.808      2.96 2.87548e+07              gamma
        105.095   64.8404  -166.808     0.031 2.87548e+07              gamma
        105.095   64.8404  -166.808 0.00301233 2.87548e+07          Al28[0.0]


This problem may be related to Problem 1640 and Problem 1249, although I do not believe it is similar enough to be considered a duplicate.

Thank you and please let me know if there is anything else that will assist you in solving this problem.

Eric Stevens
Comment 1 Eric Stevens 2014-08-22 18:49:43 CEST
Created attachment 278 [details]
Energy and Momentum Non-Conservation Log File

The log file was around 2.9 MB, so I had to zip it to upload it.  Most of this file is unnecessary (I think), but I have provided it for completeness and reference.  The other attached file should contain all of the necessary information.

You will notice a few extra numbers and lines in this log file where I tracked the secondaries created.  I implemented this in UserSteppingAction.  When it noticed an issue, it called 'G4cout << "Unphysical Aluminium: [Total energy of gammas created by this nCapture]" << G4endl;'.  The unlabeled numbers at the end of each event are the total energy of gammas created by nCapture in this event, which is always shown as it a part of EndOfEventAction.
Comment 2 Eric Stevens 2014-08-22 18:51:09 CEST
Created attachment 279 [details]
Contains Initial Momentum and Energy Information for Secondaries from nCapture in Event 938
Comment 3 tkoi 2014-08-25 02:35:29 CEST
Hi Eric

This is not a bug but feature. 

NeutronHP package does not grantee energy and conservation beyond 2 body reaction. 

You may try setting an environment variable of 
“G4NEUTRONHP_USE_ONLY_PHOTONEVAPORATION”
and will have better conservation in capture reaction. 
(But reproduce of experimental data may harm by the flag. 

Tatsumi