ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4fissionEvent.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4fissionEvent.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
#ifndef G4fissionEvent_hh
57
#define G4fissionEvent_hh
58
59
#include "
globals.hh
"
60
#include <string>
61
62
class
G4fissionEvent
{
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);
92
~G4fissionEvent
();
93
G4int
getNeutronNu
() {
94
return
neutronNu
;
95
}
96
G4int
getPhotonNu
() {
97
return
photonNu
;
98
}
99
G4double
getNeutronEnergy
(
G4int
index) {
100
if
(index >= 0 && index <
neutronNu
)
return
neutronEnergies
[index];
101
else
return
-1;
102
}
103
G4double
getNeutronVelocity
(
G4int
index) {
104
if
(index >= 0 && index <
neutronNu
)
return
neutronVelocities
[index];
105
else
return
-1;
106
}
107
G4double
getNeutronDircosu
(
G4int
index) {
108
if
(index >= 0 && index <
neutronNu
)
return
neutronDircosu
[index];
109
else
return
-1;
110
}
111
G4double
getNeutronDircosv
(
G4int
index) {
112
if
(index >= 0 && index <
neutronNu
)
return
neutronDircosv
[index];
113
else
return
-1;
114
}
115
G4double
getNeutronDircosw
(
G4int
index) {
116
if
(index >= 0 && index <
neutronNu
)
return
neutronDircosw
[index];
117
else
return
-1;
118
}
119
G4double
getPhotonEnergy
(
G4int
index) {
120
if
(index >= 0 && index <
photonNu
)
return
photonEnergies
[index];
121
else
return
-1;
122
}
123
G4double
getPhotonVelocity
(
G4int
index) {
124
if
(index >= 0 && index <
photonNu
)
return
photonVelocities
[index];
125
else
return
-1;
126
}
127
G4double
getPhotonDircosu
(
G4int
index) {
128
if
(index >= 0 && index <
photonNu
)
return
photonDircosu
[index];
129
else
return
-1;
130
}
131
G4double
getPhotonDircosv
(
G4int
index) {
132
if
(index >= 0 && index <
photonNu
)
return
photonDircosv
[index];
133
else
return
-1;
134
}
135
G4double
getPhotonDircosw
(
G4int
index) {
136
if
(index >= 0 && index <
photonNu
)
return
photonDircosw
[index];
137
else
return
-1;
138
}
139
G4double
getNeutronAge
(
G4int
index) {
140
if
(index >= 0 && index <
neutronNu
)
return
neutronAges
[index];
141
else
return
-1;
142
}
143
G4double
getPhotonAge
(
G4int
index) {
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
geant4
tree
geant4-10.6-release
source
processes
hadronic
models
fission
include
G4fissionEvent.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:43
using
1.8.2 with
ECCE GitHub integration