Problem 1804

Summary: Wrong kinematics calculation in class G4IonCoulombScatteringModel & eventually problem with cross-section calculation
Product: Geant4 Reporter: Christian Stahl <stahl>
Component: processes/electromagneticAssignee: Vladimir.Ivantchenko
Status: RESOLVED WONTFIX    
Severity: normal    
Priority: P5    
Version: 10.0   
Hardware: All   
OS: All   
Attachments: example demonstrating the problems + patch for the kinematics calculation

Description Christian Stahl 2015-12-10 16:57:25 CET
Kinematics calculation in the function SampleSecondaries(..) of the class G4IonCoulombScatteringModel is wrong.

This results in the calculated kinetic energies of scattered particles being negative sometimes. In these cases, the kinetic energies are set to zero, i.e. the particles are fully stopped.

In the attachment, I provide a brief demonstration of this problem based on the example TestEm5. The example case is the bombardment of a thick Gold foil by 5 MeV Carbon ions.
Run the code with the macro 'testCoulombScat_original.mac'. The histograms in output root file demonstrate the problem:

- Histogram 'ElossEkin' shows the energy deposited in a single Coulomb-Scattering event as function of the initial ion kinetic energy. Full energy deposition (events on the diagonal line) occurs frequently.
- Histogram 'EfinalAngle' shows the kinetic energy of scattered ions as function of the scattering angle. Initial ion energies from 4.8 - 5 MeV are chosen. The correct kinematics can be calculated e.g. from the calculator available at http://skisickness.com/2010/04/21/ 
- Histogram 'EnergyTime' shows the evolution of the ion kinetic energy as function of time the ions travel in the Gold foil. The sudden stopping of the particles is visible.

In the file src/G4IonCoulombScatteringModelDEBUG.cc I corrected the kinematics calculation. Run the simulation with the macro 'testCoulombScat_debug.mac' for using the correct kinematics. Run with macro 'testCoulombScat_msc.mac' to get the 'EnergyTime' histogram for using msc and G4NuclearStopping instead of Coulomb-Scattering.

Additionally, I have some doubts about the calculation of cross-sections in the class G4IonCoulombScatteringModel. Projection of the histogram 'ElossEkin' on the x-axis shows the distribution of the number of Coulomb-Scattering events as function of ion kinetic energy. An 'oscillation' and a strong rise towards the inital ion energy is visible and doesn't look plausible. This behavior persists also with the correct kinematics calculation.

Another point is that I don't see that the correction for heavy ions is ever used. It is activated by the variable heavycorr of class G4IonCoulombScatteringModel. It is initialized as zero (heavy ion corrections deactivated) and never touched.


Best regards,


Christian
Comment 1 Christian Stahl 2015-12-10 16:59:58 CET
Created attachment 369 [details]
example demonstrating the problems + patch for the kinematics calculation
Comment 2 Vladimir.Ivantchenko 2015-12-10 19:20:17 CET
Hello,

this class have been verified and fixed recently. Can you, please,  try out a new Geant4 version 10.2? We do not have plans to add extra patch to 10.0. We still may do this for 10.1. If you cannot switch to newer Geant4 version a solution may be to backport updated class privately.

VI
Comment 3 Vladimir.Ivantchenko 2015-12-11 15:29:06 CET
Hello,

because we do not plan to patch 10.0 anymore we cannot address this problem in 10.0. Please, use 10.2, likely the problem exist in 10.1 and it may be fixed in the next patch.

VI