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
G4FPYNormalFragmentDist.cc
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4FPYNormalFragmentDist.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
* File: G4FPYNormalFragmentDist.cc
28
* Author: B. Wendt (wendbryc@isu.edu)
29
*
30
* Created on July 26, 2011, 12:26 PM
31
*/
32
33
#include "
G4Ions.hh
"
34
#include "
Randomize.hh
"
35
#include "
globals.hh
"
36
37
#include "
G4FFGDebuggingMacros.hh
"
38
#include "
G4FFGEnumerations.hh
"
39
#include "
G4FPYNormalFragmentDist.hh
"
40
#include "
G4FissionProductYieldDist.hh
"
41
42
G4FPYNormalFragmentDist::
43
G4FPYNormalFragmentDist
(
G4int
WhichIsotope,
44
G4FFGEnumerations::MetaState
WhichMetaState,
45
G4FFGEnumerations::FissionCause
WhichCause,
46
G4FFGEnumerations::YieldType
WhichYieldType,
47
std::istringstream& dataFile)
48
:
G4FissionProductYieldDist
( WhichIsotope,
49
WhichMetaState,
50
WhichCause,
51
WhichYieldType,
52
dataFile)
53
{
54
// Initialize the class
55
Initialize
();
56
}
57
58
G4FPYNormalFragmentDist::
59
G4FPYNormalFragmentDist
(
G4int
WhichIsotope,
60
G4FFGEnumerations::MetaState
WhichMetaState,
61
G4FFGEnumerations::FissionCause
WhichCause,
62
G4FFGEnumerations::YieldType
WhichYieldType,
63
G4int
Verbosity
,
64
std::istringstream& dataFile)
65
:
G4FissionProductYieldDist
( WhichIsotope,
66
WhichMetaState,
67
WhichCause,
68
WhichYieldType,
69
Verbosity,
70
dataFile)
71
{
72
// Initialize the class
73
Initialize
();
74
}
75
76
void
G4FPYNormalFragmentDist::
77
Initialize
(
void
)
78
{
79
G4FFG_FUNCTIONENTER__
80
81
// Nothing here yet
82
83
G4FFG_FUNCTIONLEAVE__
84
}
85
86
G4Ions
*
G4FPYNormalFragmentDist::
87
GetFissionProduct
(
void
)
88
{
89
G4FFG_FUNCTIONENTER__
90
91
G4Ions
* Particle;
92
93
// Generate a (0, 1] random number and return the respective particle.
94
// The ENDF data tables lists 72172 as the largest fission fragment produced
95
// for any fission event. The maximum alpha production is 10 and the
96
// smallest fissile isotope is 90227. This means that if isotope 72172 were
97
// selected as the first daughter product, then at 10 alpha particles only
98
// 15 nucleons and -2 protons would remain for the second daughter product.
99
// Although the actual probability of this occurring is very small, or 0 in
100
// this case, a check should still be made to ensure that the second
101
// daughter product can be physically realized. This would prevent a
102
// situation such as this extreme example which results in a nucleus of 13
103
// neutrons and 2 anti-protons.
104
// This quick sanity check may become even more valid if the ENDF data
105
// tables are expanded in the future and include larger fission products.
106
107
G4int
icounter=0;
108
G4int
icounter_max=1024;
109
do
110
{
111
icounter++;
112
if
( icounter > icounter_max ) {
113
G4cout
<<
"Loop-counter exceeded the threshold value at "
<< __LINE__ <<
"th line of "
<< __FILE__ <<
"."
<<
G4endl
;
114
break
;
115
}
116
Particle =
FindParticle
(
RandomEngine_
->
G4SampleUniform
());
117
}
while
(Particle->GetAtomicMass() >
RemainingA_
+ 1
118
|| Particle->GetAtomicNumber() >
RemainingZ_
+ 1);
119
// Loop checking, 11.05.2015, T. Koi
120
121
G4FFG_FUNCTIONLEAVE__
122
return
Particle;
123
}
124
125
G4FPYNormalFragmentDist::~G4FPYNormalFragmentDist
(
void
)
126
{
127
G4FFG_FUNCTIONENTER__
128
129
// Empty - all the data elements to be deconstructed are removed by
130
// ~G4FissionProductYieldDist()
131
132
G4FFG_FUNCTIONLEAVE__
133
}
geant4
tree
geant4-10.6-release
source
processes
hadronic
models
particle_hp
src
G4FPYNormalFragmentDist.cc
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:48
using
1.8.2 with
ECCE GitHub integration