Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4BetaDecayCorrections Class Reference

#include <G4BetaDecayCorrections.hh>

Public Member Functions

 G4BetaDecayCorrections (G4int Z, G4int A)
 
 ~G4BetaDecayCorrections ()
 
G4double FermiFunction (const G4double &W)
 
G4double ShapeFactor (const G4BetaDecayType &, const G4double &p_e, const G4double &e_nu)
 

Detailed Description

Definition at line 36 of file G4BetaDecayCorrections.hh.

Constructor & Destructor Documentation

◆ G4BetaDecayCorrections()

G4BetaDecayCorrections::G4BetaDecayCorrections ( G4int  Z,
G4int  A 
)

Definition at line 32 of file G4BetaDecayCorrections.cc.

33 : Z(theZ), A(theA)
34{
35 // alphaZ = fine_structure_const*std::abs(Z);
36 alphaZ = fine_structure_const*Z;
37
38 // Nuclear radius in units of hbar/m_e/c
39 Rnuc = 0.5*fine_structure_const*std::pow(A, 0.33333);
40
41 // Electron screening potential in units of electrom mass
42 V0 = 1.13*fine_structure_const*fine_structure_const
43 *std::pow(std::abs(Z), 1.33333);
44
45 gamma0 = std::sqrt(1. - alphaZ*alphaZ);
46
47 // Coefficients for gamma function with real argument
48 gc[0] = -0.1010678;
49 gc[1] = 0.4245549;
50 gc[2] = -0.6998588;
51 gc[3] = 0.9512363;
52 gc[4] = -0.5748646;
53 gc[5] = 1.0;
54}

◆ ~G4BetaDecayCorrections()

G4BetaDecayCorrections::~G4BetaDecayCorrections ( )
inline

Definition at line 41 of file G4BetaDecayCorrections.hh.

41{};

Member Function Documentation

◆ FermiFunction()

G4double G4BetaDecayCorrections::FermiFunction ( const G4double W)

Definition at line 57 of file G4BetaDecayCorrections.cc.

58{
59 // Calculate the relativistic Fermi function. Argument W is the
60 // total electron energy in units of electron mass.
61
62 G4double Wprime;
63 if (Z < 0) {
64 Wprime = W + V0;
65 } else {
66 Wprime = W - V0;
67// if (Wprime < 1.) Wprime = W;
68 if (Wprime <= 1.00001) Wprime = 1.00001;
69 }
70
71 G4double p_e = std::sqrt(Wprime*Wprime - 1.);
72 G4double eta = alphaZ*Wprime/p_e;
73 G4double epieta = std::exp(pi*eta);
74 G4double realGamma = Gamma(2.*gamma0+1);
75 G4double mod2Gamma = ModSquared(gamma0, eta);
76
77 // Fermi function
78 G4double factor1 = 2*(1+gamma0)*mod2Gamma/realGamma/realGamma;
79 G4double factor2 = epieta*std::pow(2*p_e*Rnuc, 2*(gamma0-1) );
80
81 // Electron screening factor
82 G4double factor3 = (Wprime/W)*std::sqrt( (Wprime*Wprime - 1.)/(W*W - 1.) );
83
84 return factor1*factor2*factor3;
85}
double G4double
Definition: G4Types.hh:64

Referenced by G4RadioactiveDecay::LoadDecayTable().

◆ ShapeFactor()

G4double G4BetaDecayCorrections::ShapeFactor ( const G4BetaDecayType bdt,
const G4double p_e,
const G4double e_nu 
)

Definition at line 126 of file G4BetaDecayCorrections.cc.

128{
129 G4double twoPR = 2.*p_e*Rnuc;
130 G4double factor(1.);
131
132 switch (bdt)
133 {
134 case (allowed) :
135 break;
136
137 case (firstForbidden) :
138 {
139 // Parameters for 1st forbidden shape determined from 210Bi data
140 // Not valid for other 1st forbidden nuclei
141 G4double c1 = 0.578;
142 G4double c2 = 28.466;
143 G4double c3 = -0.658;
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
150 case (uniqueFirstForbidden) :
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
164 case (uniqueSecondForbidden) :
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
188 case (uniqueThirdForbidden) :
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}
@ uniqueFirstForbidden
@ uniqueThirdForbidden
@ allowed
@ uniqueSecondForbidden
@ firstForbidden
@ JustWarning
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41

Referenced by G4RadioactiveDecay::LoadDecayTable().


The documentation for this class was generated from the following files: