36 alphaZ = fine_structure_const*Z;
39 Rnuc = 0.5*fine_structure_const*std::pow(A, 0.33333);
42 V0 = 1.13*fine_structure_const*fine_structure_const
43 *std::pow(std::abs(Z), 1.33333);
45 gamma0 = std::sqrt(1. - alphaZ*alphaZ);
68 if (Wprime <= 1.00001) Wprime = 1.00001;
71 G4double p_e = std::sqrt(Wprime*Wprime - 1.);
74 G4double realGamma = Gamma(2.*gamma0+1);
75 G4double mod2Gamma = ModSquared(gamma0, eta);
78 G4double factor1 = 2*(1+gamma0)*mod2Gamma/realGamma/realGamma;
79 G4double factor2 = epieta*std::pow(2*p_e*Rnuc, 2*(gamma0-1) );
82 G4double factor3 = (Wprime/W)*std::sqrt( (Wprime*Wprime - 1.)/(W*W - 1.) );
84 return factor1*factor2*factor3;
96 G4double factor1 = std::pow( (1+re)*(1+re) + im*im, re+0.5);
97 G4double factor2 = std::exp(2*im * std::atan(im/(1+re)));
98 G4double factor3 = std::exp(2*(1+re));
100 G4double factor5 = std::exp( (1+re)/( (1+re)*(1+re) + im*im)/6 );
102 return factor1*factor4*factor5/factor2/factor3/factor6;
119 for (
G4int i = 1; i < 6; i++) sum = sum*x + gc[i];
145 G4double w = std::sqrt(1. + p_e*p_e);
146 factor = 1. + c1*w + c2/w + c3*w*w;
152 G4double eta = alphaZ*std::sqrt(1. + p_e*p_e)/p_e;
153 G4double gamma1 = std::sqrt(4. - alphaZ*alphaZ);
154 G4double gamterm1 = Gamma(2.*gamma0+1.)/Gamma(2.*gamma1+1.);
155 G4double term1 = e_nu*e_nu*(1. + gamma0)/6.;
156 G4double term2 = 12.*(2. + gamma1)*p_e*p_e
157 *std::pow(twoPR, 2.*(gamma1-gamma0-1) )
159 *ModSquared(gamma1, eta)/ModSquared(gamma0, eta);
160 factor = term1 + term2;
166 G4double eta = alphaZ*std::sqrt(1. + p_e*p_e)/p_e;
167 G4double gamma1 = std::sqrt(4. - alphaZ*alphaZ);
168 G4double gamma2 = std::sqrt(9. - alphaZ*alphaZ);
169 G4double gamterm0 = Gamma(2.*gamma0+1.);
170 G4double gamterm1 = gamterm0/Gamma(2.*gamma1+1.);
171 G4double gamterm2 = gamterm0/Gamma(2.*gamma2+1.);
172 G4double term1 = e_nu*e_nu*e_nu*e_nu*(1. + gamma0)/60.;
174 G4double term2 = 4.*(2. + gamma1)*e_nu*e_nu*p_e*p_e
175 *std::pow(twoPR, 2.*(gamma1-gamma0-1.) )
177 *ModSquared(gamma1, eta)/ModSquared(gamma0, eta);
179 G4double term3 = 180.*(3.+gamma2)*p_e*p_e*p_e*p_e
180 *std::pow(twoPR, 2.*(gamma2-gamma0-2) )
182 *ModSquared(gamma2, eta)/ModSquared(gamma0, eta);
184 factor = term1 + term2 + term3;
190 G4double eta = alphaZ*std::sqrt(1. + p_e*p_e)/p_e;
191 G4double gamma1 = std::sqrt(4. - alphaZ*alphaZ);
192 G4double gamma2 = std::sqrt(9. - alphaZ*alphaZ);
193 G4double gamma3 = std::sqrt(16. - alphaZ*alphaZ);
194 G4double gamterm0 = Gamma(2.*gamma0+1.);
195 G4double gamterm1 = gamterm0/Gamma(2.*gamma1+1.);
196 G4double gamterm2 = gamterm0/Gamma(2.*gamma2+1.);
197 G4double gamterm3 = gamterm0/Gamma(2.*gamma3+1.);
199 G4double term1 = e_nu*e_nu*e_nu*e_nu*e_nu*e_nu*(1. + gamma0)/1260.;
201 G4double term2 = 2.*(2. + gamma1)*e_nu*e_nu*e_nu*e_nu*p_e*p_e
202 *std::pow(twoPR, 2.*(gamma1-gamma0-1.) )
204 *ModSquared(gamma1, eta)/ModSquared(gamma0, eta)/5.;
206 G4double term3 = 60.*(3.+gamma2)*p_e*p_e*p_e*p_e*e_nu*e_nu
207 *std::pow(twoPR, 2.*(gamma2-gamma0-2.) )
209 *ModSquared(gamma2, eta)/ModSquared(gamma0, eta);
211 G4double term4 = 2240.*p_e*p_e*p_e*p_e*p_e*p_e*(4. + gamma3)
212 *std::pow(twoPR, 2.*(gamma3-gamma0-3.) )
214 *ModSquared(gamma3, eta)/ModSquared(gamma0, eta);
216 factor = term1 + term2 + term3 + term4;
221 G4Exception(
"G4BetaDecayCorrections::ShapeFactor()",
"HAD_RDM_010",
223 "Transition not yet implemented - using allowed shape");
G4BetaDecayCorrections(G4int Z, G4int A)
G4double FermiFunction(const G4double &W)
G4double ShapeFactor(const G4BetaDecayType &, const G4double &p_e, const G4double &e_nu)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)