99 if(ParametersChanged ==
TRUE)
133 if(ParametersChanged ==
TRUE)
137 std::ostringstream Temp;
138 Temp <<
"Mean value of " << Mean <<
" out of range";
139 G4Exception(
"G4FPYGaussianOps::G4SampleIntegerGaussian()",
142 "A value of '0' will be used instead.");
175 if(ParametersChanged ==
TRUE)
208 std::ostringstream Temp;
220 if(Mean / StdDev < 2)
233 if(ParametersChanged ==
TRUE)
249 }
while (RandInt < 0);
274 G4double Difference = Upper - Lower;
311 G4int icounter_max=1024;
316 if ( icounter > icounter_max ) {
317 G4cout <<
"Loop-counter exceeded the threshold value at " << __LINE__ <<
"th line of " << __FILE__ <<
"." <<
G4endl;
366 G4int IsotopeIndex = 0;
406 "Incident neutron energy above 14 MeV requested.",
408 "Using Watt fission constants for 14 Mev.");
414 G4int EnergyIndex = 0;
416 G4double RangeDifference, ConstantDifference;
424 if(EnergyDifference != 0)
426 std::ostringstream Temp;
427 Temp <<
"Incident neutron energy of ";
429 Temp <<
"explicitly listed in the data tables";
445 [EnergyIndex - 1][0];
446 A = (EnergyDifference / RangeDifference) * ConstantDifference +
448 [EnergyIndex - 1][0];
454 [EnergyIndex - 1][1];
456 (EnergyDifference / RangeDifference) * ConstantDifference +
458 [EnergyIndex - 1][1];
464 G4String Temp =
"Watt fission spectra data not available for ";
467 Temp +=
"proton induced fission.";
470 Temp +=
"gamma induced fission.";
473 Temp +=
"!Warning! unknown cause.";
478 "Fission events will not be sampled in this run.");
512 }
while (Radius > 1.0);
515 MappingFactor = std::sqrt(-2.0*
G4Log(Radius)/Radius) *
StdDev_;
556 G4double ErfContainer, AdjustedErfContainer, Container;
565 G4bool ToleranceCheck =
false;
577 G4int icounter_max=1024;
581 if ( icounter > icounter_max ) {
582 G4cout <<
"Loop-counter exceeded the threshold value at " << __LINE__ <<
"th line of " << __FILE__ <<
"." <<
G4endl;
587 AdjustedErfContainer = 0;
590 for(
G4int i = 0; i <= UpperLimit; i++)
593 LowErf = ((AdjMean - i) / Normalization);
594 HighErf = ((AdjMean - (i + 1.0)) / Normalization);
606 Container = (erf(HighErf) - erf(LowErf))/2.0;
608 }
else if (HighErf < 0)
616 Container = (erf(HighErf) + erf(LowErf))/2.0;
624 Container = (erf(LowErf) - erf(HighErf))/2.0;
630 if ( Container != Container) Container = 0;
634 ErfContainer += Container;
635 AdjustedErfContainer += Container * i;
639 Container = AdjustedErfContainer / ErfContainer;
643 if(ToleranceCheck ==
TRUE)
649 if(HalfDelta ==
TRUE)
655 if(Container >
Mean_)
G4double Y(G4double density)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
#define G4FFG_FUNCTIONLEAVE__
#define G4FFG_FUNCTIONENTER__
#define G4FFG_SAMPLING_FUNCTIONENTER__
#define G4FFG_SAMPLING_FUNCTIONLEAVE__
G4double G4Log(G4double x)
static const G4int NeutronInducedWattIsotopesIndex[]
static const G4double IncidentEnergyBins[]
static const G4int SpontaneousWattIsotopesIndex[]
static const G4double NeutronInducedWattConstants[][3][2]
static const G4double SpontaneousWattConstants[][2]
G4GLOB_DLL std::ostream G4cout
static double erf(double x)
WattSpectrumConstants * WattConstants_
G4double G4SampleWatt(G4int WhatIsotope, G4FFGEnumerations::FissionCause WhatCause, G4double WhatEnergy)
G4bool NextGaussianIsStoredInMemory_
G4double SampleGaussian(void)
G4ShiftedGaussian * ShiftedGaussianValues_
CLHEP::HepRandomEngine * RandomEngine_
G4double G4SampleGaussian(G4double Mean, G4double StdDev)
G4int G4SampleIntegerGaussian(G4double Mean, G4double StdDev)
void ShiftParameters(G4FFGEnumerations::GaussianReturnType Type)
void G4SetVerbosity(G4int WhatVerbosity)
G4bool CheckAndSetParameters(void)
void EvaluateWattConstants(void)
G4double G4SampleUniform(void)
static G4Pow * GetInstance()
G4double powA(G4double A, G4double y) const
void G4InsertShiftedMean(G4double ShiftedMean, G4double RequestedMean, G4double RequestedStdDev)
G4double G4FindShiftedMean(G4double RequestedMean, G4double RequestedStdDev)
void G4SetVerbosity(G4int WhatVerbosity)
static constexpr double MeV
static const G4double ThermalNeutronEnergy
static const G4FFGEnumerations::Verbosity Verbosity
G4FFGEnumerations::FissionCause Cause