00001 // 00002 // ******************************************************************** 00003 // * License and Disclaimer * 00004 // * * 00005 // * The Geant4 software is copyright of the Copyright Holders of * 00006 // * the Geant4 Collaboration. It is provided under the terms and * 00007 // * conditions of the Geant4 Software License, included in the file * 00008 // * LICENSE and available at http://cern.ch/geant4/license . These * 00009 // * include a list of copyright holders. * 00010 // * * 00011 // * Neither the authors of this software system, nor their employing * 00012 // * institutes,nor the agencies providing financial support for this * 00013 // * work make any representation or warranty, express or implied, * 00014 // * regarding this software system or assume any liability for its * 00015 // * use. Please see the license in the file LICENSE and URL above * 00016 // * for the full disclaimer and the limitation of liability. * 00017 // * * 00018 // * This code implementation is the result of the scientific and * 00019 // * technical work of the GEANT4 collaboration. * 00020 // * By using, copying, modifying or distributing the software (or * 00021 // * any work based on the software) you agree to acknowledge its * 00022 // * use in resulting scientific publications, and indicate your * 00023 // * acceptance of all terms of the Geant4 Software license. * 00024 // ******************************************************************** 00025 // 00026 // 00027 // This software was developed by Lawrence Livermore National Laboratory. 00028 // 00029 // Redistribution and use in source and binary forms, with or without 00030 // modification, are permitted provided that the following conditions are met: 00031 // 00032 // 1. Redistributions of source code must retain the above copyright notice, 00033 // this list of conditions and the following disclaimer. 00034 // 2. Redistributions in binary form must reproduce the above copyright notice, 00035 // this list of conditions and the following disclaimer in the documentation 00036 // and/or other materials provided with the distribution. 00037 // 3. The name of the author may not be used to endorse or promote products 00038 // derived from this software without specific prior written permission. 00039 // 00040 // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 00041 // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 00042 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 00043 // EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00044 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 00045 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 00046 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 00047 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 00048 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 00049 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00050 // 00051 // Copyright (c) 2006 The Regents of the University of California. 00052 // All rights reserved. 00053 // UCRL-CODE-224807 00054 // 00055 // $Id: G4LLNLFission.hh 69860 2013-05-16 14:39:02Z gcosmo $ 00056 // 00057 00058 // 00059 // This class is a copy of Fission.hh, made for use with Geant4. 00060 // 00061 00062 extern void genspfissevt_(G4int *isotope, G4double *time); 00063 /* 00064 * This function is called to trigger a spontaneous fission. 00065 * Multiple neutrons and photons are generated and stored 00066 * in a stack along with their energies, directions and 00067 * emission times. 00068 * The arguments of this function are 00069 * isotope: 94239 for Pu-239 for instance 00070 * time: the time of the spontaneous fission 00071 */ 00072 00073 extern void genfissevt_(G4int *isotope, G4double *time, G4double *nubar, G4double *eng); 00074 /* 00075 * This function is called to trigger a neutron-induced fission. 00076 * Multiple neutrons and photons are generated and stored 00077 * in a stack along with their energies, directions and 00078 * emission times. In addition to the arguments above, this 00079 * function needs 00080 * nubar: user-specified average number of neutrons emitted 00081 * per fission (e.g. as tabulated in the cross-section 00082 * libraries used by the particle transport code) 00083 * eng: energy of the neutron inducing fission 00084 */ 00085 00086 extern G4int getnnu_(); 00087 /* 00088 * This function returns the number of neutrons emitted by the 00089 * fission, -1 if there is no neutron data for that isotope in 00090 * the fission library. 00091 */ 00092 00093 extern G4int getpnu_(); 00094 /* 00095 * This function returns the number of photons emitted by the 00096 * fission, -1 if there is no photon data for that isotope in 00097 * the fission library. 00098 */ 00099 00100 extern G4double getneng_(G4int *index); 00101 /* 00102 * Given the index of the emitted neutron, this function returns 00103 * its energy, -1 if index isout of range. 00104 */ 00105 00106 extern G4double getnvel_(G4int *index); 00107 /* 00108 * Given the index of the emitted neutron, this function returns 00109 * the amplitude of its velocity, -1 if index is out of range. 00110 */ 00111 00112 extern G4double getndircosu_(G4int *index); 00113 extern G4double getndircosv_(G4int *index); 00114 extern G4double getndircosw_(G4int *index); 00115 /* 00116 * Given the index of the emitted neutron, this function returns 00117 * the direction cosines of its velocity vector on the x, y and z 00118 * axes. 00119 */ 00120 00121 extern G4double getpeng_(G4int *index); 00122 /* 00123 * Given the index of the emitted photon, this function returns 00124 * its energy, -1 if index is out of range. 00125 */ 00126 00127 extern G4double getpvel_(G4int *index); 00128 /* 00129 * Given the index of the emitted photon, this function returns 00130 * the amplitude of its velocity, -1 if index is out of range. 00131 */ 00132 00133 extern G4double getpdircosu_(G4int *index); 00134 extern G4double getpdircosv_(G4int *index); 00135 extern G4double getpdircosw_(G4int *index); 00136 /* 00137 * Given the index of the emitted photon, this function returns 00138 * the direction cosines of its velocity. 00139 */ 00140 00141 extern G4double getnage_(G4int *index); 00142 /* 00143 * Given the index of the emitted neutron, this function returns 00144 * its age, -1 if index is out of range. 00145 * This age will be different from the time specified 00146 * in generateFissionEvent and generateSpontaneousFissionEvent 00147 * for non-prompt neutrons, i.e. delayed neutrons. 00148 */ 00149 00150 extern G4double getpage_(G4int *index); 00151 /* 00152 * Given the index of the emitted photon, this function returns 00153 * its age, -1 of index is out of range. 00154 * This age will be different from the time specified 00155 * in generateFissionEvent and generateSpontaneousFissionEvent 00156 * for photons that are emitted by beta-decay of the fission 00157 * fragments. 00158 */ 00159 00160 extern void setdelay_(G4int *delay); 00161 /* 00162 * This function is called to enable delayed neutrons and photons 00163 * Input 00164 * delay: 00165 * 0 (default) for strictly prompt neutrons and 00166 * photons 00167 * 1 (n/a) for prompt neutrons, prompt and delayed 00168 * photons 00169 * 2 (n/a) for prompt and delayed neutrons, prompt 00170 * photons 00171 * 3 (n/a) for prompt and delayed neutrons, prompt 00172 * and delayed photons 00173 */ 00174 00175 extern void setcorrel_(G4int *correlation); 00176 /* 00177 * This function is called to set the type of neutron photon correlation 00178 * Input 00179 * correlation: 00180 * 0 (default) for no correlation between neutrons and 00181 * photons 00182 * 1 (n/a) for number correlation between neutrons and 00183 * photons 00184 * 2 (n/a) for number and energy correlation between 00185 * neutrons and photons 00186 */ 00187 00188 extern void setnudist_(G4int *nudist); 00189 /* 00190 * This function is called to set the data to be sampled for the neutron 00191 * number distributions in induced fissions 00192 * Input 00193 * nudist: 00194 * 0 to use the fit to the Zucker and Holden tabulated 00195 * P(nu) distributions as a function of energy for 00196 * U235, U238 and Pu239. Terrell for other isotopes. 00197 * 1 to use fits to the Zucker and Holden tabulated 00198 * P(nu) distribution as a function of energy for 00199 * U238 and Pu239, and a fit to the Zucker and Holden 00200 * data as well as the Gwin, Spencer and Ingle data 00201 * (at thermal energies) as a function of energy for 00202 * U235. Terrell for other isotopes. 00203 * 2 (default) to use the fit to the Zucker and Holden 00204 * tabulated P(nu) distributions as a function of nubar. 00205 * The U238 fit is used for the U232, U234, U236 and 00206 * U238 isotopes, the U235 fit for U233 and U235, the 00207 * Pu239 fit for Pu239 and Pu241. Terrell for other 00208 * isotopes. 00209 */ 00210 00211 00212 extern void setcf252_(G4int *ndist, G4int *neng); 00213 /* 00214 * This function is called to set the data to be sampled for the 00215 * (a) Cf252 spontaneous fission number distribution, and 00216 * (b) Cf252 spontaneous fission neutron energy spectrum 00217 * Input 00218 * ndist: 00219 * 0 (default) to sample the number of neutrons from the 00220 * tabulated data measured by Spencer 00221 * 1 to sample the number of neutrons from Boldeman's data 00222 * neng: 00223 * 0 to sample the spontaneous fission neutron energy from 00224 * Mannhart corrected Maxwellian spectrum 00225 * 1 to sample the spontaneous fission neutron energy from 00226 * Madland-Nix theoretical spectrum 00227 * 2 to sample the spontaneous fission neutron energy from 00228 * the Froehner Watt spectrum 00229 */ 00230 00231 extern void setrngf_(G4float (*funcptr) (void)); 00232 /* 00233 * This function sets the random number generator to the user-defined 00234 * one specified in the argument. If either setrngf_ or setrngd_ are 00235 * not specified, the default system call srand48 will be called. 00236 * Input 00237 * funcptr: 00238 * a random number generator function that returns a 00239 * variable of type G4float 00240 */ 00241 00242 extern void setrngd_(G4double (*funcptr) (void)); 00243 /* 00244 * This function sets the random number generator to the user-defined 00245 * one specified in the argument. If either setrngf_ or setrngd_ are 00246 * not specified, the default system call srand48 will be called. 00247 * Input 00248 * funcptr: 00249 * a random number generator function that returns a 00250 * variable of type G4double 00251 */ 00252 // }