319 G4double trMass = 900.*CLHEP::MeV, Tkin;
320 G4double sl, sh, ds, rAl, rAh, drA, rBl, rBh, drB, bql, bqh, dbq, bQl, bQh, dbQ, cIl, cIh, dcI;
322 Tkin = std::sqrt(fMassProj*fMassProj + plab*plab) - fMassProj;
329 delete theDynamicParticle;
331 fSpp = fMassProj*fMassProj + fMassTarg*fMassTarg + 2.*fMassTarg*std::sqrt(plab*plab + fMassProj*fMassProj);
332 fPcms = std::sqrt( (fSpp - fMassSum2)*(fSpp - fMassDif2)/4./fSpp);
336 if( fMassProj > trMass )
341 fDelta = 1. - fGamma;
343 if( sCMS <= theNuclNuclData[0][0]*CLHEP::GeV )
345 this->
SetRA(theNuclNuclData[0][1]/CLHEP::GeV,0.173,0.316);
346 this->
SetRB(theNuclNuclData[0][2]/CLHEP::GeV,0.173,0.316);
348 this->
SetBq(theNuclNuclData[0][3]);
349 this->
SetBQ(theNuclNuclData[0][4]);
350 this->
SetImCof(theNuclNuclData[0][5]);
355 else if( sCMS >= theNuclNuclData[17][0]*CLHEP::GeV )
357 this->
SetRA(theNuclNuclData[17][1]/CLHEP::GeV,0.173,0.316);
358 this->
SetRB(theNuclNuclData[17][2]/CLHEP::GeV,0.173,0.316);
360 this->
SetBq(theNuclNuclData[17][3]);
361 this->
SetBQ(theNuclNuclData[17][4]);
362 this->
SetImCof(theNuclNuclData[17][5]);
369 for( i = 0; i < 19; i++ )
if( sCMS <= theNuclNuclData[i][0]*CLHEP::GeV )
break;
373 sl = theNuclNuclData[i-1][0]*CLHEP::GeV;
374 sh = theNuclNuclData[i][0]*CLHEP::GeV;
375 ds = (sCMS - sl)/(sh - sl);
377 rAl = theNuclNuclData[i-1][1]/CLHEP::GeV;
378 rAh = theNuclNuclData[i][1]/CLHEP::GeV;
381 rBl = theNuclNuclData[i-1][2]/CLHEP::GeV;
382 rBh = theNuclNuclData[i][2]/CLHEP::GeV;
385 bql = theNuclNuclData[i-1][3];
386 bqh = theNuclNuclData[i][3];
389 bQl = theNuclNuclData[i-1][4];
390 bQh = theNuclNuclData[i][4];
393 cIl = theNuclNuclData[i-1][5];
394 cIh = theNuclNuclData[i][5];
397 this->
SetRA(rAl+drA*ds,0.173,0.316);
398 this->
SetRB(rBl+drB*ds,0.173,0.316);
400 this->
SetBq(bql+dbq*ds);
401 this->
SetBQ(bQl+dbQ*ds);
413 fDelta = 1. - fGamma;
415 if( sCMS <= thePiKaNuclData[0][0]*CLHEP::GeV )
417 this->
SetRA(thePiKaNuclData[0][1]/CLHEP::GeV,0.173,0.316);
418 this->
SetRB(thePiKaNuclData[0][2]/CLHEP::GeV,0.173,0.173);
420 this->
SetBq(thePiKaNuclData[0][3]);
421 this->
SetBQ(thePiKaNuclData[0][4]);
422 this->
SetImCof(thePiKaNuclData[0][5]);
427 else if( sCMS >= thePiKaNuclData[7][0]*CLHEP::GeV )
429 this->
SetRA(thePiKaNuclData[7][1]/CLHEP::GeV,0.173,0.316);
430 this->
SetRB(thePiKaNuclData[7][2]/CLHEP::GeV,0.173,0.173);
432 this->
SetBq(thePiKaNuclData[7][3]);
433 this->
SetBQ(thePiKaNuclData[7][4]);
434 this->
SetImCof(thePiKaNuclData[7][5]);
441 for( i = 0; i < 8; i++ )
if( sCMS <= thePiKaNuclData[i][0]*CLHEP::GeV )
break;
445 sl = thePiKaNuclData[i-1][0]*CLHEP::GeV;
446 sh = thePiKaNuclData[i][0]*CLHEP::GeV;
447 ds = (sCMS - sl)/(sh - sl);
449 rAl = thePiKaNuclData[i-1][1]/CLHEP::GeV;
450 rAh = thePiKaNuclData[i][1]/CLHEP::GeV;
453 rBl = thePiKaNuclData[i-1][2]/CLHEP::GeV;
454 rBh = thePiKaNuclData[i][2]/CLHEP::GeV;
457 bql = thePiKaNuclData[i-1][3];
458 bqh = thePiKaNuclData[i][3];
461 bQl = thePiKaNuclData[i-1][4];
462 bQh = thePiKaNuclData[i][4];
465 cIl = thePiKaNuclData[i-1][5];
466 cIh = thePiKaNuclData[i][5];
469 this->
SetRA(rAl+drA*ds,0.173,0.316);
470 this->
SetRB(rBl+drB*ds,0.173,0.173);
472 this->
SetBq(bql+dbq*ds);
473 this->
SetBQ(bQl+dbQ*ds);
G4ThreeVector G4ParticleMomentum