Geant4
11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4FPYNormalFragmentDist.cc
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
* File: G4FPYNormalFragmentDist.cc
28
* Author: B. Wendt (
[email protected]
)
29
*
30
* Created on July 26, 2011, 12:26 PM
31
*/
32
33
#include "
G4FPYNormalFragmentDist.hh
"
34
35
#include "
G4FFGDebuggingMacros.hh
"
36
#include "
G4FFGEnumerations.hh
"
37
#include "
G4FissionProductYieldDist.hh
"
38
#include "
G4Ions.hh
"
39
#include "
Randomize.hh
"
40
#include "
globals.hh
"
41
42
G4FPYNormalFragmentDist::G4FPYNormalFragmentDist
(
G4int
WhichIsotope,
43
G4FFGEnumerations::MetaState
WhichMetaState,
44
G4FFGEnumerations::FissionCause
WhichCause,
45
G4FFGEnumerations::YieldType
WhichYieldType,
46
std::istringstream& dataFile)
47
:
G4FissionProductYieldDist
(WhichIsotope, WhichMetaState, WhichCause, WhichYieldType, dataFile)
48
{
49
// Initialize the class
50
Initialize
();
51
}
52
53
G4FPYNormalFragmentDist::G4FPYNormalFragmentDist
(
G4int
WhichIsotope,
54
G4FFGEnumerations::MetaState
WhichMetaState,
55
G4FFGEnumerations::FissionCause
WhichCause,
56
G4FFGEnumerations::YieldType
WhichYieldType,
57
G4int
Verbosity, std::istringstream& dataFile)
58
:
G4FissionProductYieldDist
(WhichIsotope, WhichMetaState, WhichCause, WhichYieldType, Verbosity,
59
dataFile)
60
{
61
// Initialize the class
62
Initialize
();
63
}
64
65
void
G4FPYNormalFragmentDist::Initialize
(){
G4FFG_FUNCTIONENTER__
66
67
// Nothing here yet
68
69
G4FFG_FUNCTIONLEAVE__
}
70
71
G4Ions
*
G4FPYNormalFragmentDist::GetFissionProduct
()
72
{
73
G4FFG_FUNCTIONENTER__
74
75
G4Ions
* Particle =
nullptr
;
76
77
// Generate a (0, 1] random number and return the respective particle.
78
// The ENDF data tables lists 72172 as the largest fission fragment produced
79
// for any fission event. The maximum alpha production is 10 and the
80
// smallest fissile isotope is 90227. This means that if isotope 72172 were
81
// selected as the first daughter product, then at 10 alpha particles only
82
// 15 nucleons and -2 protons would remain for the second daughter product.
83
// Although the actual probability of this occurring is very small, or 0 in
84
// this case, a check should still be made to ensure that the second
85
// daughter product can be physically realized. This would prevent a
86
// situation such as this extreme example which results in a nucleus of 13
87
// neutrons and 2 anti-protons.
88
// This quick sanity check may become even more valid if the ENDF data
89
// tables are expanded in the future and include larger fission products.
90
91
G4int
icounter = 0;
92
G4int
icounter_max = 1024;
93
do
{
94
icounter++;
95
if
(icounter > icounter_max) {
96
G4cout
<<
"Loop-counter exceeded the threshold value at "
<< __LINE__ <<
"th line of "
97
<< __FILE__ <<
"."
<<
G4endl
;
98
break
;
99
}
100
Particle =
FindParticle
(
RandomEngine_
->
G4SampleUniform
());
101
}
while
(Particle->GetAtomicMass() >
RemainingA_
+ 1
102
|| Particle->GetAtomicNumber() >
RemainingZ_
+ 1);
103
// Loop checking, 11.05.2015, T. Koi
104
105
G4FFG_FUNCTIONLEAVE__
106
return
Particle;
107
}
108
109
G4FPYNormalFragmentDist::~G4FPYNormalFragmentDist
()
110
{
111
G4FFG_FUNCTIONENTER__
112
113
// Empty - all the data elements to be deconstructed are removed by
114
// ~G4FissionProductYieldDist()
115
116
G4FFG_FUNCTIONLEAVE__
117
}
G4FFGDebuggingMacros.hh
G4FFG_FUNCTIONLEAVE__
#define G4FFG_FUNCTIONLEAVE__
Definition
G4FFGDebuggingMacros.hh:211
G4FFG_FUNCTIONENTER__
#define G4FFG_FUNCTIONENTER__
Definition
G4FFGDebuggingMacros.hh:207
G4FFGEnumerations.hh
G4FPYNormalFragmentDist.hh
G4FissionProductYieldDist.hh
G4Ions.hh
G4int
int G4int
Definition
G4Types.hh:85
G4endl
#define G4endl
Definition
G4ios.hh:67
G4cout
G4GLOB_DLL std::ostream G4cout
Randomize.hh
G4FPYNormalFragmentDist::Initialize
void Initialize()
Definition
G4FPYNormalFragmentDist.cc:65
G4FPYNormalFragmentDist::GetFissionProduct
G4Ions * GetFissionProduct() override
Definition
G4FPYNormalFragmentDist.cc:71
G4FPYNormalFragmentDist::~G4FPYNormalFragmentDist
~G4FPYNormalFragmentDist() override
Definition
G4FPYNormalFragmentDist.cc:109
G4FPYNormalFragmentDist::G4FPYNormalFragmentDist
G4FPYNormalFragmentDist(G4int WhichIsotope, G4FFGEnumerations::MetaState WhichMetaState, G4FFGEnumerations::FissionCause WhichCause, G4FFGEnumerations::YieldType WhichYieldType, std::istringstream &dataFile)
Definition
G4FPYNormalFragmentDist.cc:42
G4FPYSamplingOps::G4SampleUniform
G4double G4SampleUniform()
Definition
G4FPYSamplingOps.cc:229
G4FissionProductYieldDist
Definition
G4FissionProductYieldDist.hh:54
G4FissionProductYieldDist::RandomEngine_
G4FPYSamplingOps * RandomEngine_
Definition
G4FissionProductYieldDist.hh:259
G4FissionProductYieldDist::RemainingZ_
G4int RemainingZ_
Definition
G4FissionProductYieldDist.hh:215
G4FissionProductYieldDist::FindParticle
G4Ions * FindParticle(G4double RandomParticle)
Definition
G4FissionProductYieldDist.cc:652
G4FissionProductYieldDist::RemainingA_
G4int RemainingA_
Definition
G4FissionProductYieldDist.hh:217
G4Ions
Definition
G4Ions.hh:48
globals.hh
G4FFGEnumerations::FissionCause
FissionCause
Definition
G4FFGEnumerations.hh:66
G4FFGEnumerations::MetaState
MetaState
Definition
G4FFGEnumerations.hh:109
G4FFGEnumerations::YieldType
YieldType
Definition
G4FFGEnumerations.hh:49
geant4-v11.2.2
source
processes
hadronic
models
particle_hp
src
G4FPYNormalFragmentDist.cc
Generated by
1.12.0