ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4LLNLFission.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4LLNLFission.hh
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 #include "G4Types.hh"
58 
59 //
60 // This file is a copy of Fission.hh, made for use with Geant4.
61 //
62 
63  extern void genspfissevt_(G4int *isotope, G4double *time);
64 /*
65  * This function is called to trigger a spontaneous fission.
66  * Multiple neutrons and photons are generated and stored
67  * in a stack along with their energies, directions and
68  * emission times.
69  * The arguments of this function are
70  * isotope: 94239 for Pu-239 for instance
71  * time: the time of the spontaneous fission
72  */
73 
74  extern void genfissevt_(G4int *isotope, G4double *time, G4double *nubar, G4double *eng);
75 /*
76  * This function is called to trigger a neutron-induced fission.
77  * Multiple neutrons and photons are generated and stored
78  * in a stack along with their energies, directions and
79  * emission times. In addition to the arguments above, this
80  * function needs
81  * nubar: user-specified average number of neutrons emitted
82  * per fission (e.g. as tabulated in the cross-section
83  * libraries used by the particle transport code)
84  * eng: energy of the neutron inducing fission
85  */
86 
87  extern G4int getnnu_();
88 /*
89  * This function returns the number of neutrons emitted by the
90  * fission, -1 if there is no neutron data for that isotope in
91  * the fission library.
92  */
93 
94  extern G4int getpnu_();
95 /*
96  * This function returns the number of photons emitted by the
97  * fission, -1 if there is no photon data for that isotope in
98  * the fission library.
99  */
100 
101  extern G4double getneng_(G4int *index);
102 /*
103  * Given the index of the emitted neutron, this function returns
104  * its energy, -1 if index isout of range.
105  */
106 
107  extern G4double getnvel_(G4int *index);
108 /*
109  * Given the index of the emitted neutron, this function returns
110  * the amplitude of its velocity, -1 if index is out of range.
111  */
112 
113  extern G4double getndircosu_(G4int *index);
114  extern G4double getndircosv_(G4int *index);
115  extern G4double getndircosw_(G4int *index);
116 /*
117  * Given the index of the emitted neutron, this function returns
118  * the direction cosines of its velocity vector on the x, y and z
119  * axes.
120  */
121 
122  extern G4double getpeng_(G4int *index);
123 /*
124  * Given the index of the emitted photon, this function returns
125  * its energy, -1 if index is out of range.
126  */
127 
128  extern G4double getpvel_(G4int *index);
129 /*
130  * Given the index of the emitted photon, this function returns
131  * the amplitude of its velocity, -1 if index is out of range.
132  */
133 
134  extern G4double getpdircosu_(G4int *index);
135  extern G4double getpdircosv_(G4int *index);
136  extern G4double getpdircosw_(G4int *index);
137 /*
138  * Given the index of the emitted photon, this function returns
139  * the direction cosines of its velocity.
140  */
141 
142  extern G4double getnage_(G4int *index);
143 /*
144  * Given the index of the emitted neutron, this function returns
145  * its age, -1 if index is out of range.
146  * This age will be different from the time specified
147  * in generateFissionEvent and generateSpontaneousFissionEvent
148  * for non-prompt neutrons, i.e. delayed neutrons.
149  */
150 
151  extern G4double getpage_(G4int *index);
152 /*
153  * Given the index of the emitted photon, this function returns
154  * its age, -1 of index is out of range.
155  * This age will be different from the time specified
156  * in generateFissionEvent and generateSpontaneousFissionEvent
157  * for photons that are emitted by beta-decay of the fission
158  * fragments.
159  */
160 
161  extern void setdelay_(G4int *delay);
162 /*
163  * This function is called to enable delayed neutrons and photons
164  * Input
165  * delay:
166  * 0 (default) for strictly prompt neutrons and
167  * photons
168  * 1 (n/a) for prompt neutrons, prompt and delayed
169  * photons
170  * 2 (n/a) for prompt and delayed neutrons, prompt
171  * photons
172  * 3 (n/a) for prompt and delayed neutrons, prompt
173  * and delayed photons
174  */
175 
176  extern void setcorrel_(G4int *correlation);
177 /*
178  * This function is called to set the type of neutron photon correlation
179  * Input
180  * correlation:
181  * 0 (default) for no correlation between neutrons and
182  * photons
183  * 1 (n/a) for number correlation between neutrons and
184  * photons
185  * 2 (n/a) for number and energy correlation between
186  * neutrons and photons
187  */
188 
189  extern void setnudist_(G4int *nudist);
190 /*
191  * This function is called to set the data to be sampled for the neutron
192  * number distributions in induced fissions
193  * Input
194  * nudist:
195  * 0 to use the fit to the Zucker and Holden tabulated
196  * P(nu) distributions as a function of energy for
197  * U235, U238 and Pu239. Terrell for other isotopes.
198  * 1 to use fits to the Zucker and Holden tabulated
199  * P(nu) distribution as a function of energy for
200  * U238 and Pu239, and a fit to the Zucker and Holden
201  * data as well as the Gwin, Spencer and Ingle data
202  * (at thermal energies) as a function of energy for
203  * U235. Terrell for other isotopes.
204  * 2 (default) to use the fit to the Zucker and Holden
205  * tabulated P(nu) distributions as a function of nubar.
206  * The U238 fit is used for the U232, U234, U236 and
207  * U238 isotopes, the U235 fit for U233 and U235, the
208  * Pu239 fit for Pu239 and Pu241. Terrell for other
209  * isotopes.
210  */
211 
212 
213  extern void setcf252_(G4int *ndist, G4int *neng);
214 /*
215  * This function is called to set the data to be sampled for the
216  * (a) Cf252 spontaneous fission number distribution, and
217  * (b) Cf252 spontaneous fission neutron energy spectrum
218  * Input
219  * ndist:
220  * 0 (default) to sample the number of neutrons from the
221  * tabulated data measured by Spencer
222  * 1 to sample the number of neutrons from Boldeman's data
223  * neng:
224  * 0 to sample the spontaneous fission neutron energy from
225  * Mannhart corrected Maxwellian spectrum
226  * 1 to sample the spontaneous fission neutron energy from
227  * Madland-Nix theoretical spectrum
228  * 2 to sample the spontaneous fission neutron energy from
229  * the Froehner Watt spectrum
230  */
231 
232  extern void setrngf_(G4float (*funcptr) (void));
233 /*
234  * This function sets the random number generator to the user-defined
235  * one specified in the argument. If either setrngf_ or setrngd_ are
236  * not specified, the default system call srand48 will be called.
237  * Input
238  * funcptr:
239  * a random number generator function that returns a
240  * variable of type G4float
241  */
242 
243  extern void setrngd_(G4double (*funcptr) (void));
244 /*
245  * This function sets the random number generator to the user-defined
246  * one specified in the argument. If either setrngf_ or setrngd_ are
247  * not specified, the default system call srand48 will be called.
248  * Input
249  * funcptr:
250  * a random number generator function that returns a
251  * variable of type G4double
252  */
253 // }