Problem 1451 - velocity of neutron is wrong after hadron elastic process
Summary: velocity of neutron is wrong after hadron elastic process
Status: RESOLVED FIXED
Alias: None
Product: Geant4
Classification: Unclassified
Component: processes/hadronic (show other problems)
Version: 9.6
Hardware: PC Linux
: P5 normal
Assignee: Vladimir.Ivantchenko
URL:
Depends on:
Blocks:
 
Reported: 2013-03-01 03:17 CET by celaeno1119
Modified: 2013-04-07 22:15 CEST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this problem.
Description celaeno1119 2013-03-01 03:17:39 CET
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);
// --------------------------------------------
Comment 1 Vladimir.Ivantchenko 2013-04-07 22:15:01 CEST
Hello,

Thank you very much for identification of the bug. It is fixed and willbe available with the next public patch.

VI