Electron/Positron Energy Retention Issue

Geant4 Version: geant4-10-07-patch-04 (9-September-2022)
Operating System: Linux Centos 8
Compiler/Version: g++ (GCC) 8.5.0 20210514 (Red Hat 8.5.0-18)
CMake Version: 3.20.2


Hello everyone,

I have the following setup: A cubic world volume filled with G4_K (Potassium), Physics list: emstandardSS, and setEnergy: 511.0 keV. The simulation starts with shooting positrons.

When an electron (as a secondary element) is produced in an event, it does not change its position and does not lose its energy even after more than 1 million steps (see below). The same situation happens for positrons (when I kill electrons) after a few events.

Interestingly, If I just replace G4_K with another material, say G4_Si, G4_Fe, or G4_WATER, electrons or positrons lose their energies and changes their positions. Furthermore, when I switch from SS to MSC (like ‘emstandard_opt3’ or ‘emstandard_opt4’), this energy retention issue is not happening even if the world is filled with G4_K.

Can someone help me understand why G4_K combined with SS behaves this way? Is this an issue with Geant4, or might I be overlooking something in my setup?

*********************************************************************************************************
* G4Track Information:   Particle = e+,   Track ID = 1,   Parent ID = 0
*********************************************************************************************************

Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
    0        0        0        0     0.452        0        0         0     pvWorld initStep
    1 8.72e-06  8.4e-06 -4.45e-06     0.452 1.77e-06 1.29e-05  1.29e-05     pvWorld CoulombScat
    2 9.58e-05 9.32e-05 -4.9e-05     0.452        0 0.000129  0.000142     pvWorld CoulombScat
    3 0.000293 0.000278 -0.00015     0.452        0 0.000289  0.000431     pvWorld CoulombScat
    4  0.00057 0.000534 -0.000289     0.452 2.06e-05 0.000402  0.000833     pvWorld CoulombScat
    5 0.000791 0.000741  -0.0004     0.452 1.02e-05 0.000322   0.00116     pvWorld CoulombScat
.
.
.
36092    -0.26    0.362    0.629     0.167        0 8.08e-05      1.68     pvWorld CoulombScat
36093    -0.26    0.362    0.629     0.167        0 0.000503      1.69     pvWorld CoulombScat
36094   -0.259    0.362    0.629     0.167 0.000157 0.000159      1.69     pvWorld CoulombScat
36095  0.00968    0.689     0.87         0    0.167    0.487      2.17     pvWorld eIoni
36096  0.00968    0.689     0.87         0        0        0      2.17     pvWorld annihil

*********************************************************************************************************
* G4Track Information:   Particle = gamma,   Track ID = 3,   Parent ID = 1
*********************************************************************************************************

Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
    0  0.00968    0.689     0.87     0.511        0        0         0     pvWorld initStep
    1    -6.54     3.73     1.23     0.461 1.87e-05     7.23      7.23     pvWorld compt

*********************************************************************************************************
* G4Track Information:   Particle = e-,   Track ID = 4,   Parent ID = 3
*********************************************************************************************************

Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
    0    -6.54     3.73     1.23    0.0503        0        0         0     pvWorld initStep
    1    -6.54     3.73     1.23    0.0503 3.46e-17 8.11e-17  8.11e-17     pvWorld CoulombScat
    2    -6.54     3.73     1.23    0.0503 1.13e-16 2.66e-16  3.47e-16     pvWorld CoulombScat
    3    -6.54     3.73     1.23    0.0503 2.83e-17 6.65e-17  4.13e-16     pvWorld CoulombScat
    4    -6.54     3.73     1.23    0.0503 9.25e-18 2.17e-17  4.35e-16     pvWorld CoulombScat
    5    -6.54     3.73     1.23    0.0503 7.02e-17 1.65e-16     6e-16     pvWorld CoulombScat
.
.
.
1391590    -6.54     3.73     1.23    0.0503 6.49e-17 1.52e-16   4.5e-10     pvWorld CoulombScat
1391591    -6.54     3.73     1.23    0.0503 1.96e-16  4.6e-16   4.5e-10     pvWorld CoulombScat
1391592    -6.54     3.73     1.23    0.0503 5.63e-17 1.32e-16   4.5e-10     pvWorld CoulombScat
1391593    -6.54     3.73     1.23    0.0503 1.29e-16 3.02e-16   4.5e-10     pvWorld CoulombScat
1391594    -6.54     3.73     1.23    0.0503 2.19e-16 5.13e-16   4.5e-10     pvWorld CoulombScat
1391595    -6.54     3.73     1.23    0.0503 1.18e-16 2.76e-16   4.5e-10     pvWorld CoulombScat

Has anyone tested shooting an electron/positron through G4_K using single scattering (emstandardSS) as the physics list? Any idea of why the electron is not losing its energy and not moving would be appreciated.

Hello,

tracking verbose, which you show, is correct. Elastic scattering at these energies has huge cross section, tracking is performed via tiny steps. A probability of energy loss such steps is very low, so electron lost its energy far not at each step. Finally, this happens and for the 1st track in your printout we see positron annihilation at rest. This does not depend on material. To see physics in more details may be useful to run also with the default EM physics.

VI

VI

Thank you very much for your reply, in my simulation I have tried different materials and G4_K is the only one for which elastic scattering seems to cause small steps. We do not see this behavior if we switch for example to G4_Na. Furthermore we have tried EmStandard_Opt0, EmStandard_Opt3, and Em_standard_Opt4 and we do not see infinite number of steps.

The only reason that we had switched to Single Scattering physics lists is because when try to use Defualt EM Physics lists (option3 or option4 for example, which employ multiple scattering models) and look at positron range.

The resulting positron range depends on whether our medium is constructed as single uniform medium or is made of small (for example 1mm^3) adjacent cubes. Please see Difference in positron range in water

Has anybody encountered that shooting positron through G4_K using single scattering results in (infinitely) many steps that make Geant4 to run forever?