42 G4double lightU1 = std::sqrt(energy)-std::sqrt(EF);
43 lightU1 *= lightU1/
tm;
44 G4double lightU2 = std::sqrt(energy)+std::sqrt(EF);
45 lightU2 *= lightU2/
tm;
49 lightTerm = Pow->
powA(lightU2, 1.5)*
E1(lightU2);
50 lightTerm -= Pow->
powA(lightU1, 1.5)*
E1(lightU1);
52 lightTerm /= 3.*std::sqrt(tm*EF);
56 G4double heavyU1 = std::sqrt(energy)-std::sqrt(EF);
57 heavyU1 *= heavyU1/
tm;
58 G4double heavyU2 = std::sqrt(energy)+std::sqrt(EF);
59 heavyU2 *= heavyU2/
tm;
63 heavyTerm = Pow->
powA(heavyU2, 1.5)*
E1(heavyU2);
64 heavyTerm -= Pow->
powA(heavyU1, 1.5)*
E1(heavyU1);
66 heavyTerm /= 3.*std::sqrt(tm*EF);
69 result = 0.5*(lightTerm+heavyTerm);
83 G4int icounter_max=1024;
87 if ( icounter > icounter_max ) {
88 G4cout <<
"Loop-counter exceeded the threshold value at " << __LINE__ <<
"th line of " << __FILE__ <<
"." <<
G4endl;
98 if(current>190*
MeV)
throw G4HadronicException(__FILE__, __LINE__,
"Madland-Nix Spectrum has not converged in sampling");
107 while (
std::abs(oldValue-newValue)>precision*newValue);
115 if(aMean<1*
eV)
return 0;
134 (0.4*alpha2*Pow->
powA(B,2.5) - 0.5*alphabeta*B*
B)*
E1(B) -
135 (0.4*alpha2*Pow->
powA(A,2.5) - 0.5*alphabeta*A*
A)*
E1(A)
139 (0.4*alpha2*Pow->
powA(Bp,2.5) + 0.5*alphabeta*Bp*Bp)*
E1(Bp) -
140 (0.4*alpha2*Pow->
powA(Ap,2.5) + 0.5*alphabeta*Ap*Ap)*
E1(Ap)
144 (alpha2*B-2*alphabeta*std::sqrt(B))*
Gamma15(B) -
145 (alpha2*A-2*alphabeta*std::sqrt(A))*
Gamma15(A)
149 (alpha2*Bp-2*alphabeta*std::sqrt(Bp))*
Gamma15(Bp) -
150 (alpha2*Ap-2*alphabeta*std::sqrt(Ap))*
Gamma15(Ap)
159 (0.4*alpha2*Pow->
powA(B,2.5) - 0.5*alphabeta*B*
B)*
E1(B) -
160 (0.4*alpha2*Pow->
powA(A,2.5) - 0.5*alphabeta*A*
A)*
E1(A)
164 (0.4*alpha2*Pow->
powA(Bp,2.5) + 0.5*alphabeta*Bp*Bp)*
E1(Bp) -
165 (0.4*alpha2*Pow->
powA(Ap,2.5) + 0.5*alphabeta*Ap*Ap)*
E1(Ap)
169 (alpha2*B-2*alphabeta*std::sqrt(B))*
Gamma15(B) -
170 (alpha2*A-2*alphabeta*std::sqrt(A))*
Gamma15(A)
174 (alpha2*Bp+2*alphabeta*std::sqrt(Bp))*
Gamma15(Bp) -
175 (alpha2*Ap+2*alphabeta*std::sqrt(Ap))*
Gamma15(Ap)
178 result -= 1.5*alphabeta*(
G4Exp(-B)*(1+
B) -
G4Exp(-A)*(1+
A) +
G4Exp(-Bp)*(1+Bp) +
G4Exp(-Ap)*(1+Ap) - 2.) ;
180 result = result / (3.*std::sqrt(tm*EF));