class G4StepPoint does not return the velocity of the particle when G4StepPoint::GetVelocity() is called, but apearantly the INITIAL velocity of the track. The same is the case for G4StepPoint::GetBeta().
Velocity in the pre-step point is correct, but one in the post-step was not updated at all. I fixed this problem (the next release after 3.2) and velocity for the post-step point is valid after G4Step::UpdateTrack() method is invoked. Remark: Kinetic energy (+momentum direction) and mass is essential to determine "kinetic" information of the G4Track. So, velocity in the step point is used as "utility" only and not supposed to be used for updating G4Track information. used only for updating