Velocity of neutron is as same as incident velocity after hadron elastic process, such as H(n,np). In G4HadronElasticProcess.cc (4.9.6) / G4WHadronElasticProcess.cc (4.9.5), energy and momentum is calculated but velocity is not. But in G4ParticleChange.cc, // -------------------------------------------- if (!isVelocityChanged) theVelocityChange = pStep->GetTrack()->CalculateVelocity(); // -------------------------------------------- will apply velocity improper. This problem may have same origin as problem 1275. Above problem can be fixed by calling following code in G4HadronElasticProcess::PostStepDoIt. // -------------------------------------------- G4double mass = dynParticle->GetMass(); G4double T = efinal/mass; G4double velocity = c_light*std::sqrt(T*(T+2.))/(T+1.0); theTotalResult->ProposeVelocity(velocity); // --------------------------------------------
Hello, Thank you very much for identification of the bug. It is fixed and willbe available with the next public patch. VI