Multiple scattering is always the first process for secondary electron

I try to simulate interactions of gamma-quanta in a Si plate in energy range from 500 keV to 10 MeV. For every secondary electron the process responsible for the first step is always multiple scattering, and never ionization. For example


  • G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1

Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName
0 0 0 -0.198 0.105 0 0 0 Si initStep
1 -0.00369 -0.00242 -0.193 0.0964 0.00841 0.00671 0.00671 Si msc
2 -0.00448 -0.006 -0.189 0.0928 0.00363 0.00584 0.0126 Si msc
3 -0.0065 -0.011 -0.189 0.0894 0.00345 0.00548 0.018 Si msc
4 -0.00805 -0.015 -0.186 0.086 0.00336 0.00514 0.0232 Si msc
5 -0.00776 -0.0186 -0.183 0.0824 0.00357 0.00482 0.028 Si msc
6 -0.00567 -0.0311 -0.175 0.0662 0.0162 0.0258 0.0538 Si eIoni
7 -0.000974 -0.0411 -0.175 0.0444 0.0218 0.0216 0.0754 Si eIoni
8 0.00139 -0.0464 -0.174 0.0237 0.0207 0.0157 0.0911 Si eIoni
9 0.00126 -0.0445 -0.175 0 0.0237 0.00644 0.0975 Si eIoni
Track (trackID 2, parentID 1) is processed with stopping code 2

Sometimes, ionization doesn’t occur at all as a process defined the step, for example:


  • G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1

Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName
0 0 0 0.243 0.165 0 0 0 Si initStep
1 0.00174 -0.00268 0.249 0.163 0.00262 0.00718 0.00718 Si msc
2 0.00181 -0.0029 0.25 0.162 0.000309 0.000899 0.00808 Si msc
3 0.00181 -0.00291 0.25 0.162 1.61e-05 3.4e-05 0.00811 Container Transportation
4 0.49 -2.02 7.5 0.162 3.74e-25 7.54 7.55 OutOfWorld Transportation
Track (trackID 2, parentID 1) is processed with stopping code 2

I wonder, why multiple scattering always occurs as the process defined the step and is always responsible for the first step and ionization sometime doesn’t occur as the process defined step at all?

Geant4 Version: 11.2.2
Operating System: Ubuntu 20.04
Compiler/Version: g++ 9.4.0
CMake Version: 3.16.3