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));
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double Sample(G4double anEnergy)
static constexpr double MeV
G4double Madland(G4double aSecEnergy, G4double tm)
G4double E1(G4double aValue)
G4double FissionIntegral(G4double tm, G4double anEnergy)
G4double Gamma25(G4double aValue)
G4double GetY(G4double x)
static G4Pow * GetInstance()
G4double theAvarageKineticPerNucleonForLightFragments
G4double powA(G4double A, G4double y) const
static const G4double alpha
double A(double temperature)
static constexpr double eV
G4double G4ParticleHPJENDLHEData::G4double result
G4ParticleHPVector theMaxTemp
G4GLOB_DLL std::ostream G4cout
double B(double temperature)
G4double Gamma15(G4double aValue)
G4double theAvarageKineticPerNucleonForHeavyFragments
G4double GIntegral(G4double tm, G4double anEnergy, G4double aMean)