Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/fission/src/G4LLNLFission.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/G4LLNLFission.cc (Version 11.3.0) and /processes/hadronic/models/fission/src/G4LLNLFission.cc (Version 10.1.p3)


  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 // $Id: G4LLNLFission.cc 68799 2013-04-05 13:29:46Z gcosmo $
 56 //                                                 57 //
 57 // This class is a copy of Fission.cc, made fo     58 // This class is a copy of Fission.cc, made for use with Geant4.
 58 //                                                 59 //
 59                                                    60 
 60 #include "G4fissionEvent.hh"                       61 #include "G4fissionEvent.hh"
 61                                                    62 
 62   G4fissionEvent* fe;                              63   G4fissionEvent* fe;
 63                                                    64 
 64    extern G4float (*rngfptr) (void);               65    extern G4float (*rngfptr) (void);
 65                                                    66 
 66    extern G4double (*rngdptr) (void);              67    extern G4double (*rngdptr) (void);
 67                                                    68 
 68    extern G4double rngf2d(void);                   69    extern G4double rngf2d(void);
 69                                                    70 
 70    void genspfissevt_(G4int *isotope, G4double     71    void genspfissevt_(G4int *isotope, G4double *time) {
 71       if (fe != 0) delete fe;                      72       if (fe != 0) delete fe;
 72       fe = new G4fissionEvent(*isotope, *time,     73       fe = new G4fissionEvent(*isotope, *time, -1., 0.);
 73    }                                               74    }
 74                                                    75 
 75    void genfissevt_(G4int *isotope, G4double *     76    void genfissevt_(G4int *isotope, G4double *time, G4double *nubar, G4double *eng) {
 76       if (fe != 0) delete fe;                      77       if (fe != 0) delete fe;
 77       fe = new G4fissionEvent(*isotope, *time,     78       fe = new G4fissionEvent(*isotope, *time, *nubar, *eng);
 78    }                                               79    }
 79                                                    80 
 80    G4int getnnu_() {                               81    G4int getnnu_() {
 81       return (*fe).getNeutronNu();                 82       return (*fe).getNeutronNu();
 82    }                                               83    }
 83                                                    84 
 84    G4int getpnu_() {                               85    G4int getpnu_() {
 85       return (*fe).getPhotonNu();                  86       return (*fe).getPhotonNu();
 86    }                                               87    }
 87                                                    88 
 88    G4double getneng_(G4int *index) {               89    G4double getneng_(G4int *index) {
 89       return (*fe).getNeutronEnergy(*index);       90       return (*fe).getNeutronEnergy(*index);
 90    }                                               91    }
 91                                                    92 
 92    G4double getnvel_(G4int *index) {               93    G4double getnvel_(G4int *index) {
 93       return (*fe).getNeutronVelocity(*index);     94       return (*fe).getNeutronVelocity(*index);
 94    }                                               95    }
 95                                                    96 
 96    G4double getndircosu_(G4int *index) {           97    G4double getndircosu_(G4int *index) {
 97       return (*fe).getNeutronDircosu(*index);      98       return (*fe).getNeutronDircosu(*index);
 98    }                                               99    }
 99                                                   100 
100    G4double getndircosv_(G4int *index) {          101    G4double getndircosv_(G4int *index) {
101       return (*fe).getNeutronDircosv(*index);     102       return (*fe).getNeutronDircosv(*index);
102    }                                              103    }
103                                                   104 
104    G4double getndircosw_(G4int *index) {          105    G4double getndircosw_(G4int *index) {
105       return (*fe).getNeutronDircosw(*index);     106       return (*fe).getNeutronDircosw(*index);
106    }                                              107    }
107                                                   108 
108    G4double getpeng_(G4int *index) {              109    G4double getpeng_(G4int *index) {
109       return (*fe).getPhotonEnergy(*index);       110       return (*fe).getPhotonEnergy(*index);
110    }                                              111    }
111                                                   112 
112    G4double getpvel_(G4int *index) {              113    G4double getpvel_(G4int *index) {
113       return (*fe).getPhotonVelocity(*index);     114       return (*fe).getPhotonVelocity(*index);
114    }                                              115    }
115                                                   116 
116    G4double getpdircosu_(G4int *index) {          117    G4double getpdircosu_(G4int *index) {
117       return (*fe).getPhotonDircosu(*index);      118       return (*fe).getPhotonDircosu(*index);
118    }                                              119    }
119                                                   120 
120    G4double getpdircosv_(G4int *index) {          121    G4double getpdircosv_(G4int *index) {
121       return (*fe).getPhotonDircosv(*index);      122       return (*fe).getPhotonDircosv(*index);
122    }                                              123    }
123                                                   124 
124    G4double getpdircosw_(G4int *index) {          125    G4double getpdircosw_(G4int *index) {
125       return (*fe).getPhotonDircosw(*index);      126       return (*fe).getPhotonDircosw(*index);
126    }                                              127    }
127                                                   128 
128    G4double getnage_(G4int *index) {              129    G4double getnage_(G4int *index) {
129       return (*fe).getNeutronAge(*index);         130       return (*fe).getNeutronAge(*index);
130    }                                              131    }
131                                                   132 
132    G4double getpage_(G4int *index) {              133    G4double getpage_(G4int *index) {
133       return (*fe).getPhotonAge(*index);          134       return (*fe).getPhotonAge(*index);
134    }                                              135    }
135                                                   136 
136    void setdelay_(G4int *delay) {                 137    void setdelay_(G4int *delay) {
137       (*fe).setDelayOption(*delay);               138       (*fe).setDelayOption(*delay);
138    }                                              139    }
139                                                   140 
140    void setcorrel_(G4int *correlation) {          141    void setcorrel_(G4int *correlation) {
141       (*fe).setCorrelationOption(*correlation)    142       (*fe).setCorrelationOption(*correlation);
142    }                                              143    }
143                                                   144 
144    void setnudist_(G4int *nudist) {               145    void setnudist_(G4int *nudist) {
145 /*                                                146 /*
146       where the argument *nudist affects induc    147       where the argument *nudist affects induced fissions only, it
147       is set to                                   148       is set to
148          0 for sampling Zucker and Holden prob    149          0 for sampling Zucker and Holden probability distributions 
149            for U-235,238 and Pu-239. Terrell f    150            for U-235,238 and Pu-239. Terrell for other isotopes.
150          1 same as above, but using Gwin, Spen    151          1 same as above, but using Gwin, Spencer and Ingle 
151            tabulated distributions for thermal    152            tabulated distributions for thermal energies for U-235.
152            Terrell for other isotopes.            153            Terrell for other isotopes.
153          2 for sampling fission-induced neutro    154          2 for sampling fission-induced neutron multiplicity in 
154            (a) U-232, U-234, U-236 and U-238 u    155            (a) U-232, U-234, U-236 and U-238 using Zucker and 
155                Holden's tabulated data for U-2    156                Holden's tabulated data for U-238
156            (b) U-233 and U-235 using Zucker an    157            (b) U-233 and U-235 using Zucker and Holden's tabulated 
157                data for U-235                     158                data for U-235
158            (c) Pu-239 and Pu-241 using Zucker     159            (c) Pu-239 and Pu-241 using Zucker and Holden's tabulated 
159                data for Pu-239                    160                data for Pu-239
160            The P(nu) distributions for *nudist    161            The P(nu) distributions for *nudist=2 are given as a 
161            function of the average number of n    162            function of the average number of neutrons from fission, 
162            based on interpolation of the data     163            based on interpolation of the data from Zucker and Holden.
163            Terrell for other isotopes.            164            Terrell for other isotopes.
164          3 for sampling fission-induced neutro    165          3 for sampling fission-induced neutron multiplicity in 
165            (a) U-232, U-234, U-236 and U-238 u    166            (a) U-232, U-234, U-236 and U-238 using Zucker and 
166                Holden's tabulated data for U-2    167                Holden's tabulated data for U-238
167            (b) U-233 and U-235 using Zucker an    168            (b) U-233 and U-235 using Zucker and Holden's tabulated 
168                data for U-235                     169                data for U-235
169            (c) Pu-239 and Pu-241 using Zucker     170            (c) Pu-239 and Pu-241 using Zucker and Holden's tabulated 
170                data for Pu-239                    171                data for Pu-239
171            The Z&H tables have P(nu) distribut    172            The Z&H tables have P(nu) distributions for 11 energies 
172            (0 MeV through 10 MeV), along with     173            (0 MeV through 10 MeV), along with their nubars. For 
173            *nudist=3, we select the P(nu) dist    174            *nudist=3, we select the P(nu) distribution that has
174            a nubar closest either from above,     175            a nubar closest either from above, or from below, to the 
175            to the nubar entered for the induce    176            to the nubar entered for the induced fission, based on a 
176            random number and fractional distan    177            random number and fractional distances to the end of the 
177            nubar interval thus formed.            178            nubar interval thus formed.
178            Terrell for other isotopes.            179            Terrell for other isotopes.
179 */                                                180 */
180                                                   181 
181       (*fe).setNudistOption(*nudist);             182       (*fe).setNudistOption(*nudist);
182    }                                              183    }
183                                                   184 
184    void setcf252_(G4int *ndist, G4int *neng) {    185    void setcf252_(G4int *ndist, G4int *neng) {
185 /*                                                186 /*
186       where the argument                          187       where the argument
187       *ndist is set to                            188       *ndist is set to 
188          0 to sample the spontaneous fission n    189          0 to sample the spontaneous fission neutron multiplicity 
189            using tabulated data from Spencer      190            using tabulated data from Spencer
190          1 to sample the spontaneous fission n    191          1 to sample the spontaneous fission neutron multiplicity
191            using tabulated data from Boldeman     192            using tabulated data from Boldeman
192       *neng is set to                             193       *neng is set to 
193          0 to sample the Mannhart corrected Ma    194          0 to sample the Mannhart corrected Maxwellian spectrum
194          1 to sample the Madland-Nix theoretic    195          1 to sample the Madland-Nix theoretical spectrum
195          2 to sample the Froehner Watt spectru    196          2 to sample the Froehner Watt spectrum
196 */                                                197 */
197       (*fe).setCf252Option(*ndist, *neng);        198       (*fe).setCf252Option(*ndist, *neng);
198    }                                              199    }
199                                                   200 
200    void setrngf_(G4float (*funcptr) (void)) {     201    void setrngf_(G4float (*funcptr) (void)) {
201       G4fissionEvent::setRNGf(funcptr);           202       G4fissionEvent::setRNGf(funcptr);
202    }                                              203    }
203                                                   204 
204    void setrngd_(G4double (*funcptr) (void)) {    205    void setrngd_(G4double (*funcptr) (void)) {
205       G4fissionEvent::setRNGd(funcptr);           206       G4fissionEvent::setRNGd(funcptr);
206    }                                              207    }
207 // }                                              208 // }
208                                                   209