Thanks @NSos for adding your source code, this was very useful for understanding the situation.
I do not think HEED is doing anything strange here, although you are using it a bit on the edge or even beyond it’s original scope. HEED = High-Energy Electron Dynamics is actually meant to simulate the energy loss for relativistic particles, your 5 MeV alpha is quite a long way from that (beta*gamma = 0.05), you might want to check the output of HEED with GEANT or SRIM/TRIM simulations.
What you actually plot in your movie / viewdrift is the position of the electrons at tmin+delta t, so frame 0 does not give you the pure ionization electrons from HEED, but gives you the electrons from the microscopic tracking after 300ps, which is already enough to see some electrons moving away. You can make a frame 0 by having a different timestep (e.g. 1fs):
if(frame==0) {
aval.SetTimeWindow(tmin, tmin + 1e-6); // 1fs
drift.SetTimeWindow(tmin, tmin + 1e-6); // 1fs
}
else {
aval.SetTimeWindow(tmin, tmin + dt);
drift.SetTimeWindow(tmin, tmin + dt);
}
Also doing a simple print-out of the position your ionization electrons inside the cluster (when you are in your loop over the clusters) shows you that x,y positions are all exactly 0.1, so no deviations as you show in your plot.
greets
Piet