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 );
G4bool ReactionStage(const G4HadProjectile *, G4ReactionProduct &, G4bool &, const G4DynamicParticle *, G4ReactionProduct &, G4bool &, const G4Nucleus &, G4ReactionProduct &, G4FastVector< G4ReactionProduct, 256 > &, G4int &, G4bool, G4ReactionProduct &)
static G4PionMinus * PionMinus()
static G4AntiNeutron * AntiNeutron()
static G4AntiOmegaMinus * AntiOmegaMinus()
static G4AntiProton * AntiProton()
void SetDefinitionAndUpdateE(const G4ParticleDefinition *aParticleDefinition)
static G4PionPlus * PionPlus()
const G4ParticleDefinition * GetDefinition() const
static G4Proton * Proton()
static G4AntiSigmaMinus * AntiSigmaMinus()
G4double GetPDGMass() const
G4double GetTotalEnergy() const
G4double GetTotalMomentum() const
static G4AntiXiZero * AntiXiZero()
static G4Neutron * Neutron()
static G4AntiSigmaPlus * AntiSigmaPlus()
static G4PionZero * PionZero()
static constexpr double GeV
static G4AntiXiMinus * AntiXiMinus()
static G4AntiLambda * AntiLambda()