64 #define TWOPI 6.283185307
65 #define SQRT2 1.414213562
66 #define BSHIFT -0.43287
93 std::string errMsg =
"fission nubar out of range, nubar=" + o.str();
94 G4fissionerr(6,
"SmpTerrell", errMsg);
101 expo =
G4Exp(-temp2);
102 cshift = temp1 +
BSHIFT * WIDTH * expo/(1. - expo);
105 G4int icounter_max = 1024;
107 rw = std::sqrt(-
G4Log(fisslibrng()));
108 theta =
TWOPI * fisslibrng();
109 sampleg = width * rw * std::cos(theta) + cshift;
111 if ( icounter > icounter_max ) {
112 G4cout <<
"Loop-counter exceeded the threshold value at " << __LINE__ <<
"th line of " << __FILE__ <<
"." <<
G4endl;
115 }
while (sampleg < 0.0);
118 return std::floor(sampleg);
G4GLOB_DLL std::ostream G4cout
G4double G4Log(G4double x)
G4double G4Exp(G4double initial_x)
Exponential Function double precision.