Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/fission/src/G4SmpNuDistDataU238.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 ]

  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 // This software was developed by Lawrence Livermore National Laboratory.
 28 //
 29 // Redistribution and use in source and binary forms, with or without
 30 // modification, are permitted provided that the following conditions are met:
 31 //
 32 // 1. Redistributions of source code must retain the above copyright notice,
 33 //   this list of conditions and the following disclaimer.
 34 // 2. Redistributions in binary form must reproduce the above copyright notice,
 35 //   this list of conditions and the following disclaimer in the documentation
 36 //   and/or other materials provided with the distribution.
 37 // 3. The name of the author may not be used to endorse or promote products
 38 //   derived from this software without specific prior written permission.
 39 //
 40 // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
 41 // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 42 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
 43 // EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 44 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 45 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
 46 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 47 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 48 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 49 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 50 //
 51 // Copyright (c) 2006 The Regents of the University of California.
 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::G4SmpNuDistDataU238(G4double erg) {
 63 
 64 /*
 65   Description
 66     Sample Number of Neutrons from fission in U-238 using 
 67       Zucker and Holden's tabulated data for U-238
 68 */
 69 
 70 /*
 71   Input
 72     erg      - incident neutron energy
 73   Output
 74     G4SmpNuDistDataU238  - sampled multiplicity
 75     
 76 */
 77  
 78   G4double cpnu;
 79   G4double pnu[] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
 80   G4double eng;
 81   G4double r;
 82 
 83 /* 
 84   Check if energy is within the range of experimental values
 85 */
 86   if (erg > 10) eng=10.;
 87   else eng=erg;
 88 
 89   r=fisslibrng();
 90 /*
 91   U-238 nu distribution
 92 */
 93   G4Pow* Pow=G4Pow::GetInstance();
 94   if (eng <= 5.0) pnu[0]=0.0396484e0-1.14202e-2*eng+1.94627e-3*Pow->powN(eng,2)-2.95412e-4*Pow->powN(eng,3)+2.98333e-5*Pow->powN(eng,4)-1.31417e-6*Pow->powN(eng,5);
 95   if (eng > 5 && eng <= 10) pnu[0]=0.0360013e0-8.06662e-3*eng+6.59461e-4*Pow->powN(eng,2)-3.54123e-5*Pow->powN(eng,3)+2.03749e-6*Pow->powN(eng,4)-5.91663e-8*Pow->powN(eng,5);
 96   if (r <= pnu[0]) return 0;
 97 
 98   if (eng <= 5.0) pnu[1]=0.252954e0-5.17151e-2*eng+2.84558e-3*Pow->powN(eng,2)+2.93563e-4*Pow->powN(eng,3)-5.99833e-5*Pow->powN(eng,4)+3.34417e-6*Pow->powN(eng,5);
 99   if (eng > 5 && eng <= 10) pnu[1]=0.259093e0-5.7936e-2*eng+5.50734e-3*Pow->powN(eng,2)-3.09607e-4*Pow->powN(eng,3)+1.20957e-5*Pow->powN(eng,4)-2.49997e-7*Pow->powN(eng,5);
100   cpnu=pnu[0]+pnu[1];
101   if (r <= cpnu) return 1;
102 
103   pnu[2]=0.29395353e0+0.01098908e0*eng-0.00565976e0*Pow->powN(eng,2)+3.14515399e-4*Pow->powN(eng,3)-5.66793415e-6*Pow->powN(eng,4)+1.54070513e-7*Pow->powN(eng,5);
104   cpnu=cpnu+pnu[2];
105   if (r <= cpnu) return 2;
106 
107   if (eng <= 5.0) pnu[3]=0.264447e0+3.02825e-2*eng-3.12762e-3*Pow->powN(eng,2)-1.5875e-4*Pow->powN(eng,3)+4.91667e-5*Pow->powN(eng,4)-3.38667e-6*Pow->powN(eng,5);
108   if (eng > 5 && eng <= 10) pnu[3]=0.262024e0+3.37134e-2*eng-5.01711e-3*Pow->powN(eng,2)+3.58761e-4*Pow->powN(eng,3)-2.17959e-5*Pow->powN(eng,4)+5.10834e-7*Pow->powN(eng,5);
109   cpnu=cpnu+pnu[3];
110   if (r <= cpnu) return 3;
111 
112   if (eng <= 5) pnu[4]=0.111176e0+1.66321e-2*eng+2.56307e-3*Pow->powN(eng,2)-2.17754e-4*Pow->powN(eng,3)-5.96667e-6*Pow->powN(eng,4)+7.44167e-7*Pow->powN(eng,5);
113   if (eng > 5 && eng <= 10) pnu[4]=0.107859e0+1.88862e-2*eng+2.07521e-3*Pow->powN(eng,2)-2.08099e-4*Pow->powN(eng,3)+3.23745e-6*Pow->powN(eng,4)-1.24999e-7*Pow->powN(eng,5);
114   cpnu=cpnu+pnu[4];
115   if (r <= cpnu) return 4;
116 
117   if (eng <= 5.0) pnu[5]=0.0312261e0+4.12932e-3*eng+9.18413e-4*Pow->powN(eng,2)+4.36542e-5*Pow->powN(eng,3)-5.9125e-6*Pow->powN(eng,4)+3.20833e-7*Pow->powN(eng,5);
118   if (eng > 5 && eng <= 10) pnu[5]=0.0324008e0+3.04772e-3*eng+1.3327e-3*Pow->powN(eng,2)-3.96916e-5*Pow->powN(eng,3)+2.94583e-6*Pow->powN(eng,4)-7.66666e-8*Pow->powN(eng,5);
119   cpnu=cpnu+pnu[5];
120   if (r <= cpnu) return 5;
121 
122   if (eng <= 5.0) pnu[6]=5.9347e-3+9.80023e-4*eng+4.24667e-4*Pow->powN(eng,2)+3.04458e-5*Pow->powN(eng,3)-6.46667e-6*Pow->powN(eng,4)+4.30833e-7*Pow->powN(eng,5);
123   if (eng > 5 && eng <= 10) pnu[6]=6.5421e-3+3.07834e-4*eng+7.39454e-4*Pow->powN(eng,2)-4.70459e-5*Pow->powN(eng,3)+3.44583e-6*Pow->powN(eng,4)-8.91667e-8*Pow->powN(eng,5);
124   cpnu=cpnu+pnu[6];
125   if (r <= cpnu) return 6;
126 
127   if (eng <= 5.0) pnu[7]=5.436e-4+1.3756e-4*eng-5.0e-7*Pow->powN(eng,2)+1.35917e-5*Pow->powN(eng,3)+5.0e-7*Pow->powN(eng,4)-5.16667e-8*Pow->powN(eng,5);
128   if (eng > 5 && eng <= 10) pnu[7]=9.212e-4-1.57585e-4*eng+8.41126e-5*Pow->powN(eng,2)+4.14166e-6*Pow->powN(eng,3)+5.37501e-7*Pow->powN(eng,4)-6.66668e-9*Pow->powN(eng,5);
129   cpnu=cpnu+pnu[7];
130   if (r <= cpnu) return 7;
131   else return 8;
132 }
133