Geant4  10.01.p02
G4FPYSamplingOps.hh
Go to the documentation of this file.
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 /*
27  * File: G4FPYSamplingOps.hh
28  * Author: B. Wendt (wendbryc@isu.edu)
29  *
30  * Created on June 30, 2011, 11:10 AM
31  */
32 
33 /* * * * * * * * * * * * * * * * References * * * * * * * * * * * * * * * *
34  * *
35  * 1. "Sampling ENDL Watt Fission Spectra, D. E. Cullen, LLNL, April, 2004 *
36  * *
37  * * * * * * * * * * * * * * * * References * * * * * * * * * * * * * * * */
38 
39 #ifndef G4FPYSAMPLINGOPS_HH
40 #define G4FPYSAMPLINGOPS_HH
41 
42 #include "Randomize.hh"
43 #include "globals.hh"
44 
45 #include "G4FFGEnumerations.hh"
46 #include "G4ShiftedGaussian.hh"
48 
53 {
54 public:
55 // Constructor definition
60  G4FPYSamplingOps( void );
67 protected:
69  void Initialize( void );
70 
71 public:
72 // Functions
85  G4double StdDev );
98  G4double StdDev,
111  G4double StdDev );
124  G4double StdDev,
130  G4double G4SampleUniform( void );
140  G4double Upper );
152  G4double G4SampleWatt( G4int WhatIsotope,
154  G4double WhatEnergy );
171  void G4SetVerbosity( G4int WhatVerbosity );
172 
173 protected:
174 // Variables
175  // Class descriptor variables
190 
191  // Pointers to external classes
193  CLHEP::HepRandomEngine* RandomEngine_;
194 
195  // Internal variables for use with sampling a Gaussian distribution.
210 // Functions
219  void EvaluateWattConstants( void );
223  G4double SampleGaussian( void );
237 
238 // Destructor function(s)
239 public:
241  ~G4FPYSamplingOps( void );
242 };
243 
244 #endif /* G4FPYSAMPLINGOPS_HH */
245 
G4double G4SampleGaussian(G4double Mean, G4double StdDev)
Returns a double value taken from a Gaussian distribution about Mean and with a standard deviation of...
G4double SampleGaussian(void)
Samples a Gaussian distribution defined by the internal class variables NewMean_ and NewStdDev_...
~G4FPYSamplingOps(void)
Default deconstructor.
void EvaluateWattConstants(void)
Evaluates the constants that are required for the Watt fission spectrum sampling. ...
G4double G4SampleWatt(G4int WhatIsotope, G4FFGEnumerations::FissionCause WhatCause, G4double WhatEnergy)
Samples the Watt fission spectrum for the selected isotope, using an algorithm adopted from Ref...
WattSpectrumConstants contains constants and other variables for use in sampling the Watt fission spe...
G4double G4SampleUniform(void)
Returns a double value evenly distributed in the range (0, 1].
G4double StdDev_
Standard deviation for sampling a GaussianDistribution.
G4ShiftedGaussian * ShiftedGaussianValues_
Structure chain that contains the all the previous values used for sampling a Gaussian distribution...
int G4int
Definition: G4Types.hh:78
FissionCause
Causes of fission.
Verbosity
These are the verbosity levels.
WattSpectrumConstants * WattConstants_
Structure that contains the values for sampling the Watt fission spectrum.
GaussianReturnType
Sample a discretized Gaussian distribution (INT) or continuous (DOUBLE)
G4double GaussianOne_
Contains the first of the two paired random numbers from the Gaussian distribution sampling...
bool G4bool
Definition: G4Types.hh:79
void ShiftParameters(G4FFGEnumerations::GaussianReturnType Type)
Sets the mean and standard deviation of the Gaussian distribution sampled by this class when POSITIVE...
G4int Verbosity_
Verbosity level.
G4double GaussianTwo_
Contains the second of the two paired random numbers from the Gaussian distribution sampling...
void Initialize(void)
Initialize is a common function called by all constructors.
GaussianRange
Truncate the Gaussian distribution at 0 (POSITIVE) or sample all values (ALL)
CLHEP::HepRandomEngine * RandomEngine_
Pointer to the CLHEP random number generator.
G4double Tolerance_
Defines the tolerance that ShiftParameters() must match.
G4double Mean_
Mean for sampling a Gaussian distribution.
G4FPYSamplingOps performs all the uniform and Gaussian distribution sampling operations.
G4ShiftedGaussian is a class for storing the shifted values used for sampling a Gaussian distribution...
double G4double
Definition: G4Types.hh:76
void G4SetVerbosity(G4int WhatVerbosity)
Sets the verbosity levels.
G4FPYSamplingOps(void)
Default constructor.
G4bool CheckAndSetParameters(void)
Check to see if the user requested parameters have already been calculated.
G4bool NextGaussianIsStoredInMemory_
Declares whether the second paired random number has been already returned.
G4int G4SampleIntegerGaussian(G4double Mean, G4double StdDev)
Returns an integer value taken from a Gaussian distribution.