128{
131
132 switch (bdt)
133 {
135 break;
136
138 {
139
140
144
145 G4double w = std::sqrt(1. + p_e*p_e);
146 factor = 1. + c1*w + c2/w + c3*w*w;
147 }
148 break;
149
151 {
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) )
158 *gamterm1*gamterm1
159 *ModSquared(gamma1, eta)/ModSquared(gamma0, eta);
160 factor = term1 + term2;
161 }
162 break;
163
165 {
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.;
173
174 G4double term2 = 4.*(2. + gamma1)*e_nu*e_nu*p_e*p_e
175 *std::pow(twoPR, 2.*(gamma1-gamma0-1.) )
176 *gamterm1*gamterm1
177 *ModSquared(gamma1, eta)/ModSquared(gamma0, eta);
178
179 G4double term3 = 180.*(3.+gamma2)*p_e*p_e*p_e*p_e
180 *std::pow(twoPR, 2.*(gamma2-gamma0-2) )
181 *gamterm2*gamterm2
182 *ModSquared(gamma2, eta)/ModSquared(gamma0, eta);
183
184 factor = term1 + term2 + term3;
185 }
186 break;
187
189 {
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.);
198
199 G4double term1 = e_nu*e_nu*e_nu*e_nu*e_nu*e_nu*(1. + gamma0)/1260.;
200
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.) )
203 *gamterm1*gamterm1
204 *ModSquared(gamma1, eta)/ModSquared(gamma0, eta)/5.;
205
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.) )
208 *gamterm2*gamterm2
209 *ModSquared(gamma2, eta)/ModSquared(gamma0, eta);
210
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.) )
213 *gamterm3*gamterm3
214 *ModSquared(gamma3, eta)/ModSquared(gamma0, eta);
215
216 factor = term1 + term2 + term3 + term4;
217 }
218 break;
219
220 default:
221 G4Exception(
"G4BetaDecayCorrections::ShapeFactor()",
"HAD_RDM_010",
223 "Transition not yet implemented - using allowed shape");
224 break;
225 }
226 return factor;
227}
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)