Geant4
10.01
|
G4FPYSamplingOps performs all the uniform and Gaussian distribution sampling operations. More...
#include <G4FPYSamplingOps.hh>
Public Member Functions | |
G4FPYSamplingOps (void) | |
Default constructor. More... | |
G4FPYSamplingOps (G4int Verbosity) | |
Overloaded constructor. More... | |
G4int | G4SampleIntegerGaussian (G4double Mean, G4double StdDev) |
Returns an integer value taken from a Gaussian distribution. More... | |
G4int | G4SampleIntegerGaussian (G4double Mean, G4double StdDev, G4FFGEnumerations::GaussianRange Range) |
Returns an integer value taken from a Gaussian distribution about Mean and with a standard deviation of StdDev . More... | |
G4double | G4SampleGaussian (G4double Mean, G4double StdDev) |
Returns a double value taken from a Gaussian distribution about Mean and with a standard deviation of StdDev . More... | |
G4double | G4SampleGaussian (G4double Mean, G4double StdDev, G4FFGEnumerations::GaussianRange Range) |
Returns a double value taken from a Gaussian distribution about Mean and with a standard deviation of StdDev . More... | |
G4double | G4SampleUniform (void) |
Returns a double value evenly distributed in the range (0, 1]. More... | |
G4double | G4SampleUniform (G4double Lower, G4double Upper) |
Returns a double value evenly distributed in the range (Lower , Upper ]. More... | |
G4double | G4SampleWatt (G4int WhatIsotope, G4FFGEnumerations::FissionCause WhatCause, G4double WhatEnergy) |
Samples the Watt fission spectrum for the selected isotope, using an algorithm adopted from Ref. More... | |
void | G4SetVerbosity (G4int WhatVerbosity) |
Sets the verbosity levels. More... | |
~G4FPYSamplingOps (void) | |
Default deconstructor. More... | |
Protected Member Functions | |
void | Initialize (void) |
Initialize is a common function called by all constructors. More... | |
G4bool | CheckAndSetParameters (void) |
Check to see if the user requested parameters have already been calculated. More... | |
void | EvaluateWattConstants (void) |
Evaluates the constants that are required for the Watt fission spectrum sampling. More... | |
G4double | SampleGaussian (void) |
Samples a Gaussian distribution defined by the internal class variables NewMean_ and NewStdDev_. More... | |
void | ShiftParameters (G4FFGEnumerations::GaussianReturnType Type) |
Sets the mean and standard deviation of the Gaussian distribution sampled by this class when POSITIVE values are requested. More... | |
Protected Attributes | |
G4double | Mean_ |
Mean for sampling a Gaussian distribution. More... | |
G4double | StdDev_ |
Standard deviation for sampling a GaussianDistribution. More... | |
G4ShiftedGaussian * | ShiftedGaussianValues_ |
Structure chain that contains the all the previous values used for sampling a Gaussian distribution. More... | |
G4int | Verbosity_ |
Verbosity level. More... | |
WattSpectrumConstants * | WattConstants_ |
Structure that contains the values for sampling the Watt fission spectrum. More... | |
CLHEP::HepRandomEngine * | RandomEngine_ |
Pointer to the CLHEP random number generator. More... | |
G4bool | NextGaussianIsStoredInMemory_ |
Declares whether the second paired random number has been already returned. More... | |
G4double | GaussianOne_ |
Contains the first of the two paired random numbers from the Gaussian distribution sampling. More... | |
G4double | GaussianTwo_ |
Contains the second of the two paired random numbers from the Gaussian distribution sampling. More... | |
G4double | Tolerance_ |
Defines the tolerance that ShiftParameters() must match. More... | |
G4FPYSamplingOps performs all the uniform and Gaussian distribution sampling operations.
Definition at line 52 of file G4FPYSamplingOps.hh.
G4FPYSamplingOps::G4FPYSamplingOps | ( | void | ) |
Default constructor.
Definition at line 47 of file G4FPYSamplingOps.cc.
References Initialize(), G4FFGDefaultValues::Verbosity, and Verbosity_.
G4FPYSamplingOps::G4FPYSamplingOps | ( | G4int | Verbosity | ) |
Overloaded constructor.
Verbosity:
Verbosity levelDefinition at line 57 of file G4FPYSamplingOps.cc.
References Initialize(), and Verbosity_.
G4FPYSamplingOps::~G4FPYSamplingOps | ( | void | ) |
Default deconstructor.
Definition at line 661 of file G4FPYSamplingOps.cc.
References G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, ShiftedGaussianValues_, and WattConstants_.
|
protected |
Check to see if the user requested parameters have already been calculated.
If they have, it recalls the stored parameters and sets them as the current values.
Definition at line 331 of file G4FPYSamplingOps.cc.
References FALSE, G4FFG_SAMPLING_FUNCTIONENTER__, G4FFG_SAMPLING_FUNCTIONLEAVE__, G4ShiftedGaussian::G4FindShiftedMean(), Mean_, ShiftedGaussianValues_, StdDev_, and TRUE.
Referenced by ShiftParameters().
|
protected |
Evaluates the constants that are required for the Watt fission spectrum sampling.
Definition at line 349 of file G4FPYSamplingOps.cc.
References A, WattSpectrumConstants::B, WattSpectrumConstants::Cause, WattSpectrumConstants::Energy, G4Exception(), G4FFG_SAMPLING_FUNCTIONENTER__, G4FFG_SAMPLING_FUNCTIONLEAVE__, G4FFGEnumerations::GAMMA_INDUCED, IncidentEnergyBins, JustWarning, WattSpectrumConstants::L, WattSpectrumConstants::M, MeV, G4FFGEnumerations::NEUTRON_INDUCED, NeutronInducedWattConstants, NeutronInducedWattIsotopesIndex, WattSpectrumConstants::Product, G4FFGEnumerations::PROTON_INDUCED, RunMustBeAborted, G4FFGEnumerations::SPONTANEOUS, SpontaneousWattConstants, SpontaneousWattIsotopesIndex, G4FFGDefaultValues::ThermalNeutronEnergy, and WattConstants_.
Referenced by G4SampleWatt().
Returns a double value taken from a Gaussian distribution about Mean
and with a standard deviation of StdDev
.
Mean:
Mean about which the Gaussian distribution will be sampledStdDev:
Standard deviation of the Gaussian distribution. 68.3% of the values will lie within the first standard deviation, 95.4% within the second standard deviation, etc...Definition at line 89 of file G4FPYSamplingOps.cc.
References FALSE, G4FFG_SAMPLING_FUNCTIONENTER__, G4FFG_SAMPLING_FUNCTIONLEAVE__, Mean_, NextGaussianIsStoredInMemory_, SampleGaussian(), StdDev_, and TRUE.
Referenced by G4FissionProductYieldDist::G4GetFission(), G4SampleGaussian(), and G4FissionProductYieldDist::SampleAlphaEnergies().
G4double G4FPYSamplingOps::G4SampleGaussian | ( | G4double | Mean, |
G4double | StdDev, | ||
G4FFGEnumerations::GaussianRange | Range | ||
) |
Returns a double value taken from a Gaussian distribution about Mean
and with a standard deviation of StdDev
.
Mean:
Mean about which the Gaussian distribution will be sampledStdDev:
Standard deviation of the Gaussian distribution. 68.3% of the values will lie within the first standard deviation, 95.4% within the second standard deviation, etc...Range:
POSITIVE
or ALL
Definition at line 112 of file G4FPYSamplingOps.cc.
References G4FFGEnumerations::ALL, G4FFGEnumerations::DOUBLE, G4Exception(), G4FFG_SAMPLING_FUNCTIONENTER__, G4FFG_SAMPLING_FUNCTIONLEAVE__, G4SampleGaussian(), JustWarning, Mean_, SampleGaussian(), ShiftParameters(), StdDev_, and TRUE.
Returns an integer value taken from a Gaussian distribution.
This overloaded version assumes that the range is not restricted to positive values only.
Mean:
Mean about which the Gaussian distribution will be sampledStdDev:
Standard deviation of the Gaussian distribution. 68.3% of the values will lie within the first standard deviation, 95.4% within the second standard deviation, etc...Definition at line 165 of file G4FPYSamplingOps.cc.
References FALSE, G4FFG_SAMPLING_FUNCTIONENTER__, G4FFG_SAMPLING_FUNCTIONLEAVE__, Mean_, NextGaussianIsStoredInMemory_, SampleGaussian(), StdDev_, and TRUE.
Referenced by G4SampleIntegerGaussian(), G4FissionProductYieldDist::GenerateAlphas(), and G4FissionProductYieldDist::GenerateNeutrons().
G4int G4FPYSamplingOps::G4SampleIntegerGaussian | ( | G4double | Mean, |
G4double | StdDev, | ||
G4FFGEnumerations::GaussianRange | Range | ||
) |
Returns an integer value taken from a Gaussian distribution about Mean
and with a standard deviation of StdDev
.
Mean:
Mean about which the Gaussian distribution will be sampledStdDev:
Standard deviation of the Gaussian distribution. 68.3% of the values will lie within the first standard deviation, 95.4% within the second standard deviation, etc...Range:
POSITIVE
or ALL
Definition at line 189 of file G4FPYSamplingOps.cc.
References G4FFGEnumerations::ALL, G4FFG_SAMPLING_FUNCTIONENTER__, G4FFG_SAMPLING_FUNCTIONLEAVE__, G4SampleIntegerGaussian(), G4FFGEnumerations::INT, Mean_, SampleGaussian(), ShiftParameters(), StdDev_, and TRUE.
G4double G4FPYSamplingOps::G4SampleUniform | ( | void | ) |
Returns a double value evenly distributed in the range (0, 1].
Definition at line 254 of file G4FPYSamplingOps.cc.
References G4FFG_SAMPLING_FUNCTIONENTER__, G4FFG_SAMPLING_FUNCTIONLEAVE__, and RandomEngine_.
Referenced by G4FissionProductYieldDist::G4GetFission(), G4FissionProductYieldDist::G4GetFissionProduct(), G4SampleUniform(), G4SampleWatt(), G4FissionProductYieldDist::GenerateAlphas(), G4FPYNormalFragmentDist::GetFissionProduct(), G4FPYBiasedLightFragmentDist::GetFissionProduct(), and SampleGaussian().
Returns a double value evenly distributed in the range (Lower
, Upper
].
Lower:
Lower bounds of the distributionUpper:
Upper bounds of the distributionDefinition at line 265 of file G4FPYSamplingOps.cc.
References G4FFG_SAMPLING_FUNCTIONENTER__, G4FFG_SAMPLING_FUNCTIONLEAVE__, and G4SampleUniform().
G4double G4FPYSamplingOps::G4SampleWatt | ( | G4int | WhatIsotope, |
G4FFGEnumerations::FissionCause | WhatCause, | ||
G4double | WhatEnergy | ||
) |
Samples the Watt fission spectrum for the selected isotope, using an algorithm adopted from Ref.
1
WhatIsotope:
The isotope that is to be sampledWhatCause:
The cause of the isotope to be sampledWhatEnergy:
The energy, in MeV of the incident particleDefinition at line 281 of file G4FPYSamplingOps.cc.
References WattSpectrumConstants::B, WattSpectrumConstants::Cause, WattSpectrumConstants::Energy, EvaluateWattConstants(), G4FFG_SAMPLING_FUNCTIONENTER__, G4FFG_SAMPLING_FUNCTIONLEAVE__, G4SampleUniform(), WattSpectrumConstants::L, WattSpectrumConstants::M, WattSpectrumConstants::Product, and WattConstants_.
Referenced by G4FissionProductYieldDist::SampleNeutronEnergies().
void G4FPYSamplingOps::G4SetVerbosity | ( | G4int | WhatVerbosity | ) |
Sets the verbosity levels.
WhichVerbosity:
Combination of levelsSILENT:
All verbose output is repressedUPDATES:
Only high-level internal changes are reportedDAUGHTER_INFO:
Displays information about daughter product samplingNEUTRON_INFO:
Displays information about neutron samplingGAMMA_INFO:
Displays information about gamma samplingALPHA_INFO:
Displays information about alpha samplingMOMENTUM_INFO:
Displays information about momentum balancingEXTRAPOLATION_INTERPOLATION_INFO:
Displays information about any data extrapolation or interpolation that occursDEBUG:
Reports program flow as it steps through functionsPRINT_ALL:
Displays any and all output Definition at line 319 of file G4FPYSamplingOps.cc.
References G4FFG_SAMPLING_FUNCTIONENTER__, G4FFG_SAMPLING_FUNCTIONLEAVE__, G4ShiftedGaussian::G4SetVerbosity(), ShiftedGaussianValues_, and Verbosity_.
Referenced by G4FissionProductYieldDist::G4SetVerbosity().
|
protected |
Initialize is a common function called by all constructors.
Definition at line 67 of file G4FPYSamplingOps.cc.
References FALSE, G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, GaussianOne_, GaussianTwo_, Mean_, NextGaussianIsStoredInMemory_, WattSpectrumConstants::Product, RandomEngine_, ShiftedGaussianValues_, StdDev_, Tolerance_, and WattConstants_.
Referenced by G4FPYSamplingOps().
|
protected |
Samples a Gaussian distribution defined by the internal class variables NewMean_ and NewStdDev_.
Definition at line 480 of file G4FPYSamplingOps.cc.
References FALSE, G4FFG_SAMPLING_FUNCTIONENTER__, G4FFG_SAMPLING_FUNCTIONLEAVE__, G4SampleUniform(), GaussianOne_, GaussianTwo_, Mean_, NextGaussianIsStoredInMemory_, StdDev_, and TRUE.
Referenced by G4SampleGaussian(), and G4SampleIntegerGaussian().
|
protected |
Sets the mean and standard deviation of the Gaussian distribution sampled by this class when POSITIVE
values are requested.
ShiftMean() performs two different operations based on the requested data type.
INTEGER:
Iteratively searches for an adjusted mean that produces the same result as the mean requested by the implementor. In this instance the standard deviation is not adjusted.DOUBLE:
Adjusts the standard deviation of the Gaussian distribution so that the first seven standard deviations occur are all positive. The chance that a negative value will result using this method is 2.56E-12 Definition at line 517 of file G4FPYSamplingOps.cc.
References CheckAndSetParameters(), FALSE, G4FFG_SAMPLING_FUNCTIONENTER__, G4FFG_SAMPLING_FUNCTIONLEAVE__, G4ShiftedGaussian::G4InsertShiftedMean(), G4FFGEnumerations::INT, Mean_, NextGaussianIsStoredInMemory_, ShiftedGaussianValues_, StdDev_, Tolerance_, and TRUE.
Referenced by G4SampleGaussian(), and G4SampleIntegerGaussian().
|
protected |
Contains the first of the two paired random numbers from the Gaussian distribution sampling.
Definition at line 203 of file G4FPYSamplingOps.hh.
Referenced by Initialize(), and SampleGaussian().
|
protected |
Contains the second of the two paired random numbers from the Gaussian distribution sampling.
Definition at line 207 of file G4FPYSamplingOps.hh.
Referenced by Initialize(), and SampleGaussian().
|
protected |
Mean for sampling a Gaussian distribution.
Definition at line 177 of file G4FPYSamplingOps.hh.
Referenced by CheckAndSetParameters(), G4SampleGaussian(), G4SampleIntegerGaussian(), Initialize(), SampleGaussian(), and ShiftParameters().
|
protected |
Declares whether the second paired random number has been already returned.
Definition at line 199 of file G4FPYSamplingOps.hh.
Referenced by G4SampleGaussian(), G4SampleIntegerGaussian(), Initialize(), SampleGaussian(), and ShiftParameters().
|
protected |
Pointer to the CLHEP random number generator.
Definition at line 193 of file G4FPYSamplingOps.hh.
Referenced by G4SampleUniform(), and Initialize().
|
protected |
Structure chain that contains the all the previous values used for sampling a Gaussian distribution.
Definition at line 183 of file G4FPYSamplingOps.hh.
Referenced by CheckAndSetParameters(), G4SetVerbosity(), Initialize(), ShiftParameters(), and ~G4FPYSamplingOps().
|
protected |
Standard deviation for sampling a GaussianDistribution.
Definition at line 179 of file G4FPYSamplingOps.hh.
Referenced by CheckAndSetParameters(), G4SampleGaussian(), G4SampleIntegerGaussian(), Initialize(), SampleGaussian(), and ShiftParameters().
|
protected |
Defines the tolerance that ShiftParameters() must match.
Definition at line 209 of file G4FPYSamplingOps.hh.
Referenced by Initialize(), and ShiftParameters().
|
protected |
Verbosity level.
Definition at line 185 of file G4FPYSamplingOps.hh.
Referenced by G4FPYSamplingOps(), and G4SetVerbosity().
|
protected |
Structure that contains the values for sampling the Watt fission spectrum.
Definition at line 189 of file G4FPYSamplingOps.hh.
Referenced by EvaluateWattConstants(), G4SampleWatt(), Initialize(), and ~G4FPYSamplingOps().