146{
149
150 switch (bdt)
151 {
153 break;
154
156 {
157
158
162
163 G4double w = std::sqrt(1. + p_e*p_e);
164 factor = 1. + c1*w + c2/w + c3*w*w;
165 }
166 break;
167
169 {
170 G4double eta = alphaZ*std::sqrt(1. + p_e*p_e)/p_e;
171 G4double gamma1 = std::sqrt(4. - alphaZ*alphaZ);
172 G4double gamterm1 = Gamma(2.*gamma0+1.)/Gamma(2.*gamma1+1.);
173 G4double term1 = e_nu*e_nu*(1. + gamma0)/6.;
174 G4double term2 = 12.*(2. + gamma1)*p_e*p_e
175 *std::pow(twoPR, 2.*(gamma1-gamma0-1) )
176 *gamterm1*gamterm1
177 *ModSquared(gamma1, eta)/ModSquared(gamma0, eta);
178 factor = term1 + term2;
179 }
180 break;
181
183 break;
184
186 {
187 G4double eta = alphaZ*std::sqrt(1. + p_e*p_e)/p_e;
188 G4double gamma1 = std::sqrt(4. - alphaZ*alphaZ);
189 G4double gamma2 = std::sqrt(9. - alphaZ*alphaZ);
190 G4double gamterm0 = Gamma(2.*gamma0+1.);
191 G4double gamterm1 = gamterm0/Gamma(2.*gamma1+1.);
192 G4double gamterm2 = gamterm0/Gamma(2.*gamma2+1.);
193 G4double term1 = e_nu*e_nu*e_nu*e_nu*(1. + gamma0)/60.;
194
195 G4double term2 = 4.*(2. + gamma1)*e_nu*e_nu*p_e*p_e
196 *std::pow(twoPR, 2.*(gamma1-gamma0-1.) )
197 *gamterm1*gamterm1
198 *ModSquared(gamma1, eta)/ModSquared(gamma0, eta);
199
200 G4double term3 = 180.*(3.+gamma2)*p_e*p_e*p_e*p_e
201 *std::pow(twoPR, 2.*(gamma2-gamma0-2) )
202 *gamterm2*gamterm2
203 *ModSquared(gamma2, eta)/ModSquared(gamma0, eta);
204
205 factor = term1 + term2 + term3;
206 }
207 break;
208
210 break;
211
213 {
214 G4double eta = alphaZ*std::sqrt(1. + p_e*p_e)/p_e;
215 G4double gamma1 = std::sqrt(4. - alphaZ*alphaZ);
216 G4double gamma2 = std::sqrt(9. - alphaZ*alphaZ);
217 G4double gamma3 = std::sqrt(16. - alphaZ*alphaZ);
218 G4double gamterm0 = Gamma(2.*gamma0+1.);
219 G4double gamterm1 = gamterm0/Gamma(2.*gamma1+1.);
220 G4double gamterm2 = gamterm0/Gamma(2.*gamma2+1.);
221 G4double gamterm3 = gamterm0/Gamma(2.*gamma3+1.);
222
223 G4double term1 = e_nu*e_nu*e_nu*e_nu*e_nu*e_nu*(1. + gamma0)/1260.;
224
225 G4double term2 = 2.*(2. + gamma1)*e_nu*e_nu*e_nu*e_nu*p_e*p_e
226 *std::pow(twoPR, 2.*(gamma1-gamma0-1.) )
227 *gamterm1*gamterm1
228 *ModSquared(gamma1, eta)/ModSquared(gamma0, eta)/5.;
229
230 G4double term3 = 60.*(3.+gamma2)*p_e*p_e*p_e*p_e*e_nu*e_nu
231 *std::pow(twoPR, 2.*(gamma2-gamma0-2.) )
232 *gamterm2*gamterm2
233 *ModSquared(gamma2, eta)/ModSquared(gamma0, eta);
234
235 G4double term4 = 2240.*p_e*p_e*p_e*p_e*p_e*p_e*(4. + gamma3)
236 *std::pow(twoPR, 2.*(gamma3-gamma0-3.) )
237 *gamterm3*gamterm3
238 *ModSquared(gamma3, eta)/ModSquared(gamma0, eta);
239
240 factor = term1 + term2 + term3 + term4;
241 }
242 break;
243
244 default:
245 G4Exception(
"G4BetaDecayCorrections::ShapeFactor()",
"HAD_RDM_010",
247 "Transition not yet implemented - using allowed shape");
248 break;
249 }
250
251 return factor;
252}
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)