43 G4bool& incidentHasChanged,
61 G4double cmEnergy = std::sqrt( mOriginal*mOriginal + targetMass*targetMass +
62 2.0*targetMass*etOriginal );
63 G4double eAvailable = cmEnergy - mOriginal - targetMass;
64 for (
G4int i = 0; i < vecLen; i++) eAvailable -= vec[i]->GetMass()/GeV;
95 if (eAvailable > nucleonMass - piMass) {
100 incidentHasChanged =
true;
111 if (eAvailable > nucleonMass - piMass) {
116 targetHasChanged =
true;
120 for(
G4int i=0; i<vecLen; ++i )
123 vec[i]->GetDefinition() == aPiPlus ||
124 vec[i]->GetDefinition() == aPiZero ||
125 vec[i]->GetDefinition() == aPiMinus ) &&
129 if (eAvailable > nucleonMass - piMass) {
131 vec[i]->SetDefinitionAndUpdateE( aNeutron );
133 vec[i]->SetDefinitionAndUpdateE( aProton );
static G4AntiLambda * AntiLambda()
static G4AntiNeutron * AntiNeutron()
static G4AntiOmegaMinus * AntiOmegaMinus()
static G4AntiProton * AntiProton()
static G4AntiSigmaMinus * AntiSigmaMinus()
static G4AntiSigmaPlus * AntiSigmaPlus()
static G4AntiXiMinus * AntiXiMinus()
static G4AntiXiZero * AntiXiZero()
static G4Neutron * Neutron()
G4double GetPDGMass() const
static G4PionMinus * PionMinus()
static G4PionPlus * PionPlus()
static G4PionZero * PionZero()
static G4Proton * Proton()
G4bool ReactionStage(const G4HadProjectile *, G4ReactionProduct &, G4bool &, const G4DynamicParticle *, G4ReactionProduct &, G4bool &, const G4Nucleus &, G4ReactionProduct &, G4FastVector< G4ReactionProduct, 256 > &, G4int &, G4bool, G4ReactionProduct &)
G4double GetTotalMomentum() const
const G4ParticleDefinition * GetDefinition() const
G4double GetTotalEnergy() const
void SetDefinitionAndUpdateE(const G4ParticleDefinition *aParticleDefinition)