62 for (
G4int i=0; i<4; i++) {
64 for (
G4int k=0; k<4; k++) {
66 V +=
C * theG4Pow->
powN(ekin, k);
70 PR += V * theG4Pow->
powN(
S, i);
73 return std::sqrt(
S) * (PR + (1-PQ)*(
S*
S*
S*
S));
86 snn = -1174.8 / (e * e) + 3088.5 / e + 5.3107;
88 snn = 93074.0 / (e * e) - 11.148 / e + 22.429;
98 spn = -5057.4 / (e * e) + 9069.2 / e + 6.9466;
100 spn = 239380.0 / (e * e) + 1802.0 / e + 27.147;
117 return x==0 ? 0. : (x<0?-1.:1.)*
G4Exp(
G4Log(std::fabs(x))/3.);
131 r1 = r1 > eps ? r1 : eps;
133 r2 = r2 > eps ? r2 : eps;
134 r2 = r2 < 1.0 - eps ? r2 : 1.0 - eps;
136 return sigma * std::sin(twopi * r1) * std::sqrt(-2.0 *
G4Log(r2));
146 return std::pair<G4double, G4double>(CT, std::sqrt(1.0 - CT*CT));
153 G4double pt = p * std::sqrt(std::fabs(1.0 - ct * ct));
157 if (!pvec_G4MT_TLS_) {
164 if (!momr_G4MT_TLS_) {
170 pvec.
set(pt*std::cos(phi), pt*std::sin(phi), p*ct);
184 if (!pvec_G4MT_TLS_) {
191 if (!momr_G4MT_TLS_) {
197 pvec.
set(pt*std::cos(phi), pt*std::sin(phi), p*COS_SIN.first);
G4double C(G4double temp)
G4double S(G4double temp)
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double G4Log(G4double x)
CLHEP::HepLorentzVector G4LorentzVector
CLHEP::Hep3Vector G4ThreeVector
void set(double x, double y, double z)
void setVectM(const Hep3Vector &spatial, double mass)
static G4Pow * GetInstance()
G4double powN(G4double x, G4int n) const
G4double Z13(G4int Z) const
G4double Z23(G4int Z) const
G4LorentzVector generateWithFixedTheta(G4double ct, G4double p, G4double mass=0.)
G4double randomInuclPowers(G4double ekin, const G4double(&coeff)[4][4])
G4LorentzVector generateWithRandomAngles(G4double p, G4double mass=0.)
G4double csNN(G4double e)
std::pair< G4double, G4double > randomCOS_SIN()
G4double randomGauss(G4double sigma)
G4double FermiEnergy(G4int A, G4int Z, G4int ntype)
G4double csPN(G4double e)
G4double G4cbrt(G4double x)