115 G4cout <<
"G4ChargeExchange::DoIt: Incident particle plab="
116 << plab/
GeV <<
" GeV/c "
117 <<
" ekin(MeV) = " << ekin/
MeV <<
" "
127 <<
" PDGcode= " << projPDG <<
" on nucleus Z= " << Z
128 <<
" A= " << A <<
" N= " << N
143 G4bool theHyperon =
false;
159 }
else if(theParticle ==
theKPlus) {
161 else theSecondary =
theK0L;
165 else theSecondary =
theK0L;
167 }
else if(theParticle ==
theK0S || theParticle ==
theK0L) {
181 }
else if(theParticle ==
theL) {
185 theSecondary =
theS0;
186 }
else if (x < 0.4) {
189 }
else if (x < 0.6) {
194 }
else if (x < 0.8) {
207 theSecondary =
theS0;
208 }
else if (x < 0.4) {
211 }
else if (x < 0.6) {
216 }
else if (x < 0.8) {
230 if (Z == 1 && A == 2) theDef =
theD;
231 else if (Z == 1 && A == 3) theDef =
theT;
232 else if (Z == 2 && A == 3) theDef =
theHe3;
233 else if (Z == 2 && A == 4) theDef =
theA;
242 if(theRecoil) { m21 += theRecoil->
GetPDGMass(); }
243 else { theRecoil = theDef; }
248 if(etot < m11 + m21) {
255 G4double e1 = 0.5*etot*(1.0 - (m21*m21 - m11*m11)/(etot*etot));
257 G4double ptot = std::sqrt(e1*e1 - m11*m11);
265 G4cout <<
"## G4ChargeExchange t= " << t <<
" tmax= " << tmax
266 <<
" ptot= " << ptot <<
G4endl;
271 if(
std::abs(cost) > 1.0) cost = 1.0;
272 G4double sint = std::sqrt((1.0-cost)*(1.0+cost));
313 aa = g4pow->
powZ(A, 1.63);
314 bb = 14.5*g4pow->
powZ(A, 0.66);
315 cc = 1.4*g4pow->
powZ(A, 0.33);
318 aa = g4pow->
powZ(A, 1.33);
319 bb = 60.*g4pow->
powZ(A, 0.33);
320 cc = 0.4*g4pow->
powZ(A, 0.40);
330 const G4int maxNumberOfLoops = 10000;
331 G4int loopCounter = 0;
334 }
while ( (t > tmax) &&
335 ++loopCounter < maxNumberOfLoops );
336 if ( loopCounter >= maxNumberOfLoops ) {