Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4fissionEvent.hh
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#ifndef G4fissionEvent_hh
57#define G4fissionEvent_hh
58
59#include "globals.hh"
60#include <string>
61
63 private:
64 G4int neutronNu; // number of neutrons in this fission event
65 G4double* neutronEnergies;
66 G4double* neutronVelocities;
67 G4double* neutronDircosu;
68 G4double* neutronDircosv;
69 G4double* neutronDircosw;
70 G4double* neutronAges;
71
72 G4int photonNu; // number of photons in this fission event
73 G4double* photonEnergies;
74 G4double* photonVelocities;
75 G4double* photonDircosu;
76 G4double* photonDircosv;
77 G4double* photonDircosw;
78 G4double* photonAges;
79
80 // options
81 static G4int delayoption;
82 static G4int correlationoption;
83 static G4int nudistoption;
84 static G4int Cf252ndistoption;
85 static G4int Cf252nengoption;
86 static G4double (*rngdptr)(void);
87 static float (*rngfptr)(void);
88
89 public:
90 // These are all the methods of this class accessible to the caller of the object
91 G4fissionEvent(G4int isotope, G4double time, G4double nubar, G4double eng);
94 return neutronNu;
95 }
97 return photonNu;
98 }
100 if (index >= 0 && index < neutronNu) return neutronEnergies[index];
101 else return -1;
102 }
104 if (index >= 0 && index < neutronNu) return neutronVelocities[index];
105 else return -1;
106 }
108 if (index >= 0 && index < neutronNu) return neutronDircosu[index];
109 else return -1;
110 }
112 if (index >= 0 && index < neutronNu) return neutronDircosv[index];
113 else return -1;
114 }
116 if (index >= 0 && index < neutronNu) return neutronDircosw[index];
117 else return -1;
118 }
120 if (index >= 0 && index < photonNu) return photonEnergies[index];
121 else return -1;
122 }
124 if (index >= 0 && index < photonNu) return photonVelocities[index];
125 else return -1;
126 }
128 if (index >= 0 && index < photonNu) return photonDircosu[index];
129 else return -1;
130 }
132 if (index >= 0 && index < photonNu) return photonDircosv[index];
133 else return -1;
134 }
136 if (index >= 0 && index < photonNu) return photonDircosw[index];
137 else return -1;
138 }
140 if (index >= 0 && index < neutronNu) return neutronAges[index];
141 else return -1;
142 }
144 if (index >= 0 && index < photonNu) return photonAges[index];
145 else return -1;
146 }
147 static void setDelayOption(G4int delay) {
148 delayoption = delay;
149 };
150 static void setCorrelationOption(G4int correlation) {
151 correlationoption = correlation;
152 };
153 static void setNudistOption(G4int nudist) {
154 nudistoption = nudist;
155 };
156 static void setCf252Option(G4int ndist, G4int neng) {
157 Cf252ndistoption = ndist;
158 Cf252nengoption = neng;
159 };
160 static void setRNGf(float (*funcptr) (void)) {
161 rngfptr = funcptr;
162 rngdptr = rngf2d;
163 }
164 static void setRNGd(G4double (*funcptr) (void)) {
165 rngdptr = funcptr;
166 }
167
168
169 private:
170 G4int G4SmpNuDistDataU232_234_236_238(G4double nubar);
171 G4int G4SmpNuDistDataU232_234_236_238_MC(G4double nubar);
172 G4int G4SmpNuDistDataU233_235(G4double nubar);
173 G4int G4SmpNuDistDataU233_235_MC(G4double nubar);
174 G4int G4SmpNuDistDataU235(G4double erg, G4int option);
175 G4int G4SmpNuDistDataPu239(G4double erg);
176 G4double G4SmpNVel(G4double eng, G4double* cosdiru, G4double* cosdirv, G4double* cosdirw);
177 G4double G4SmpNEngCf252(G4int option);
178 void G4SmpIsoDir(G4double* cosdiru, G4double* cosdirv, G4double* cosdirw);
179 G4double G4SmpGEng();
180 G4int G4SmpNuDistDataPu239_241(G4double nubar);
181 G4int G4SmpNuDistDataPu239_241_MC(G4double nubar);
182 G4int G4SmpNuDistDataU238(G4double erg);
183 G4int G4SmpNugDist(G4int isotope, G4double nubar);
184 G4double G4SmpPVel(G4double eng, G4double* cosdiru, G4double* cosdirv, G4double* cosdirw);
185 G4int G4SmpSpNuDistData(G4int isotope, G4int Cf252option);
186 G4double G4SmpSpNubarData(G4int isotope);
187 G4int G4SmpSpNugDistData(G4int isotope);
188 G4double G4SmpTerrell(G4double nubar);
189 G4double G4SmpWatt(G4double ePart, G4int iso);
190 void G4fissionerr(G4int iSever, std::string chSubNam, std::string chMsg);
191 static G4double fisslibrng(void);
192 static G4double rngf2d(void);
193};
194
195#endif
double G4double
Definition G4Types.hh:83
int G4int
Definition G4Types.hh:85
static void setCf252Option(G4int ndist, G4int neng)
static void setCorrelationOption(G4int correlation)
static void setRNGf(float(*funcptr)(void))
G4double getNeutronAge(G4int index)
G4fissionEvent(G4int isotope, G4double time, G4double nubar, G4double eng)
static void setRNGd(G4double(*funcptr)(void))
static void setDelayOption(G4int delay)
G4double getPhotonDircosu(G4int index)
G4double getNeutronEnergy(G4int index)
static void setNudistOption(G4int nudist)
G4double getPhotonVelocity(G4int index)
G4double getPhotonEnergy(G4int index)
G4double getPhotonAge(G4int index)
G4double getNeutronVelocity(G4int index)
G4double getNeutronDircosv(G4int index)
G4double getPhotonDircosw(G4int index)
G4double getNeutronDircosw(G4int index)
G4double getNeutronDircosu(G4int index)
G4double getPhotonDircosv(G4int index)