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.5)


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