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