Geant4.10
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
geant4.10.00.p01
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 "
G4Material.hh
"
65
#include "
G4Element.hh
"
66
#include "
G4ElementVector.hh
"
67
#include "
G4NistManager.hh
"
68
#include "
G4ThreeVector.hh
"
69
#include "
G4Pow.hh
"
70
#include "
G4LossTableManager.hh
"
71
72
class
G4ParticleDefinition
;
73
74
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
75
76
class
G4IonCoulombCrossSection
77
{
78
79
public
:
80
81
G4IonCoulombCrossSection
();
82
83
virtual
~G4IonCoulombCrossSection
();
84
85
void
Initialise
(
const
G4ParticleDefinition
*,
G4double
cosThetaLim);
86
87
G4double
NuclearCrossSection
();
88
89
G4double
SampleCosineTheta
();
90
91
inline
void
SetupParticle
(
const
G4ParticleDefinition
*);
92
93
void
SetupKinematic
(
G4double
kinEnergy,
G4double
cut,
G4int
iz
);
94
95
void
SetupTarget
(
G4double
Z,
G4double
kinEnergy,
G4int
heavycorr);
96
97
inline
G4double
GetMomentum2
();
98
99
private
:
100
void
SetScreenRSquare(
G4int
iz);
101
102
103
G4IonCoulombCrossSection
& operator=(
const
G4IonCoulombCrossSection
&
right
);
104
G4IonCoulombCrossSection
(
const
G4IonCoulombCrossSection
&);
105
106
107
108
const
G4ParticleDefinition
* theProton;
109
110
G4NistManager
* fNistManager;
111
112
protected
:
113
G4double
coeff
;
114
115
//cost - min - max
116
G4double
cosThetaMin
;
// def 1.0
117
G4double
cosThetaMax
;
// def -1.0
118
119
//SetupTarget
120
G4double
cosTetMinNuc
;
// -->cosThetaMin
121
G4double
cosTetMaxNuc
;
// -->cosThetaMax
122
123
124
//cross section
125
G4double
nucXSection
;
126
127
//energy cut
128
G4double
ecut
;
129
G4double
etag
;
130
131
// projectile........................
132
const
G4ParticleDefinition
*
particle
;
133
134
G4double
chargeSquare
;
135
G4double
spin
;
136
G4double
mass
;
137
138
//lab of incedent particle
139
G4double
tkinLab
;
140
G4double
momLab2
;
141
G4double
invbetaLab2
;
142
143
//relative system with nucleus
144
G4double
tkin
;
145
G4double
mom2
;
146
G4double
invbeta2
;
147
148
// target nucleus
149
G4double
targetZ
;
150
G4double
targetMass
;
151
G4double
screenZ
;
152
153
154
private
:
155
156
G4double
alpha2;
157
G4double
ScreenRSquare;
158
159
};
160
161
162
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
163
164
inline
void
G4IonCoulombCrossSection::SetupParticle
(
const
G4ParticleDefinition
*
p
)
165
{
166
particle
=
p
;
167
mass
=
particle
->
GetPDGMass
();
168
spin
=
particle
->
GetPDGSpin
();
169
if
(0.0 !=
spin
) {
spin
= 0.5; }
170
G4double
q = std::fabs(
particle
->
GetPDGCharge
()/CLHEP::eplus);
171
chargeSquare
= q*q;
172
tkin
= 0.0;
173
}
174
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
175
176
177
inline
G4double
G4IonCoulombCrossSection::GetMomentum2
(){
178
return
mom2
;
179
}
180
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
181
182
#endif
183
184
G4IonCoulombCrossSection::SetupTarget
void SetupTarget(G4double Z, G4double kinEnergy, G4int heavycorr)
Definition:
G4IonCoulombCrossSection.cc:154
G4IonCoulombCrossSection::invbetaLab2
G4double invbetaLab2
Definition:
G4IonCoulombCrossSection.hh:141
G4IonCoulombCrossSection::etag
G4double etag
Definition:
G4IonCoulombCrossSection.hh:129
right
Definition:
F04UserTrackInformation.hh:37
G4IonCoulombCrossSection::tkin
G4double tkin
Definition:
G4IonCoulombCrossSection.hh:144
G4IonCoulombCrossSection::invbeta2
G4double invbeta2
Definition:
G4IonCoulombCrossSection.hh:146
G4IonCoulombCrossSection::mass
G4double mass
Definition:
G4IonCoulombCrossSection.hh:136
G4IonCoulombCrossSection::coeff
G4double coeff
Definition:
G4IonCoulombCrossSection.hh:113
G4Element.hh
G4NistManager.hh
p
const char * p
Definition:
xmltok.h:285
G4IonCoulombCrossSection::tkinLab
G4double tkinLab
Definition:
G4IonCoulombCrossSection.hh:139
G4LossTableManager.hh
G4IonCoulombCrossSection::targetMass
G4double targetMass
Definition:
G4IonCoulombCrossSection.hh:150
G4IonCoulombCrossSection::SampleCosineTheta
G4double SampleCosineTheta()
Definition:
G4IonCoulombCrossSection.cc:236
G4IonCoulombCrossSection::~G4IonCoulombCrossSection
virtual ~G4IonCoulombCrossSection()
Definition:
G4IonCoulombCrossSection.cc:96
G4IonCoulombCrossSection::nucXSection
G4double nucXSection
Definition:
G4IonCoulombCrossSection.hh:125
G4ParticleDefinition
Definition:
G4ParticleDefinition.hh:111
G4int
int G4int
Definition:
G4Types.hh:78
G4IonCoulombCrossSection::G4IonCoulombCrossSection
G4IonCoulombCrossSection()
Definition:
G4IonCoulombCrossSection.cc:67
G4IonCoulombCrossSection::spin
G4double spin
Definition:
G4IonCoulombCrossSection.hh:135
G4IonCoulombCrossSection::particle
const G4ParticleDefinition * particle
Definition:
G4IonCoulombCrossSection.hh:132
G4IonCoulombCrossSection::GetMomentum2
G4double GetMomentum2()
Definition:
G4IonCoulombCrossSection.hh:177
G4IonCoulombCrossSection::chargeSquare
G4double chargeSquare
Definition:
G4IonCoulombCrossSection.hh:134
G4NistManager
Definition:
G4NistManager.hh:82
G4IonCoulombCrossSection::cosTetMinNuc
G4double cosTetMinNuc
Definition:
G4IonCoulombCrossSection.hh:120
G4IonCoulombCrossSection::SetupParticle
void SetupParticle(const G4ParticleDefinition *)
Definition:
G4IonCoulombCrossSection.hh:164
G4IonCoulombCrossSection::ecut
G4double ecut
Definition:
G4IonCoulombCrossSection.hh:128
iz
G4double iz
Definition:
TRTMaterials.hh:39
G4Material.hh
G4IonCoulombCrossSection::cosThetaMax
G4double cosThetaMax
Definition:
G4IonCoulombCrossSection.hh:117
G4ElementVector.hh
G4IonCoulombCrossSection::screenZ
G4double screenZ
Definition:
G4IonCoulombCrossSection.hh:151
globals.hh
G4IonCoulombCrossSection::NuclearCrossSection
G4double NuclearCrossSection()
Definition:
G4IonCoulombCrossSection.cc:211
G4IonCoulombCrossSection::mom2
G4double mom2
Definition:
G4IonCoulombCrossSection.hh:145
G4IonCoulombCrossSection::targetZ
G4double targetZ
Definition:
G4IonCoulombCrossSection.hh:149
G4ParticleDefinition::GetPDGMass
G4double GetPDGMass() const
Definition:
G4ParticleDefinition.hh:161
G4IonCoulombCrossSection::momLab2
G4double momLab2
Definition:
G4IonCoulombCrossSection.hh:140
G4ParticleDefinition::GetPDGSpin
G4double GetPDGSpin() const
Definition:
G4ParticleDefinition.hh:165
G4IonCoulombCrossSection::cosThetaMin
G4double cosThetaMin
Definition:
G4IonCoulombCrossSection.hh:116
G4IonCoulombCrossSection::cosTetMaxNuc
G4double cosTetMaxNuc
Definition:
G4IonCoulombCrossSection.hh:121
G4double
double G4double
Definition:
G4Types.hh:76
G4IonCoulombCrossSection
Definition:
G4IonCoulombCrossSection.hh:76
G4ThreeVector.hh
G4ParticleDefinition::GetPDGCharge
G4double GetPDGCharge() const
Definition:
G4ParticleDefinition.hh:163
G4Pow.hh
SystemOfUnits.h
G4IonCoulombCrossSection::Initialise
void Initialise(const G4ParticleDefinition *, G4double cosThetaLim)
Definition:
G4IonCoulombCrossSection.cc:100
G4IonCoulombCrossSection::SetupKinematic
void SetupKinematic(G4double kinEnergy, G4double cut, G4int iz)
Definition:
G4IonCoulombCrossSection.cc:116
Generated on Wed Apr 30 2014 15:54:50 for Geant4.10 by
1.8.7