322 G4double sl, sh, ds, rAl, rAh, drA, rBl, rBh, drB, bql, bqh, dbq, bQl, bQh, dbQ, cIl, cIh, dcI;
324 Tkin = std::sqrt(fMassProj*fMassProj + plab*plab) - fMassProj;
331 delete theDynamicParticle;
333 fSpp = fMassProj*fMassProj + fMassTarg*fMassTarg + 2.*fMassTarg*std::sqrt(plab*plab + fMassProj*fMassProj);
334 fPcms = std::sqrt( (fSpp - fMassSum2)*(fSpp - fMassDif2)/4./fSpp);
338 if( fMassProj > trMass )
343 fDelta = 1. - fGamma;
345 if( sCMS <= theNuclNuclData[0][0]*
CLHEP::GeV )
347 this->
SetRA(theNuclNuclData[0][1]/CLHEP::GeV,0.173,0.316);
348 this->
SetRB(theNuclNuclData[0][2]/CLHEP::GeV,0.173,0.316);
350 this->
SetBq(theNuclNuclData[0][3]);
351 this->
SetBQ(theNuclNuclData[0][4]);
352 this->
SetImCof(theNuclNuclData[0][5]);
357 else if( sCMS >= theNuclNuclData[17][0]*CLHEP::GeV )
359 this->
SetRA(theNuclNuclData[17][1]/CLHEP::GeV,0.173,0.316);
360 this->
SetRB(theNuclNuclData[17][2]/CLHEP::GeV,0.173,0.316);
362 this->
SetBq(theNuclNuclData[17][3]);
363 this->
SetBQ(theNuclNuclData[17][4]);
364 this->
SetImCof(theNuclNuclData[17][5]);
371 for( i = 0; i < 18; i++ )
if( sCMS <= theNuclNuclData[i][0]*CLHEP::GeV )
break;
377 ds = (sCMS - sl)/(sh - sl);
387 bql = theNuclNuclData[i-1][3];
388 bqh = theNuclNuclData[i][3];
391 bQl = theNuclNuclData[i-1][4];
392 bQh = theNuclNuclData[i][4];
395 cIl = theNuclNuclData[i-1][5];
396 cIh = theNuclNuclData[i][5];
399 this->
SetRA(rAl+drA*ds,0.173,0.316);
400 this->
SetRB(rBl+drB*ds,0.173,0.316);
402 this->
SetBq(bql+dbq*ds);
403 this->
SetBQ(bQl+dbQ*ds);
415 fDelta = 1. - fGamma;
417 if( sCMS <= thePiKaNuclData[0][0]*CLHEP::GeV )
419 this->
SetRA(thePiKaNuclData[0][1]/CLHEP::GeV,0.173,0.316);
420 this->
SetRB(thePiKaNuclData[0][2]/CLHEP::GeV,0.173,0.173);
422 this->
SetBq(thePiKaNuclData[0][3]);
423 this->
SetBQ(thePiKaNuclData[0][4]);
424 this->
SetImCof(thePiKaNuclData[0][5]);
429 else if( sCMS >= thePiKaNuclData[7][0]*CLHEP::GeV )
431 this->
SetRA(thePiKaNuclData[7][1]/CLHEP::GeV,0.173,0.316);
432 this->
SetRB(thePiKaNuclData[7][2]/CLHEP::GeV,0.173,0.173);
434 this->
SetBq(thePiKaNuclData[7][3]);
435 this->
SetBQ(thePiKaNuclData[7][4]);
436 this->
SetImCof(thePiKaNuclData[7][5]);
443 for( i = 0; i < 8; i++ )
if( sCMS <= thePiKaNuclData[i][0]*CLHEP::GeV )
break;
449 ds = (sCMS - sl)/(sh - sl);
459 bql = thePiKaNuclData[i-1][3];
460 bqh = thePiKaNuclData[i][3];
463 bQl = thePiKaNuclData[i-1][4];
464 bQh = thePiKaNuclData[i][4];
467 cIl = thePiKaNuclData[i-1][5];
468 cIh = thePiKaNuclData[i][5];
471 this->
SetRA(rAl+drA*ds,0.173,0.316);
472 this->
SetRB(rBl+drB*ds,0.173,0.173);
474 this->
SetBq(bql+dbq*ds);
475 this->
SetBQ(bQl+dbQ*ds);
void SetRA(G4double rn, G4double pq, G4double pQ)
void SetImCof(G4double a)
G4double GetHadronNucleonXscNS(const G4DynamicParticle *, const G4ParticleDefinition *)
void SetCofF3(G4double f)
static constexpr double MeV
void SetCofF2(G4double f)
void SetRB(G4double rn, G4double pq, G4double pQ)
static constexpr double GeV
void SetLambda(G4double L)
G4ThreeVector G4ParticleMomentum