ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4LLNLFission.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4LLNLFission.cc
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)) {
201  G4fissionEvent::setRNGf(funcptr);
202  }
203 
204  void setrngd_(G4double (*funcptr) (void)) {
205  G4fissionEvent::setRNGd(funcptr);
206  }
207 // }