Geant4
v4-10.4-release
메인 페이지
관련된 페이지
모듈
네임스페이스
클래스
파일들
파일 목록
파일 멤버
모두
클래스
네임스페이스들
파일들
함수
변수
타입정의
열거형 타입
열거형 멤버
Friends
매크로
그룹들
페이지들
source
processes
electromagnetic
standard
include
G4IonCoulombCrossSection.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
// G4IonCoulombCrossSection.hh
27
//-------------------------------------------------------------------
28
//
29
// GEANT4 Class header file
30
//
31
// File name: G4IonCoulombCrossSection
32
//
33
// Author: Cristina Consolandi
34
//
35
// Creation date: 05.10.2010 from G4eCoulombScatteringModel
36
//
37
// Class Description:
38
// Computation of Screen-Coulomb Cross Section
39
// for protons, alpha and heavy Ions
40
//
41
//
42
// Reference:
43
// M.J. Boschini et al. "Nuclear and Non-Ionizing Energy-Loss
44
// for Coulomb Scattered Particles from Low Energy up to Relativistic
45
// Regime in Space Radiation Environment"
46
// Accepted for publication in the Proceedings of the ICATPP Conference
47
// on Cosmic Rays for Particle and Astroparticle Physics, Villa Olmo, 7-8
48
// October, 2010, to be published by World Scientific (Singapore).
49
//
50
// Available for downloading at:
51
// http://arxiv.org/abs/1011.4822
52
//
53
// -------------------------------------------------------------------
54
55
//
56
#ifndef G4IonCoulombCrossSection_h
57
#define G4IonCoulombCrossSection_h 1
58
59
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
60
61
#include <
CLHEP/Units/SystemOfUnits.h
>
62
63
#include "
globals.hh
"
64
#include "
G4NistManager.hh
"
65
#include "
G4ParticleDefinition.hh
"
66
67
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
68
69
class
G4IonCoulombCrossSection
70
{
71
public
:
72
73
explicit
G4IonCoulombCrossSection
();
74
75
virtual
~G4IonCoulombCrossSection
();
76
77
void
Initialise
(
const
G4ParticleDefinition
*,
G4double
cosThetaLim);
78
79
G4double
NuclearCrossSection
();
80
81
G4double
SampleCosineTheta
();
82
83
void
SetupKinematic
(
G4double
kinEnergy,
G4double
tmass);
84
85
void
SetupTarget
(
G4double
Z
,
G4double
kinEnergy,
G4int
heavycorr);
86
87
inline
void
SetupParticle
(
const
G4ParticleDefinition
*);
88
89
inline
G4double
GetMomentum2
();
90
91
private
:
92
93
void
SetScreenRSquare
(
G4int
iz);
94
95
G4IonCoulombCrossSection
&
operator
=
96
(
const
G4IonCoulombCrossSection
&
right
) =
delete
;
97
G4IonCoulombCrossSection
(
const
G4IonCoulombCrossSection
&) =
delete
;
98
99
const
G4ParticleDefinition
*
theProton
;
100
101
G4NistManager
*
fNistManager
;
102
G4Pow
*
fG4pow
;
103
104
G4double
coeff
;
105
106
//cost - min - max
107
G4double
cosThetaMin
;
// def 1.0
108
G4double
cosThetaMax
;
// def -1.0
109
//SetupTarget
110
G4double
cosTetMinNuc
;
// -->cosThetaMin
111
G4double
cosTetMaxNuc
;
// -->cosThetaMax
112
113
//cross section
114
G4double
nucXSection
;
115
116
//energy
117
G4double
etag
;
118
119
// projectile........................
120
const
G4ParticleDefinition
*
particle
;
121
122
G4double
chargeSquare
;
123
G4double
spin
;
124
G4double
mass
;
125
126
//lab of incedent particle
127
G4double
tkinLab
;
128
G4double
momLab2
;
129
G4double
invbetaLab2
;
130
131
//relative system with nucleus
132
G4double
tkin
;
133
G4double
mom2
;
134
G4double
invbeta2
;
135
136
// target nucleus
137
G4double
targetZ
;
138
G4double
targetMass
;
139
G4double
screenZ
;
140
G4double
alpha2
;
141
G4double
ScreenRSquare
;
142
};
143
144
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
145
146
inline
147
void
G4IonCoulombCrossSection::SetupParticle
(
const
G4ParticleDefinition
*
p
)
148
{
149
particle
=
p
;
150
mass
=
particle
->
GetPDGMass
();
151
spin
=
particle
->
GetPDGSpin
();
152
if
(0.0 !=
spin
) {
spin
= 0.5; }
153
G4double
q =
particle
->
GetPDGCharge
()/
CLHEP::eplus
;
154
chargeSquare
= q*q;
155
tkin
= 0.0;
156
}
157
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
158
159
inline
G4double
G4IonCoulombCrossSection::GetMomentum2
()
160
{
161
return
mom2
;
162
}
163
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
164
165
#endif
166
167
right
Definition:
F04UserTrackInformation.hh:37
G4IonCoulombCrossSection::mass
G4double mass
Definition:
G4IonCoulombCrossSection.hh:124
G4IonCoulombCrossSection::theProton
const G4ParticleDefinition * theProton
Definition:
G4IonCoulombCrossSection.hh:99
G4IonCoulombCrossSection::etag
G4double etag
Definition:
G4IonCoulombCrossSection.hh:117
G4IonCoulombCrossSection::NuclearCrossSection
G4double NuclearCrossSection()
Definition:
G4IonCoulombCrossSection.cc:190
p
const char * p
Definition:
xmltok.h:285
G4IonCoulombCrossSection::mom2
G4double mom2
Definition:
G4IonCoulombCrossSection.hh:133
G4IonCoulombCrossSection::momLab2
G4double momLab2
Definition:
G4IonCoulombCrossSection.hh:128
G4IonCoulombCrossSection::G4IonCoulombCrossSection
G4IonCoulombCrossSection()
Definition:
G4IonCoulombCrossSection.cc:70
G4ParticleDefinition::GetPDGCharge
G4double GetPDGCharge() const
Definition:
G4ParticleDefinition.hh:125
G4IonCoulombCrossSection::Initialise
void Initialise(const G4ParticleDefinition *, G4double cosThetaLim)
Definition:
G4IonCoulombCrossSection.cc:99
G4IonCoulombCrossSection::invbeta2
G4double invbeta2
Definition:
G4IonCoulombCrossSection.hh:134
G4ParticleDefinition::GetPDGMass
G4double GetPDGMass() const
Definition:
G4ParticleDefinition.hh:123
G4IonCoulombCrossSection::coeff
G4double coeff
Definition:
G4IonCoulombCrossSection.hh:104
G4IonCoulombCrossSection::alpha2
G4double alpha2
Definition:
G4IonCoulombCrossSection.hh:140
G4IonCoulombCrossSection::ScreenRSquare
G4double ScreenRSquare
Definition:
G4IonCoulombCrossSection.hh:141
Z
Float_t Z
Definition:
advanced/microbeam/plot.C:38
G4IonCoulombCrossSection::cosThetaMin
G4double cosThetaMin
Definition:
G4IonCoulombCrossSection.hh:107
G4ParticleDefinition::GetPDGSpin
G4double GetPDGSpin() const
Definition:
G4ParticleDefinition.hh:127
G4double
double G4double
Definition:
G4Types.hh:76
G4IonCoulombCrossSection
Definition:
G4IonCoulombCrossSection.hh:69
G4IonCoulombCrossSection::targetMass
G4double targetMass
Definition:
G4IonCoulombCrossSection.hh:138
G4IonCoulombCrossSection::SampleCosineTheta
G4double SampleCosineTheta()
Definition:
G4IonCoulombCrossSection.cc:212
G4IonCoulombCrossSection::tkin
G4double tkin
Definition:
G4IonCoulombCrossSection.hh:132
G4IonCoulombCrossSection::fG4pow
G4Pow * fG4pow
Definition:
G4IonCoulombCrossSection.hh:102
G4ParticleDefinition
Definition:
G4ParticleDefinition.hh:73
G4IonCoulombCrossSection::fNistManager
G4NistManager * fNistManager
Definition:
G4IonCoulombCrossSection.hh:101
globals.hh
G4IonCoulombCrossSection::~G4IonCoulombCrossSection
virtual ~G4IonCoulombCrossSection()
Definition:
G4IonCoulombCrossSection.cc:94
G4IonCoulombCrossSection::spin
G4double spin
Definition:
G4IonCoulombCrossSection.hh:123
G4IonCoulombCrossSection::SetupParticle
void SetupParticle(const G4ParticleDefinition *)
Definition:
G4IonCoulombCrossSection.hh:147
SystemOfUnits.h
G4int
int G4int
Definition:
G4Types.hh:78
G4IonCoulombCrossSection::SetupTarget
void SetupTarget(G4double Z, G4double kinEnergy, G4int heavycorr)
Definition:
G4IonCoulombCrossSection.cc:143
G4IonCoulombCrossSection::SetupKinematic
void SetupKinematic(G4double kinEnergy, G4double tmass)
Definition:
G4IonCoulombCrossSection.cc:111
G4NistManager
Definition:
G4NistManager.hh:83
G4IonCoulombCrossSection::invbetaLab2
G4double invbetaLab2
Definition:
G4IonCoulombCrossSection.hh:129
G4Pow
Definition:
G4Pow.hh:56
G4IonCoulombCrossSection::particle
const G4ParticleDefinition * particle
Definition:
G4IonCoulombCrossSection.hh:120
G4IonCoulombCrossSection::cosTetMinNuc
G4double cosTetMinNuc
Definition:
G4IonCoulombCrossSection.hh:110
G4IonCoulombCrossSection::screenZ
G4double screenZ
Definition:
G4IonCoulombCrossSection.hh:139
G4ParticleDefinition.hh
G4IonCoulombCrossSection::chargeSquare
G4double chargeSquare
Definition:
G4IonCoulombCrossSection.hh:122
G4IonCoulombCrossSection::SetScreenRSquare
void SetScreenRSquare(G4int iz)
Definition:
G4IonCoulombCrossSection.cc:171
G4IonCoulombCrossSection::GetMomentum2
G4double GetMomentum2()
Definition:
G4IonCoulombCrossSection.hh:159
G4IonCoulombCrossSection::cosTetMaxNuc
G4double cosTetMaxNuc
Definition:
G4IonCoulombCrossSection.hh:111
G4IonCoulombCrossSection::cosThetaMax
G4double cosThetaMax
Definition:
G4IonCoulombCrossSection.hh:108
G4IonCoulombCrossSection::tkinLab
G4double tkinLab
Definition:
G4IonCoulombCrossSection.hh:127
G4IonCoulombCrossSection::targetZ
G4double targetZ
Definition:
G4IonCoulombCrossSection.hh:137
CLHEP::eplus
static constexpr double eplus
Definition:
SystemOfUnits.h:157
G4IonCoulombCrossSection::nucXSection
G4double nucXSection
Definition:
G4IonCoulombCrossSection.hh:114
G4NistManager.hh
다음에 의해 생성됨 :
1.8.5