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 // This software was developed by Lawrence Liv 28 // 29 // Redistribution and use in source and binary 30 // modification, are permitted provided that t 31 // 32 // 1. Redistributions of source code must reta 33 // this list of conditions and the following 34 // 2. Redistributions in binary form must repr 35 // this list of conditions and the following 36 // and/or other materials provided with the 37 // 3. The name of the author may not be used t 38 // derived from this software without specif 39 // 40 // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``A 41 // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 42 // MERCHANTABILITY AND FITNESS FOR A PARTICULA 43 // EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DI 44 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGE 45 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES 46 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AN 47 // WHETHER IN CONTRACT, STRICT LIABILITY, OR T 48 // OTHERWISE) ARISING IN ANY WAY OUT OF THE US 49 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 50 // 51 // Copyright (c) 2006 The Regents of the Unive 52 // All rights reserved. 53 // UCRL-CODE-224807 54 // 55 // 56 // 57 58 #include <cmath> 59 #include "G4Pow.hh" 60 #include "G4fissionEvent.hh" 61 62 G4int G4fissionEvent::G4SmpNuDistDataU235(G4do 63 64 /* 65 Description 66 Sample Number of Neutrons from fission in 67 distributions based on either 68 (option 0) Zucker and Holden's tabulated 69 (option 1) Zucker and Holden's tabulated 70 Gwin, Spencer and Ingle tabul 71 at thermal energies 72 */ 73 74 /* 75 Input 76 erg - incident neutron energy 77 option - 0 for sampling Zucker and Holde 78 1 for sampling probability dist 79 and Holden tabulated distribu 80 Spencer and Ingle tabulated d 81 energies 82 Output 83 G4SmpNuDistDataU235 - sampled multiplicit 84 85 */ 86 87 G4double cpnu; 88 G4double pnu[] = {0.0, 0.0, 0.0, 0.0, 0.0, 0 89 G4double eng; 90 G4double r; 91 92 /* 93 Check if energy is within the range of exper 94 */ 95 if (erg > 10) eng=10.; 96 else eng=erg; 97 98 r=fisslibrng(); 99 /* 100 U-235 nu distribution 101 */ 102 G4Pow* Pow=G4Pow::GetInstance(); 103 if (option == 0) { 104 if (eng <= 3.0) pnu[0]=0.0317223e0-9.6711 105 if (eng > 3 && eng <= 7) pnu[0]=-1.24147e 106 if (eng > 7 && eng <= 10) pnu[0]=6.31258e 107 if (r <= pnu[0]) return 0; 108 109 if (eng <= 4.0) pnu[1]=0.171707e0-0.01783 110 if (eng > 4 && eng <= 7) pnu[1]=9.8633e-2 111 if (eng > 7 && eng <= 10) pnu[1]=0.628295 112 cpnu=pnu[0]+pnu[1]; 113 if (r <= cpnu) return 1; 114 115 if (eng <= 4.0) pnu[2]=0.336199e0-1.59569 116 if (eng > 4 && eng <= 8) pnu[2]=0.229153e 117 if (eng > 8 && eng <= 10) pnu[2]=-0.39520 118 cpnu=cpnu+pnu[2]; 119 if (r <= cpnu) return 2; 120 121 if (eng <= 5.0) pnu[3]=0.30395461e0+0.013 122 if (eng > 5 && eng <= 10) pnu[3]=0.109923 123 cpnu=cpnu+pnu[3]; 124 if (r <= cpnu) return 3; 125 126 if (eng <= 4.0) pnu[4]=0.126946e0+1.64489 127 if (eng > 4 && eng <= 8) pnu[4]=0.263373e 128 if (eng > 8 && eng <= 10) pnu[4]=-0.27749 129 cpnu=cpnu+pnu[4]; 130 if (r <= cpnu) return 4; 131 132 if (eng <= 4.0) pnu[5]=0.0266793e0+9.0520 133 if (eng > 4 && eng <= 8) pnu[5]=0.0693092 134 if (eng > 8 && eng <= 10) pnu[5]=0.881442 135 cpnu=cpnu+pnu[5]; 136 if (r <= cpnu) return 5; 137 138 139 if (eng <= 4.0) pnu[6]=0.0026322e0+2.4401 140 if (eng > 4 && eng <= 8) pnu[6]=-5.3989e- 141 if (eng > 8 && eng <= 10) pnu[6]=0.177058 142 cpnu=cpnu+pnu[6]; 143 if (r <= cpnu) return 6; 144 else return 7; 145 146 } else if (option == 1) { 147 if (eng <= 3.0) pnu[0]=0.0291000e0-4.8361 148 if (eng > 3 && eng <= 7) pnu[0]=-1.23950e 149 if (eng > 7 && eng <= 10) pnu[0]=6.328200 150 if (r <= pnu[0]) return 0; 151 152 if (eng <= 4.0) pnu[1]=0.166000e0-0.00559 153 if (eng > 4 && eng <= 7) pnu[1]=9.860600e 154 if (eng > 7 && eng <= 10) pnu[1]=0.628401 155 cpnu=pnu[0]+pnu[1]; 156 if (r <= cpnu) return 1; 157 158 if (eng <= 4.0) pnu[2]=0.336200e0-1.59605 159 if (eng > 4 && eng <= 8) pnu[2]=0.2292350 160 if (eng > 8 && eng <= 10) pnu[2]=0.383823 161 cpnu=cpnu+pnu[2]; 162 if (r <= cpnu) return 2; 163 164 if (eng <= 4.0) pnu[3]=0.3074000e0+0.0079 165 if (eng > 4 && eng <= 7) pnu[3]=0.3152270 166 if (eng > 7 && eng <= 10) pnu[3]=0.647643 167 cpnu=cpnu+pnu[3]; 168 if (r <= cpnu) return 3; 169 170 if (eng <= 4.0) pnu[4]=0.133300e0+5.85375 171 if (eng > 4 && eng <= 7) pnu[4]=0.2379650 172 if (eng > 7 && eng <= 10) pnu[4]=-0.54086 173 cpnu=cpnu+pnu[4]; 174 if (r <= cpnu) return 4; 175 176 if (eng <= 4.0) pnu[5]=0.025900e0+1.06745 177 if (eng > 4 && eng <= 7) pnu[5]=0.0871960 178 if (eng > 7 && eng <= 10) pnu[5]=-0.59165 179 cpnu=cpnu+pnu[5]; 180 if (r <= cpnu) return 5; 181 182 if (eng <= 4.0) pnu[6]=0.002100e0+1.35500 183 if (eng > 4 && eng <= 8) pnu[6]=1.767200e 184 if (eng > 8 && eng <= 10) pnu[6]=-0.24853 185 cpnu=cpnu+pnu[6]; 186 if (r <= cpnu) return 6; 187 else return 7; 188 } 189 // 190 // Fall through 191 // 192 193 G4cout << " SmpNuDistDataU235: unrecognized 194 return -1; 195 196 } 197