39 EF = theAvarageKineticPerNucleonForLightFragments/eV;
40 G4double lightU1 = std::sqrt(energy)-std::sqrt(EF);
41 lightU1 *= lightU1/tm;
42 G4double lightU2 = std::sqrt(energy)+std::sqrt(EF);
43 lightU2 *= lightU2/tm;
45 if(theAvarageKineticPerNucleonForLightFragments>1*eV)
47 lightTerm = std::pow(lightU2, 1.5)*E1(lightU2);
48 lightTerm -= std::pow(lightU1, 1.5)*E1(lightU1);
49 lightTerm += Gamma15(lightU2)-Gamma15(lightU1);
50 lightTerm /= 3.*std::sqrt(tm*EF);
53 EF = theAvarageKineticPerNucleonForHeavyFragments/eV;
54 G4double heavyU1 = std::sqrt(energy)-std::sqrt(EF);
55 heavyU1 *= heavyU1/tm;
56 G4double heavyU2 = std::sqrt(energy)+std::sqrt(EF);
57 heavyU2 *= heavyU2/tm;
59 if(theAvarageKineticPerNucleonForHeavyFragments> 1*eV)
61 heavyTerm = std::pow(heavyU2, 1.5)*E1(heavyU2);
62 heavyTerm -= std::pow(heavyU1, 1.5)*E1(heavyU1);
63 heavyTerm += Gamma15(heavyU2)-Gamma15(heavyU1);
64 heavyTerm /= 3.*std::sqrt(tm*EF);
67 result = 0.5*(lightTerm+heavyTerm);
75 G4double last=0, buff, current = 100*MeV;
83 newValue = FissionIntegral(tm, current);
87 current+=std::abs(current-last)/2.;
89 if(current>190*MeV)
throw G4HadronicException(__FILE__, __LINE__,
"Madland-Nix Spectrum has not converged in sampling");
94 current-=std::abs(current-last)/2.;
98 while (std::abs(oldValue-newValue)>precision*newValue);
102 G4double G4NeutronHPMadlandNixSpectrum::
105 if(aMean<1*eV)
return 0;
113 G4double B = (sb+beta)*(sb+beta)/tm;
115 G4double Bp = (sb-beta)*(sb-beta)/tm;
124 (0.4*alpha2*std::pow(B,2.5) - 0.5*alphabeta*B*B)*E1(B) -
125 (0.4*alpha2*std::pow(A,2.5) - 0.5*alphabeta*A*A)*E1(A)
129 (0.4*alpha2*std::pow(Bp,2.5) + 0.5*alphabeta*Bp*Bp)*E1(Bp) -
130 (0.4*alpha2*std::pow(Ap,2.5) + 0.5*alphabeta*Ap*Ap)*E1(Ap)
134 (alpha2*B-2*alphabeta*std::sqrt(B))*Gamma15(B) -
135 (alpha2*A-2*alphabeta*std::sqrt(A))*Gamma15(A)
139 (alpha2*Bp-2*alphabeta*std::sqrt(Bp))*Gamma15(Bp) -
140 (alpha2*Ap-2*alphabeta*std::sqrt(Ap))*Gamma15(Ap)
142 - 0.6*alpha2*(Gamma25(B) - Gamma25(A) - Gamma25(Bp) + Gamma25(Ap))
143 - 1.5*alphabeta*(std::exp(-B)*(1+B) - std::exp(-A)*(1+A) + std::exp(-Bp)*(1+Bp) + std::exp(-Ap)*(1+Ap)) ;
149 (0.4*alpha2*std::pow(B,2.5) - 0.5*alphabeta*B*B)*E1(B) -
150 (0.4*alpha2*std::pow(A,2.5) - 0.5*alphabeta*A*A)*E1(A)
154 (0.4*alpha2*std::pow(Bp,2.5) + 0.5*alphabeta*Bp*Bp)*E1(Bp) -
155 (0.4*alpha2*std::pow(Ap,2.5) + 0.5*alphabeta*Ap*Ap)*E1(Ap)
159 (alpha2*B-2*alphabeta*std::sqrt(B))*Gamma15(B) -
160 (alpha2*A-2*alphabeta*std::sqrt(A))*Gamma15(A)
164 (alpha2*Bp+2*alphabeta*std::sqrt(Bp))*Gamma15(Bp) -
165 (alpha2*Ap+2*alphabeta*std::sqrt(Ap))*Gamma15(Ap)
167 result -= 0.6*alpha2*(Gamma25(B) - Gamma25(A) - Gamma25(Bp) + Gamma25(Ap));
168 result -= 1.5*alphabeta*(std::exp(-B)*(1+B) - std::exp(-A)*(1+A) + std::exp(-Bp)*(1+Bp) + std::exp(-Ap)*(1+Ap) - 2.) ;
170 result = result / (3.*std::sqrt(tm*EF));
G4double Sample(G4double anEnergy)
G4double GetY(G4double x)