62 currentParticle.SetKineticEnergy( ek );
65 G4double pp = currentParticle.GetMomentum().mag();
68 currentParticle.SetMomentum( momentum * (p/pp) );
75 currentParticle.SetKineticEnergy( ek );
77 p = std::sqrt(
std::abs((et-amas)*(et+amas)) );
78 pp = currentParticle.GetMomentum().mag();
81 currentParticle.SetMomentum( momentum * (p/pp) );
87 targetParticle.SetSide( -1 );
88 G4bool incidentHasChanged =
false;
89 G4bool targetHasChanged =
false;
90 G4bool quasiElastic =
false;
96 if( currentParticle.GetKineticEnergy() > cutOff )
98 incidentHasChanged, targetHasChanged);
101 originalIncident, originalTarget, modifiedOriginal,
102 targetNucleus, currentParticle, targetParticle,
103 incidentHasChanged, targetHasChanged, quasiElastic);
106 currentParticle, targetParticle,
109 delete originalTarget;
125 G4bool& incidentHasChanged,
132 std::vector<G4int> fsTypes;
143 partType = fsTypes[0];
144 if (partType !=
pro) {
145 targetHasChanged =
true;
156 partType = fsTypes[0];
157 if (partType !=
neu) {
158 targetHasChanged =
true;
169 fsTypes.erase(fsTypes.begin());
174 for(
G4int i=0; i < mult-1; ++i ) {
175 partType = fsTypes[i];
176 if (partType ==
pim) {
182 incidentHasChanged =
true;
184 partType = fsTypes[choose];
188 fsTypes.erase(fsTypes.begin()+choose);
193 for(
G4int i=0; i < mult-2; ++i ) {
194 partType = fsTypes[i];
207 CheckQnums(vec, vecLen, currentParticle, targetParticle,
208 testCharge, testBaryon, testStrange);