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;
96 current+=std::abs(current-last)/2.;
98 if(current>190*
MeV)
throw G4HadronicException(__FILE__, __LINE__,
"Madland-Nix Spectrum has not converged in sampling");
103 current-=std::abs(current-last)/2.;
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));
static G4Pow * GetInstance()
G4double theAvarageKineticPerNucleonForHeavyFragments
G4double Sample(G4double anEnergy)
G4double E1(G4double aValue)
G4double theAvarageKineticPerNucleonForLightFragments
G4double Gamma25(G4double aValue)
G4GLOB_DLL std::ostream G4cout
double A(double temperature)
G4double GetY(G4double x)
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double Madland(G4double aSecEnergy, G4double tm)
G4double Gamma15(G4double aValue)
G4ParticleHPVector theMaxTemp
G4double GIntegral(G4double tm, G4double anEnergy, G4double aMean)
G4double FissionIntegral(G4double tm, G4double anEnergy)
G4double powA(G4double A, G4double y) const
static const G4double alpha