54{
55
56
57
58
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;
66
70
78
88
89 if( antiTest && (
95 {
96 if (eAvailable > nucleonMass - piMass) {
99 else
101 incidentHasChanged = true;
102 }
103 }
104
105 if( antiTest && (
111 {
112 if (eAvailable > nucleonMass - piMass) {
115 else
117 targetHasChanged = true;
118 }
119 }
120
121 for(
G4int i=0; i<vecLen; ++i )
122 {
123 if( antiTest && (
124 vec[i]->GetDefinition() == aPiPlus ||
125 vec[i]->GetDefinition() == aPiZero ||
126 vec[i]->GetDefinition() == aPiMinus ) &&
129 {
130 if (eAvailable > nucleonMass - piMass) {
132 vec[i]->SetDefinitionAndUpdateE( aNeutron );
133 else
134 vec[i]->SetDefinitionAndUpdateE( aProton );
135 }
136 }
137 }
138
139 return true;
140}
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()
G4double GetTotalMomentum() const
G4double GetTotalEnergy() const
void SetDefinitionAndUpdateE(G4ParticleDefinition *aParticleDefinition)
G4ParticleDefinition * GetDefinition() const