61 currentParticle.SetKineticEnergy( ek );
64 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();
82 currentParticle.SetMomentum( momentum * (p/pp) );
88 targetParticle.SetSide( -1 );
89 G4bool incidentHasChanged =
false;
90 G4bool targetHasChanged =
false;
91 G4bool quasiElastic =
false;
97 if( currentParticle.GetKineticEnergy() > cutOff )
99 incidentHasChanged, targetHasChanged);
102 originalIncident, originalTarget, modifiedOriginal,
103 targetNucleus, currentParticle, targetParticle,
104 incidentHasChanged, targetHasChanged, quasiElastic );
107 currentParticle, targetParticle,
108 incidentHasChanged );
110 delete originalTarget;
126 G4bool& incidentHasChanged,
133 std::vector<G4int> fsTypes;
144 partType = fsTypes[0];
145 if (partType !=
pro) {
146 targetHasChanged =
true;
157 partType = fsTypes[0];
158 if (partType !=
neu) {
159 targetHasChanged =
true;
170 fsTypes.erase(fsTypes.begin());
175 for(
G4int i=0; i < mult-1; ++i ) {
176 partType = fsTypes[i];
177 if (partType ==
pip) {
183 incidentHasChanged =
true;
185 partType = fsTypes[choose];
188 fsTypes.erase(fsTypes.begin()+choose);
195 for(
G4int i=0; i < mult-2; ++i ) {
196 partType = fsTypes[i];
209 CheckQnums(vec, vecLen, currentParticle, targetParticle,
210 testCharge, testBaryon, testStrange);