Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/fission/src/G4SmpNuDistDataPu239.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /processes/hadronic/models/fission/src/G4SmpNuDistDataPu239.cc (Version 11.3.0) and /processes/hadronic/models/fission/src/G4SmpNuDistDataPu239.cc (Version 10.6)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
 26 //                                                 26 //
 27 // This software was developed by Lawrence Liv     27 // This software was developed by Lawrence Livermore National Laboratory.
 28 //                                                 28 //
 29 // Redistribution and use in source and binary     29 // Redistribution and use in source and binary forms, with or without
 30 // modification, are permitted provided that t     30 // modification, are permitted provided that the following conditions are met:
 31 //                                                 31 //
 32 // 1. Redistributions of source code must reta     32 // 1. Redistributions of source code must retain the above copyright notice,
 33 //   this list of conditions and the following     33 //   this list of conditions and the following disclaimer.
 34 // 2. Redistributions in binary form must repr     34 // 2. Redistributions in binary form must reproduce the above copyright notice,
 35 //   this list of conditions and the following     35 //   this list of conditions and the following disclaimer in the documentation
 36 //   and/or other materials provided with the      36 //   and/or other materials provided with the distribution.
 37 // 3. The name of the author may not be used t     37 // 3. The name of the author may not be used to endorse or promote products
 38 //   derived from this software without specif     38 //   derived from this software without specific prior written permission.
 39 //                                                 39 //
 40 // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``A     40 // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
 41 // WARRANTIES, INCLUDING, BUT NOT LIMITED TO,      41 // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 42 // MERCHANTABILITY AND FITNESS FOR A PARTICULA     42 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
 43 // EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DI     43 // EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 44 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGE     44 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 45 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES     45 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
 46 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AN     46 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 47 // WHETHER IN CONTRACT, STRICT LIABILITY, OR T     47 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 48 // OTHERWISE) ARISING IN ANY WAY OUT OF THE US     48 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 49 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.      49 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 50 //                                                 50 //
 51 // Copyright (c) 2006 The Regents of the Unive     51 // Copyright (c) 2006 The Regents of the University of California.
 52 // All rights reserved.                            52 // All rights reserved.
 53 // UCRL-CODE-224807                                53 // UCRL-CODE-224807
 54 //                                                 54 //
 55 //                                                 55 //
 56 //                                                 56 //
 57                                                    57 
 58 #include <cmath>                                   58 #include <cmath>
 59 #include "G4Pow.hh"                                59 #include "G4Pow.hh"
 60 #include "G4fissionEvent.hh"                       60 #include "G4fissionEvent.hh"
 61                                                    61 
 62 G4int G4fissionEvent::G4SmpNuDistDataPu239(G4d     62 G4int G4fissionEvent::G4SmpNuDistDataPu239(G4double erg) {
 63                                                    63 
 64 /*                                                 64 /*
 65   Description                                      65   Description
 66     Sample Number of Neutrons from fission in      66     Sample Number of Neutrons from fission in Pu-239 using 
 67     Zucker and Holden's tabulated data for Pu-     67     Zucker and Holden's tabulated data for Pu-239
 68 */                                                 68 */
 69                                                    69 
 70 /*                                                 70 /*
 71   Input                                            71   Input
 72     erg      - incident neutron energy             72     erg      - incident neutron energy
 73   Output                                           73   Output
 74     G4SmpNuDistDataPu239  - sampled multiplici     74     G4SmpNuDistDataPu239  - sampled multiplicity
 75                                                    75     
 76 */                                                 76 */
 77                                                    77  
 78   G4double cpnu;                                   78   G4double cpnu;
 79   G4double pnu[8] = {0.0, 0.0, 0.0, 0.0, 0.0,      79   G4double pnu[8] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
 80   G4double eng;                                    80   G4double eng;
 81   G4double r;                                      81   G4double r;
 82                                                    82 
 83 /*                                                 83 /* 
 84   Check if energy is within the range of exper     84   Check if energy is within the range of experimental values
 85 */                                                 85 */
 86   if (erg > 10) eng=10.;                           86   if (erg > 10) eng=10.;
 87   else eng=erg;                                    87   else eng=erg;
 88                                                    88 
 89   r=fisslibrng();                                  89   r=fisslibrng();
 90                                                    90 
 91 /*                                                 91 /*
 92   Pu-239 nu distribution                           92   Pu-239 nu distribution
 93 */                                                 93 */
 94   G4Pow* Pow=G4Pow::GetInstance();                 94   G4Pow* Pow=G4Pow::GetInstance();
 95   if (eng <= 5.0) pnu[0] = 0.0108826e0 - 0.002     95   if (eng <= 5.0) pnu[0] = 0.0108826e0 - 0.00207694e0*eng 
 96                          - 6.5e-4*Pow->powN(en     96                          - 6.5e-4*Pow->powN(eng,2) + 4.023e-4*Pow->powN(eng,3)
 97                          - 7.93e-5*Pow->powN(e     97                          - 7.93e-5*Pow->powN(eng,4) + 5.53666667e-6*Pow->powN(eng,5);       
 98   if (eng > 5 && eng <= 10) pnu[0] = 0.078606e     98   if (eng > 5 && eng <= 10) pnu[0] = 0.078606e0 - 5.17531e-2*eng 
 99                                    + 1.42034e-     99                                    + 1.42034e-2*Pow->powN(eng,2) - 1.96292e-3*Pow->powN(eng,3)
100                                    + 1.34512e-    100                                    + 1.34512e-4*Pow->powN(eng,4) - 3.63416e-6*Pow->powN(eng,5);
101   if (r <= pnu[0]) return 0;                      101   if (r <= pnu[0]) return 0;
102                                                   102 
103                                                   103 
104   if (eng <= 5.0) pnu[1] = 0.0994916e0 - 0.019    104   if (eng <= 5.0) pnu[1] = 0.0994916e0 - 0.01979542e0*eng 
105                          - 0.00236583e0*Pow->p    105                          - 0.00236583e0*Pow->powN(eng,2) + 0.0020581e0*Pow->powN(eng,3)
106                          - 4.14016667e-4*Pow->    106                          - 4.14016667e-4*Pow->powN(eng,4) + 2.85666667e-5*Pow->powN(eng,5);
107   if (eng > 5 && eng <= 10) pnu[1] = 0.10052e0    107   if (eng > 5 && eng <= 10) pnu[1] = 0.10052e0 - 2.61361e-2*eng 
108                                    + 3.78355e-    108                                    + 3.78355e-3*Pow->powN(eng,2) - 3.70667e-4*Pow->powN(eng,3) 
109                                    + 1.95458e-    109                                    + 1.95458e-5*Pow->powN(eng,4) - 3.87499e-7*Pow->powN(eng,5);
110   cpnu=pnu[0]+pnu[1];                             110   cpnu=pnu[0]+pnu[1];
111   if (r <= cpnu) return 1;                        111   if (r <= cpnu) return 1;
112                                                   112 
113                                                   113 
114   if (eng <= 5.0) pnu[2] = 0.2748898e0 - 0.015    114   if (eng <= 5.0) pnu[2] = 0.2748898e0 - 0.01565248e0*eng 
115                          - 0.00749681e0*Pow->p    115                          - 0.00749681e0*Pow->powN(eng,2) + 0.00217121e0*Pow->powN(eng,3)
116                          - 3.13041667e-4*Pow->    116                          - 3.13041667e-4*Pow->powN(eng,4) + 1.88183333e-5*Pow->powN(eng,5);
117   if (eng > 5 && eng <= 10) pnu[2] = 0.282487e    117   if (eng > 5 && eng <= 10) pnu[2] = 0.282487e0 - 0.0261342e0*eng 
118                                    - 1.16895e-    118                                    - 1.16895e-3*Pow->powN(eng,2) + 1.9888e-4*Pow->powN(eng,3)
119                                    - 6.41257e-    119                                    - 6.41257e-6*Pow->powN(eng,4) + 1.02502e-7*Pow->powN(eng,5);
120   cpnu=cpnu+pnu[2];                               120   cpnu=cpnu+pnu[2];
121   if (r <= cpnu) return 2;                        121   if (r <= cpnu) return 2;
122                                                   122 
123   if (eng <= 5.0) pnu[3] = 0.3269196e0 + 0.004    123   if (eng <= 5.0) pnu[3] = 0.3269196e0 + 0.00428312e0*eng 
124                          - 0.00189322e0*Pow->p    124                          - 0.00189322e0*Pow->powN(eng,2) - 4.31925001e-4*Pow->powN(eng,3)
125                          + 1.18466667e-4*Pow->    125                          + 1.18466667e-4*Pow->powN(eng,4) - 9.04166668e-6*Pow->powN(eng,5);
126   if (eng > 5 && eng <= 10) pnu[3] = 0.329058e    126   if (eng > 5 && eng <= 10) pnu[3] = 0.329058e0 + 4.023e-3*eng
127                                    - 3.06402e-    127                                    - 3.06402e-3*Pow->powN(eng,2) + 2.2628e-4*Pow->powN(eng,3)
128                                    - 1.50875e-    128                                    - 1.50875e-5*Pow->powN(eng,4) + 4.39168e-7*Pow->powN(eng,5);
129   cpnu=cpnu+pnu[3];                               129   cpnu=cpnu+pnu[3];
130   if (r <= cpnu) return 3;                        130   if (r <= cpnu) return 3;
131                                                   131 
132   if (eng <= 5.0) pnu[4] = 0.2046061e0 + 0.026    132   if (eng <= 5.0) pnu[4] = 0.2046061e0 + 0.02633899e0*eng
133                          + 0.0041514e0*Pow->po    133                          + 0.0041514e0*Pow->powN(eng,2) - 0.00275542e0*Pow->powN(eng,3)
134                          + 5.0325e-4*Pow->powN    134                          + 5.0325e-4*Pow->powN(eng,4) - 3.32158333e-5*Pow->powN(eng,5);
135   if (eng > 5 && eng <= 10) pnu[4] = 0.18992e0    135   if (eng > 5 && eng <= 10) pnu[4] = 0.18992e0 + 4.55188e-2*eng
136                                    - 7.06316e-    136                                    - 7.06316e-3*Pow->powN(eng,2) + 7.29916e-4*Pow->powN(eng,3)
137                                    - 4.71791e-    137                                    - 4.71791e-5*Pow->powN(eng,4) + 1.185e-6*Pow->powN(eng,5);
138   cpnu=cpnu+pnu[4];                               138   cpnu=cpnu+pnu[4];
139   if (r <= cpnu) return 4;                        139   if (r <= cpnu) return 4;
140                                                   140 
141   if (eng <= 5.0) pnu[5] = 0.0726834e0 + 0.001    141   if (eng <= 5.0) pnu[5] = 0.0726834e0 + 0.00116043e0*eng
142                          + 0.007572e0*Pow->pow    142                          + 0.007572e0*Pow->powN(eng,2) - 0.00161972e0*Pow->powN(eng,3)
143                          + 2.3545e-4*Pow->powN    143                          + 2.3545e-4*Pow->powN(eng,4) - 1.546e-5*Pow->powN(eng,5);
144   if (eng > 5 && eng <= 10) pnu[5] = 0.0779212    144   if (eng > 5 && eng <= 10) pnu[5] = 0.0779212e0 - 1.35849e-3*eng
145                                    + 6.68583e-    145                                    + 6.68583e-3*Pow->powN(eng,2) - 7.98649e-4*Pow->powN(eng,3)
146                                    + 4.88625e-    146                                    + 4.88625e-5*Pow->powN(eng,4) - 1.54167e-6*Pow->powN(eng,5);
147   cpnu=cpnu+pnu[5];                               147   cpnu=cpnu+pnu[5];
148   if (r <= cpnu) return 5;                        148   if (r <= cpnu) return 5;
149                                                   149 
150   if (eng <= 5.0) pnu[6] = 0.0097282e0 + 0.004    150   if (eng <= 5.0) pnu[6] = 0.0097282e0 + 0.00494589e0*eng
151                          + 0.00115294e0*Pow->p    151                          + 0.00115294e0*Pow->powN(eng,2) - 3.25191667e-4*Pow->powN(eng,3)
152                          + 6.00083333e-5*Pow->    152                          + 6.00083333e-5*Pow->powN(eng,4) - 3.745e-6*Pow->powN(eng,5);
153   if (eng > 5 && eng <= 10) pnu[6] = 7.85432e-    153   if (eng > 5 && eng <= 10) pnu[6] = 7.85432e-3 + 7.33182e-3*eng
154                                    - 2.03705e-    154                                    - 2.03705e-4*Pow->powN(eng,2) + 8.73787e-5*Pow->powN(eng,3)
155                                    - 4.24164e-    155                                    - 4.24164e-6*Pow->powN(eng,4) + 2.37499e-7*Pow->powN(eng,5);
156   cpnu=cpnu+pnu[6];                               156   cpnu=cpnu+pnu[6];
157   if (r <= cpnu) return 6;                        157   if (r <= cpnu) return 6;
158                                                   158 
159   if (eng <= 5.0) pnu[7] = 6.301e-4 + 1.106666    159   if (eng <= 5.0) pnu[7] = 6.301e-4 + 1.10666667e-4*eng
160                          + 4.28016667e-4*Pow->    160                          + 4.28016667e-4*Pow->powN(eng,2) + 1.12041667e-5*Pow->powN(eng,3)
161                          - 4.31666667e-6*Pow->    161                          - 4.31666667e-6*Pow->powN(eng,4) + 3.29166667e-7*Pow->powN(eng,5);
162   if (eng > 5 && eng <= 10) pnu[7] = 1.5323e-3    162   if (eng > 5 && eng <= 10) pnu[7] = 1.5323e-3 - 7.91857e-4*eng
163                                    + 8.01017e-    163                                    + 8.01017e-4*Pow->powN(eng,2) - 6.82833e-5*Pow->powN(eng,3)
164                                    + 4.38333e-    164                                    + 4.38333e-6*Pow->powN(eng,4) - 6.0e-8*Pow->powN(eng,5);
165   cpnu=cpnu+pnu[7];                               165   cpnu=cpnu+pnu[7];
166   if (r <= cpnu) return 7;                        166   if (r <= cpnu) return 7;
167   else return 8;                                  167   else return 8;
168 }                                                 168 }
169                                                   169