44 G4bool& incidentHasChanged,
62 G4double cmEnergy = std::sqrt( mOriginal*mOriginal + targetMass*targetMass +
63 2.0*targetMass*etOriginal );
64 G4double eAvailable = cmEnergy - mOriginal - targetMass;
65 for (
G4int i = 0; i < vecLen; i++) eAvailable -= vec[i]->GetMass()/
GeV;
96 if (eAvailable > nucleonMass - piMass) {
101 incidentHasChanged =
true;
112 if (eAvailable > nucleonMass - piMass) {
117 targetHasChanged =
true;
121 for(
G4int i=0; i<vecLen; ++i )
124 vec[i]->GetDefinition() == aPiPlus ||
125 vec[i]->GetDefinition() == aPiZero ||
126 vec[i]->GetDefinition() == aPiMinus ) &&
130 if (eAvailable > nucleonMass - piMass) {
132 vec[i]->SetDefinitionAndUpdateE( aNeutron );
134 vec[i]->SetDefinitionAndUpdateE( aProton );