Geant4  10.00.p02
G4FPYNormalFragmentDist.cc
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: G4FPYNormalFragmentDist.cc
28  * Author: B. Wendt (wendbryc@isu.edu)
29  *
30  * Created on July 26, 2011, 12:26 PM
31  */
32 
33 #include "G4Ions.hh"
34 #include "Randomize.hh"
35 #include "globals.hh"
36 
37 #include "G4FFGDebuggingMacros.hh"
38 #include "G4FFGEnumerations.hh"
41 
44  G4FFGEnumerations::MetaState WhichMetaState,
46  G4FFGEnumerations::YieldType WhichYieldType,
47  std::istringstream& dataFile)
48 : G4FissionProductYieldDist( WhichIsotope,
49  WhichMetaState,
50  WhichCause,
51  WhichYieldType,
52  dataFile)
53 {
54  // Initialize the class
55  Initialize();
56 }
57 
60  G4FFGEnumerations::MetaState WhichMetaState,
62  G4FFGEnumerations::YieldType WhichYieldType,
64  std::istringstream& dataFile)
65 : G4FissionProductYieldDist( WhichIsotope,
66  WhichMetaState,
67  WhichCause,
68  WhichYieldType,
69  Verbosity,
70  dataFile)
71 {
72  // Initialize the class
73  Initialize();
74 }
75 
77 Initialize( void )
78 {
80 
81  // Nothing here yet
82 
84 }
85 
88 {
90 
91  G4Ions* Particle;
92 
93  // Generate a (0, 1] random number and return the respective particle.
94  // The ENDF data tables lists 72172 as the largest fission fragment produced
95  // for any fission event. The maximum alpha production is 10 and the
96  // smallest fissile isotope is 90227. This means that if isotope 72172 were
97  // selected as the first daughter product, then at 10 alpha particles only
98  // 15 nucleons and -2 protons would remain for the second daughter product.
99  // Although the actual probability of this occurring is very small, or 0 in
100  // this case, a check should still be made to ensure that the second
101  // daughter product can be physically realized. This would prevent a
102  // situation such as this extreme example which results in a nucleus of 13
103  // neutrons and 2 anti-protons.
104  // This quick sanity check may become even more valid if the ENDF data
105  // tables are expanded in the future and include larger fission products.
106  do
107  {
109  } while(Particle->GetAtomicMass() > RemainingA_ + 1
110  || Particle->GetAtomicNumber() > RemainingZ_ + 1);
111 
113  return Particle;
114 }
115 
117 {
119 
120  // Empty - all the data elements to be deconstructed are removed by
121  // ~G4FissionProductYieldDist()
122 
124 }
MetaState
ENDF format provides for 3 isomers - 1 ground state and 2 meta states.
G4double G4SampleUniform(void)
Returns a double value evenly distributed in the range (0, 1].
G4Ions * FindParticle(G4double RandomParticle)
Returns the G4Ions definitions pointer for the particle whose probability segment contains the (0...
G4FPYSamplingOps * RandomEngine_
Pointer to the CLHEP library random engine.
YieldType
The two types of fission data available.
int G4int
Definition: G4Types.hh:78
G4int RemainingA_
Counter for the number of nucleons available to the fission event.
FissionCause
Causes of fission.
G4FissionProductYieldDist is the base class for storing all the fission data and generating fission e...
Verbosity
These are the verbosity levels.
Definition: G4Ions.hh:51
virtual G4Ions * GetFissionProduct(void)
Selects a fission product from the probability tree, limited by the number of nucleons available to t...
virtual ~G4FPYNormalFragmentDist(void)
Default deconstructor.
void Initialize(void)
Initialize is a common function called by all constructors.
G4FPYNormalFragmentDist(G4int WhichIsotope, G4FFGEnumerations::MetaState WhichMetaState, G4FFGEnumerations::FissionCause WhichCause, G4FFGEnumerations::YieldType WhichYieldType, std::istringstream &dataFile)
Default constructor.
#define G4FFG_FUNCTIONLEAVE__
#define G4FFG_FUNCTIONENTER__
G4int RemainingZ_
Counter for the number of protons available to the fission event.