Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 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 "G4FPYNormalFragmentDist.hh" 34 35 #include "G4FFGDebuggingMacros.hh" 36 #include "G4FFGEnumerations.hh" 37 #include "G4FissionProductYieldDist.hh" 38 #include "G4Ions.hh" 39 #include "Randomize.hh" 40 #include "globals.hh" 41 42 G4FPYNormalFragmentDist::G4FPYNormalFragmentDi 43 44 45 46 47 : G4FissionProductYieldDist(WhichIsotope, Wh 48 { 49 // Initialize the class 50 Initialize(); 51 } 52 53 G4FPYNormalFragmentDist::G4FPYNormalFragmentDi 54 55 56 57 58 : G4FissionProductYieldDist(WhichIsotope, Wh 59 dataFile) 60 { 61 // Initialize the class 62 Initialize(); 63 } 64 65 void G4FPYNormalFragmentDist::Initialize(){G4F 66 67 / 68 69 G 70 71 G4Ions* G4FPYNormalFragmentDist::GetFissionPro 72 { 73 G4FFG_FUNCTIONENTER__ 74 75 G4Ions* Particle = nullptr; 76 77 // Generate a (0, 1] random number and retur 78 // The ENDF data tables lists 72172 as the l 79 // for any fission event. The maximum alpha 80 // smallest fissile isotope is 90227. This m 81 // selected as the first daughter product, t 82 // 15 nucleons and -2 protons would remain f 83 // Although the actual probability of this o 84 // this case, a check should still be made t 85 // daughter product can be physically realiz 86 // situation such as this extreme example wh 87 // neutrons and 2 anti-protons. 88 // This quick sanity check may become even m 89 // tables are expanded in the future and inc 90 91 G4int icounter = 0; 92 G4int icounter_max = 1024; 93 do { 94 icounter++; 95 if (icounter > icounter_max) { 96 G4cout << "Loop-counter exceeded the thr 97 << __FILE__ << "." << G4endl; 98 break; 99 } 100 Particle = FindParticle(RandomEngine_->G4S 101 } while (Particle->GetAtomicMass() > Remaini 102 || Particle->GetAtomicNumber() > Re 103 // Loop checking, 11.05.2015, T. Koi 104 105 G4FFG_FUNCTIONLEAVE__ 106 return Particle; 107 } 108 109 G4FPYNormalFragmentDist::~G4FPYNormalFragmentD 110 { 111 G4FFG_FUNCTIONENTER__ 112 113 // Empty - all the data elements to be decon 114 // ~G4FissionProductYieldDist() 115 116 G4FFG_FUNCTIONLEAVE__ 117 } 118