e7827c9b07
Add G4EventManager::ReserveNextTrackID() to atomically increment and return the next track ID counter. Call it from G4SteppingManager:: ProcessSecondariesFromParticleChange() so that each secondary has its track ID set before UserSteppingAction fires. G4EventManager::StackTracks is updated to skip re-assignment when GetTrackID() != 0 (pre-assigned). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>