Geant4-11
Toggle main menu visibility
Main Page
Related Pages
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
m
n
p
r
s
t
w
y
Enumerations
a
b
c
d
e
f
g
l
m
p
r
s
t
v
y
z
Enumerator
a
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
z
Data Structures
Data Structures
Data Structure Index
Class Hierarchy
Data Fields
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
y
Enumerations
a
b
c
d
e
f
g
i
l
m
n
o
p
r
s
t
u
v
w
Enumerator
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Related Functions
:
a
b
c
d
g
h
i
o
q
r
s
t
Files
File List
Globals
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
x
z
Enumerations
b
c
d
e
f
g
i
j
l
m
n
p
r
s
t
w
x
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
y
Macros
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
y
z
Examples
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
source
processes
electromagnetic
standard
include
G4IonCoulombCrossSection.hh
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
// 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
~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
G4IonCoulombCrossSection
&
operator
=
92
(
const
G4IonCoulombCrossSection
&right) =
delete
;
93
G4IonCoulombCrossSection
(
const
G4IonCoulombCrossSection
&) =
delete
;
94
95
private
:
96
97
void
SetScreenRSquare
(
G4int
iz);
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
G4NistManager.hh
G4ParticleDefinition.hh
G4double
double G4double
Definition:
G4Types.hh:83
G4int
int G4int
Definition:
G4Types.hh:85
Z
const G4int Z[17]
Definition:
G4WaterStopping.cc:51
SystemOfUnits.h
G4IonCoulombCrossSection
Definition:
G4IonCoulombCrossSection.hh:70
G4IonCoulombCrossSection::ScreenRSquare
G4double ScreenRSquare
Definition:
G4IonCoulombCrossSection.hh:141
G4IonCoulombCrossSection::mass
G4double mass
Definition:
G4IonCoulombCrossSection.hh:124
G4IonCoulombCrossSection::cosThetaMin
G4double cosThetaMin
Definition:
G4IonCoulombCrossSection.hh:107
G4IonCoulombCrossSection::Initialise
void Initialise(const G4ParticleDefinition *, G4double cosThetaLim)
Definition:
G4IonCoulombCrossSection.cc:99
G4IonCoulombCrossSection::fG4pow
G4Pow * fG4pow
Definition:
G4IonCoulombCrossSection.hh:102
G4IonCoulombCrossSection::theProton
const G4ParticleDefinition * theProton
Definition:
G4IonCoulombCrossSection.hh:99
G4IonCoulombCrossSection::cosThetaMax
G4double cosThetaMax
Definition:
G4IonCoulombCrossSection.hh:108
G4IonCoulombCrossSection::screenZ
G4double screenZ
Definition:
G4IonCoulombCrossSection.hh:139
G4IonCoulombCrossSection::targetZ
G4double targetZ
Definition:
G4IonCoulombCrossSection.hh:137
G4IonCoulombCrossSection::invbeta2
G4double invbeta2
Definition:
G4IonCoulombCrossSection.hh:134
G4IonCoulombCrossSection::mom2
G4double mom2
Definition:
G4IonCoulombCrossSection.hh:133
G4IonCoulombCrossSection::nucXSection
G4double nucXSection
Definition:
G4IonCoulombCrossSection.hh:114
G4IonCoulombCrossSection::G4IonCoulombCrossSection
G4IonCoulombCrossSection(const G4IonCoulombCrossSection &)=delete
G4IonCoulombCrossSection::SetupTarget
void SetupTarget(G4double Z, G4double kinEnergy, G4int heavycorr)
Definition:
G4IonCoulombCrossSection.cc:143
G4IonCoulombCrossSection::G4IonCoulombCrossSection
G4IonCoulombCrossSection()
Definition:
G4IonCoulombCrossSection.cc:70
G4IonCoulombCrossSection::tkinLab
G4double tkinLab
Definition:
G4IonCoulombCrossSection.hh:127
G4IonCoulombCrossSection::particle
const G4ParticleDefinition * particle
Definition:
G4IonCoulombCrossSection.hh:120
G4IonCoulombCrossSection::SetScreenRSquare
void SetScreenRSquare(G4int iz)
Definition:
G4IonCoulombCrossSection.cc:171
G4IonCoulombCrossSection::fNistManager
G4NistManager * fNistManager
Definition:
G4IonCoulombCrossSection.hh:101
G4IonCoulombCrossSection::invbetaLab2
G4double invbetaLab2
Definition:
G4IonCoulombCrossSection.hh:129
G4IonCoulombCrossSection::~G4IonCoulombCrossSection
~G4IonCoulombCrossSection()
Definition:
G4IonCoulombCrossSection.cc:94
G4IonCoulombCrossSection::cosTetMinNuc
G4double cosTetMinNuc
Definition:
G4IonCoulombCrossSection.hh:110
G4IonCoulombCrossSection::coeff
G4double coeff
Definition:
G4IonCoulombCrossSection.hh:104
G4IonCoulombCrossSection::alpha2
G4double alpha2
Definition:
G4IonCoulombCrossSection.hh:140
G4IonCoulombCrossSection::cosTetMaxNuc
G4double cosTetMaxNuc
Definition:
G4IonCoulombCrossSection.hh:111
G4IonCoulombCrossSection::SetupKinematic
void SetupKinematic(G4double kinEnergy, G4double tmass)
Definition:
G4IonCoulombCrossSection.cc:111
G4IonCoulombCrossSection::SetupParticle
void SetupParticle(const G4ParticleDefinition *)
Definition:
G4IonCoulombCrossSection.hh:147
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::chargeSquare
G4double chargeSquare
Definition:
G4IonCoulombCrossSection.hh:122
G4IonCoulombCrossSection::momLab2
G4double momLab2
Definition:
G4IonCoulombCrossSection.hh:128
G4IonCoulombCrossSection::spin
G4double spin
Definition:
G4IonCoulombCrossSection.hh:123
G4IonCoulombCrossSection::etag
G4double etag
Definition:
G4IonCoulombCrossSection.hh:117
G4IonCoulombCrossSection::NuclearCrossSection
G4double NuclearCrossSection()
Definition:
G4IonCoulombCrossSection.cc:190
G4IonCoulombCrossSection::GetMomentum2
G4double GetMomentum2()
Definition:
G4IonCoulombCrossSection.hh:159
G4NistManager
Definition:
G4NistManager.hh:84
G4ParticleDefinition
Definition:
G4ParticleDefinition.hh:61
G4ParticleDefinition::GetPDGMass
G4double GetPDGMass() const
Definition:
G4ParticleDefinition.hh:111
G4ParticleDefinition::GetPDGCharge
G4double GetPDGCharge() const
Definition:
G4ParticleDefinition.hh:113
G4ParticleDefinition::GetPDGSpin
G4double GetPDGSpin() const
Definition:
G4ParticleDefinition.hh:115
G4Pow
Definition:
G4Pow.hh:49
globals.hh
CLHEP::eplus
static constexpr double eplus
Definition:
SystemOfUnits.h:163
Generated by
1.9.3