Geant4
v4-10.4-release
메인 페이지
관련된 페이지
모듈
네임스페이스
클래스
파일들
파일 목록
파일 멤버
모두
클래스
네임스페이스들
파일들
함수
변수
타입정의
열거형 타입
열거형 멤버
Friends
매크로
그룹들
페이지들
source
processes
hadronic
models
particle_hp
src
G4ParticleHPIsotropic.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
// 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
}
G4He3::He3
static G4He3 * He3()
Definition:
G4He3.cc:94
G4INCL::Math::max
T max(const T t1, const T t2)
brief Return the largest of the two arguments
Definition:
G4INCLGlobals.hh:112
G4PhysicalConstants.hh
G4Positron.hh
G4Gamma.hh
G4Electron.hh
MeV
static constexpr double MeV
Definition:
G4SIunits.hh:214
Randomize.hh
G4IonTable::GetIonTable
static G4IonTable * GetIonTable()
Definition:
G4IonTable.hh:78
G4ReactionProduct::SetDefinition
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
Definition:
G4ReactionProduct.cc:163
G4ReactionProduct::SetMomentum
void SetMomentum(const G4double x, const G4double y, const G4double z)
Definition:
G4ReactionProduct.cc:174
G4IonTable.hh
G4Proton::Proton
static G4Proton * Proton()
Definition:
G4Proton.cc:93
G4ParticleHPIsotropic::Sample
G4ReactionProduct * Sample(G4double anEnergy, G4double massCode, G4double mass)
Definition:
G4ParticleHPIsotropic.cc:52
G4Deuteron::Deuteron
static G4Deuteron * Deuteron()
Definition:
G4Deuteron.cc:94
G4Gamma::Gamma
static G4Gamma * Gamma()
Definition:
G4Gamma.cc:86
G4He3.hh
Z
Float_t Z
Definition:
advanced/microbeam/plot.C:38
G4Deuteron.hh
G4double
double G4double
Definition:
G4Types.hh:76
G4ReactionProduct::SetKineticEnergy
void SetKineticEnergy(const G4double en)
Definition:
G4ReactionProduct.hh:132
G4UniformRand
#define G4UniformRand()
Definition:
Randomize.hh:53
twopi
static constexpr double twopi
Definition:
G4SIunits.hh:76
G4SystemOfUnits.hh
G4ReactionProduct::GetTotalMomentum
G4double GetTotalMomentum() const
Definition:
G4ReactionProduct.hh:126
A
double A(double temperature)
Definition:
G4DNAElectronHoleRecombination.cc:60
G4Alpha::Alpha
static G4Alpha * Alpha()
Definition:
G4Alpha.cc:89
G4Positron::Positron
static G4Positron * Positron()
Definition:
G4Positron.cc:94
G4ReactionProduct
Definition:
G4ReactionProduct.hh:53
G4Electron::Electron
static G4Electron * Electron()
Definition:
G4Electron.cc:94
G4Alpha.hh
result
G4double G4ParticleHPJENDLHEData::G4double result
Definition:
G4ParticleHPJENDLHEData.cc:257
CLHEP::Hep3Vector
Definition:
ThreeVector.h:41
G4Triton.hh
G4int
int G4int
Definition:
G4Types.hh:78
G4Neutron.hh
G4Triton::Triton
static G4Triton * Triton()
Definition:
G4Triton.cc:95
G4Proton.hh
G4Neutron::Neutron
static G4Neutron * Neutron()
Definition:
G4Neutron.cc:104
G4VParticleHPEnergyAngular::GetQValue
G4double GetQValue()
Definition:
G4VParticleHPEnergyAngular.hh:93
G4ParticleHPIsotropic.hh
G4ParticleHPIsotropic::Init
void Init(std::istream &aDataFile)
Definition:
G4ParticleHPIsotropic.cc:48
다음에 의해 생성됨 :
1.8.5