Geant4
10.03.p03
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4ParticleHPIsotropic.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
// neutron_hp -- source file
27
// J.P. Wellisch, Nov-1996
28
// A prototype of the low energy neutron transport model.
29
//
30
// P. Arce, June-2014 Conversion neutron_hp to particle_hp
31
//
32
#include "
G4ParticleHPIsotropic.hh
"
33
#include "
G4PhysicalConstants.hh
"
34
#include "
G4SystemOfUnits.hh
"
35
#include "
Randomize.hh
"
36
#include "
G4Gamma.hh
"
37
#include "
G4Electron.hh
"
38
#include "
G4Positron.hh
"
39
#include "
G4Neutron.hh
"
40
#include "
G4Proton.hh
"
41
#include "
G4Deuteron.hh
"
42
#include "
G4Triton.hh
"
43
#include "
G4He3.hh
"
44
#include "
G4Alpha.hh
"
45
#include "
G4IonTable.hh
"
46
47
48
void
G4ParticleHPIsotropic::Init
(std::istream & )
49
{
50
}
51
52
G4ReactionProduct
*
G4ParticleHPIsotropic::Sample
(
G4double
anEnergy,
G4double
massCode,
G4double
)
53
{
54
G4ReactionProduct
*
result
=
new
G4ReactionProduct
;
55
G4int
Z
=
static_cast<
G4int
>
(massCode/1000);
56
G4int
A
=
static_cast<
G4int
>
(massCode-1000*
Z
);
57
58
if
(massCode==0)
59
{
60
result->
SetDefinition
(
G4Gamma::Gamma
());
61
}
62
else
if
(A==0)
63
{
64
result->
SetDefinition
(
G4Electron::Electron
());
65
if
(Z==1) result->
SetDefinition
(
G4Positron::Positron
());
66
}
67
else
if
(A==1)
68
{
69
result->
SetDefinition
(
G4Neutron::Neutron
());
70
if
(Z==1) result->
SetDefinition
(
G4Proton::Proton
());
71
}
72
else
if
(A==2)
73
{
74
result->
SetDefinition
(
G4Deuteron::Deuteron
());
75
}
76
else
if
(A==3)
77
{
78
result->
SetDefinition
(
G4Triton::Triton
());
79
if
(Z==2) result->
SetDefinition
(
G4He3::He3
());
80
}
81
else
if
(A==4)
82
{
83
result->
SetDefinition
(
G4Alpha::Alpha
());
84
//110607 TK modified following parts for migration to G4NDL3.15 (ENDF VII.r0)
85
//if(Z!=2) throw G4HadronicException(__FILE__, __LINE__, "Unknown ion case 1");
86
if
(Z!=2)
87
{
88
result->
SetDefinition
(
G4IonTable::GetIonTable
()->GetIon ( Z , A , 0.0 ) );
89
}
90
}
91
else
92
{
93
//110607 TK modified following parts for migration to G4NDL3.15 (ENDF VII.r0)
94
result->
SetDefinition
(
G4IonTable::GetIonTable
()->GetIon ( Z , A , 0.0 ) );
95
//throw G4HadronicException(__FILE__, __LINE__, "G4ParticleHPIsotropic: Unknown ion case 2");
96
}
97
98
G4double
cosTh =
G4UniformRand
();
99
G4double
phi =
twopi
*
G4UniformRand
();
100
G4double
theta = std::acos(cosTh);
101
G4double
sinth = std::sin(theta);
102
103
// we need the the Q value of the reaction
104
result->
SetKineticEnergy
(
std::max
(0.001*
MeV
, anEnergy+
GetQValue
()));
105
G4double
mtot = result->
GetTotalMomentum
();
106
G4ThreeVector
tempVector(mtot*sinth*std::cos(phi), mtot*sinth*std::sin(phi), mtot*std::cos(theta) );
107
result->
SetMomentum
(tempVector);
108
109
return
result
;
110
}
result
G4double G4ParticleHPJENDLHEData::G4double result
Definition:
G4ParticleHPJENDLHEData.cc:257
CLHEP::Hep3Vector
Definition:
ThreeVector.h:41
G4ParticleHPIsotropic::Init
void Init(std::istream &aDataFile)
Definition:
G4ParticleHPIsotropic.cc:48
G4ReactionProduct::GetTotalMomentum
G4double GetTotalMomentum() const
Definition:
G4ReactionProduct.hh:126
G4Triton.hh
G4ParticleHPIsotropic.hh
G4ReactionProduct::SetKineticEnergy
void SetKineticEnergy(const G4double en)
Definition:
G4ReactionProduct.hh:132
G4ReactionProduct::SetMomentum
void SetMomentum(const G4double x, const G4double y, const G4double z)
Definition:
G4ReactionProduct.cc:171
G4int
int G4int
Definition:
G4Types.hh:78
G4ReactionProduct
Definition:
G4ReactionProduct.hh:53
G4IonTable.hh
G4ReactionProduct::SetDefinition
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
Definition:
G4ReactionProduct.cc:160
twopi
static constexpr double twopi
Definition:
G4SIunits.hh:76
G4UniformRand
#define G4UniformRand()
Definition:
Randomize.hh:97
A
double A(double temperature)
Definition:
G4DNAElectronHoleRecombination.cc:60
G4Neutron.hh
G4Proton.hh
G4Alpha.hh
G4Triton::Triton
static G4Triton * Triton()
Definition:
G4Triton.cc:95
G4Positron.hh
G4Proton::Proton
static G4Proton * Proton()
Definition:
G4Proton.cc:93
Randomize.hh
G4Neutron::Neutron
static G4Neutron * Neutron()
Definition:
G4Neutron.cc:104
G4Gamma::Gamma
static G4Gamma * Gamma()
Definition:
G4Gamma.cc:86
G4Deuteron::Deuteron
static G4Deuteron * Deuteron()
Definition:
G4Deuteron.cc:94
G4Deuteron.hh
G4IonTable::GetIonTable
static G4IonTable * GetIonTable()
Definition:
G4IonTable.hh:78
G4PhysicalConstants.hh
G4Positron::Positron
static G4Positron * Positron()
Definition:
G4Positron.cc:94
G4Electron.hh
G4INCL::Math::max
T max(const T t1, const T t2)
brief Return the largest of the two arguments
Definition:
G4INCLGlobals.hh:112
G4He3.hh
G4Electron::Electron
static G4Electron * Electron()
Definition:
G4Electron.cc:94
MeV
static constexpr double MeV
Definition:
G4SIunits.hh:214
G4Alpha::Alpha
static G4Alpha * Alpha()
Definition:
G4Alpha.cc:89
G4double
double G4double
Definition:
G4Types.hh:76
G4SystemOfUnits.hh
G4ParticleHPIsotropic::Sample
G4ReactionProduct * Sample(G4double anEnergy, G4double massCode, G4double mass)
Definition:
G4ParticleHPIsotropic.cc:52
G4He3::He3
static G4He3 * He3()
Definition:
G4He3.cc:94
G4VParticleHPEnergyAngular::GetQValue
G4double GetQValue()
Definition:
G4VParticleHPEnergyAngular.hh:93
Z
G4int Z
Definition:
G4ParticleHPJENDLHEData.cc:262
G4Gamma.hh
source
geant4.10.03.p03
source
processes
hadronic
models
particle_hp
src
G4ParticleHPIsotropic.cc
Generated on Tue Nov 28 2017 21:44:16 for Geant4 by
1.8.5