Extracting the "true" primary photoelectron path

Hello everyone!

Suppose I shoot an X-ray into a scintillator and have a photoabsorption event inside the latter. After that, the initial X-ray is killed and a hot photoelectron is created. I want to track the path of that photoelectron. To do so, I enabled a low-energy physics list (Livermore/Penelope). Then I output information about all the steps that photoelectron takes before it dies.

What happens is that the number of steps and what happens during each step significantly depends on the following line (which makes sense) inside the PhysicsList.cc file constructor:

G4EmParameters* param = G4EmParameters::Instance();
param->SetStepFunction(0.01, 0.1*nm);
param->SetLowestElectronEnergy(1.0*eV); 

However, this seems rather arbitrary. Changing 0.01 here in the SetStepFunction to say 0.5 makes the photoelectron take 1 step, fully depositing its energy and die versus 50-100 steps with 0.01. At each step, I see that the process is eIoni. Sometimes, with 0.01 I have steps with zero deposited energy (Edep = 0), but the process is still shown as eIoni. With very small parameter like 0.001 the steps seem to do a lot of small zig-zags which doesn’t look physical.

My question is the following: what exactly can be taken as the “true” path of the primary photoelectron?

UPD: A related question is: does it make sense that the Process defining the step is eIoni, but the deposited energy of the step is zero?