44 #define G4hhElastic_h 1
322 G4double sl, sh, ds, rAl, rAh, drA, rBl, rBh, drB, bql, bqh, dbq, bQl, bQh, dbQ, cIl, cIh, dcI;
331 delete theDynamicParticle;
338 if( fMassProj > trMass )
371 for( i = 0; i < 19; i++ )
if( sCMS <=
theNuclNuclData[i][0]*CLHEP::GeV )
break;
377 ds = (sCMS - sl)/(sh - sl);
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);
443 for( i = 0; i < 8; i++ )
if( sCMS <=
thePiKaNuclData[i][0]*CLHEP::GeV )
break;
449 ds = (sCMS - sl)/(sh - sl);
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);
574 G4complex res = exp13 + exp14 + exp23 + exp24;
620 dsdt *= real(F13)*real(F13) + imag(F13)*imag(F13);
637 dsdt *= real(F1)*real(F1) + imag(F1)*imag(F1);
686 dsdt *= real(F12)*real(F12) + imag(F12)*imag(F12);
757 dsdt *= real(F123)*real(F123) + imag(F123)*imag(F123);
848 G4double x1 = ( -B - std::sqrt(B*B-4.*A*C) )/2./A;
849 G4double x2 = ( -B + std::sqrt(B*B-4.*A*C) )/2./A;
852 if( B*B-4.*A*C < 1.
e-6 )
fBQ = std::abs(-B/2./A);
853 else if ( B < 0.)
fBQ = std::abs( ( -B - std::sqrt(B*B-4.*A*C) )/2./A);
854 else fBQ = std::abs( ( -B + std::sqrt(B*B-4.*A*C) )/2./A);
980 q += 2*b*b*b/a/a/a/27.;
1002 G4cout<<
"re_x1 = "<<real(x1)<<
"; re_x2 = "<<real(x2)<<
"; re_x3 = "<<real(x3)<<
G4endl;
1003 G4cout<<
"im_x1 = "<<imag(x1)<<
"; im_x2 = "<<imag(x2)<<
"; im_x3 = "<<imag(x3)<<
G4endl;
1009 if( r1 <= 1. && r1 >= 0. )
fBQ = r1;
1010 else if( r2 <= 1. && r2 >= 0. )
fBQ = r2;
1011 else if( r3 <= 1. && r3 >= 0. )
fBQ = r3;
1051 dsdt *= real(F1)*real(F1) + imag(F1)*imag(F1);
1094 dsdt *= real(F1)*real(F1) + imag(F1)*imag(F1);
1137 dsdt *= real(F1)*real(F1) + imag(F1)*imag(F1);
1155 dsdt *= real(F1)*real(F1) + imag(F1)*imag(F1);
1164 dsdt0 *= real(F10)*real(F10) + imag(F10)*imag(F10);
static constexpr double L
static G4PionMinus * PionMinus()
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
std::vector< G4PhysicsTable * > fBankT
G4ThreeVector G4ParticleMomentum
G4double GetTransfer(G4int iMomentum, G4int iTransfer, G4double position)
void BuildTableTest(G4ParticleDefinition *target, G4ParticleDefinition *projectile, G4double plab)
void SetParametersCMS(G4double plab)
std::vector< ExP01TrackerHit * > a
G4ParticleDefinition * theProton
void SetLambda(G4double L)
Float_t y1[n_points_granero]
void SetSigmaTot(G4double stot)
G4double lowestEnergyLimit
void CalculateBqQ12(G4double b)
Float_t x1[n_points_granero]
virtual G4bool IsApplicable(const G4HadProjectile &, G4Nucleus &)
G4complex GetF1(G4double qp)
static constexpr double hbarc
G4double GetdsdtF1(G4double s, G4double q)
G4ParticleDefinition * thePionPlus
static G4PionPlus * PionPlus()
G4ParticleDefinition * fProjectile
void SetRA(G4double rn, G4double pq, G4double pQ)
void SetCofF2(G4double f)
G4complex GetF3(G4double qp)
G4double GetdsdtF12qQgG(G4double s, G4double q)
static G4Proton * Proton()
G4complex GetF3qQgG(G4double qp)
G4complex GetF2(G4double qp)
static const G4double thePiKaNuclData[8][6]
static G4KaonMinus * KaonMinus()
static G4KaonPlus * KaonPlus()
G4double lowEnergyRecoilLimit
G4HadronNucleonXsc * fHadrNuclXsc
G4double G4Log(G4double x)
Float_t y2[n_points_geant4]
G4double GetdsdtF1qQgG(G4double s, G4double q)
static constexpr double proton_mass_c2
static const G4double theNuclNuclData[19][6]
void SetAlphaP(G4double a)
G4ParticleDefinition * thePionMinus
std::complex< G4double > G4complex
void BuildTableT(G4ParticleDefinition *target, G4ParticleDefinition *projectile)
G4double GetOpticalRatio()
G4double GetdsdtF123(G4double q)
G4double GetdsdtF12(G4double s, G4double q)
static constexpr double MeV
G4double GetdsdtF13qQG(G4double s, G4double q)
double A(double temperature)
G4double GetExpRatioF123(G4double s, G4double q)
G4ParticleDefinition * theNeutron
void CalculateBQ(G4double b)
G4double G4ParticleHPJENDLHEData::G4double result
G4double SampleInvariantT(const G4ParticleDefinition *p, G4double plab, G4int, G4int)
void CalculateBqQ13(G4double b)
void SetRB(G4double rn, G4double pq, G4double pQ)
const G4ParticleDefinition * GetDefinition() const
static G4Neutron * Neutron()
G4complex GetF2qQgG(G4double qp)
G4GLOB_DLL std::ostream G4cout
G4double lowEnergyLimitHE
G4double SampleTest(G4double tMin)
void SetSpp(G4double spp)
G4complex GetF1qQgG(G4double qp)
G4double SampleBisectionalT(const G4ParticleDefinition *p, G4double plab)
Float_t x2[n_points_geant4]
void SetCofF3(G4double f)
double B(double temperature)
G4double GetHadronNucleonXscNS(const G4DynamicParticle *, const G4ParticleDefinition *)
G4double GetdsdtF123qQgG(G4double q)
static constexpr double GeV
static constexpr double pi
void CalculateBqQ123(G4double b)
void SetImCof(G4double a)
G4ParticleDefinition * fTarget
G4PhysicsLogVector * fEnergyVector