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