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
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
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
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
right
Definition:
F04UserTrackInformation.hh:37
G4Pow
Definition:
G4Pow.hh:56
G4NistManager.hh
p
const char * p
Definition:
xmltok.h:285
G4IonCoulombCrossSection::SampleCosineTheta
G4double SampleCosineTheta()
Definition:
G4IonCoulombCrossSection.cc:212
G4IonCoulombCrossSection::~G4IonCoulombCrossSection
virtual ~G4IonCoulombCrossSection()
Definition:
G4IonCoulombCrossSection.cc:94
G4ParticleDefinition
Definition:
G4ParticleDefinition.hh:72
G4int
int G4int
Definition:
G4Types.hh:78
G4IonCoulombCrossSection::G4IonCoulombCrossSection
G4IonCoulombCrossSection()
Definition:
G4IonCoulombCrossSection.cc:70
G4IonCoulombCrossSection::GetMomentum2
G4double GetMomentum2()
Definition:
G4IonCoulombCrossSection.hh:159
G4NistManager
Definition:
G4NistManager.hh:82
G4IonCoulombCrossSection::SetupParticle
void SetupParticle(const G4ParticleDefinition *)
Definition:
G4IonCoulombCrossSection.hh:147
CLHEP::eplus
static constexpr double eplus
Definition:
SystemOfUnits.h:157
G4ParticleDefinition.hh
globals.hh
G4IonCoulombCrossSection::NuclearCrossSection
G4double NuclearCrossSection()
Definition:
G4IonCoulombCrossSection.cc:190
G4ParticleDefinition::GetPDGMass
G4double GetPDGMass() const
Definition:
G4ParticleDefinition.hh:122
G4ParticleDefinition::GetPDGSpin
G4double GetPDGSpin() const
Definition:
G4ParticleDefinition.hh:126
G4double
double G4double
Definition:
G4Types.hh:76
G4IonCoulombCrossSection
Definition:
G4IonCoulombCrossSection.hh:69
G4ParticleDefinition::GetPDGCharge
G4double GetPDGCharge() const
Definition:
G4ParticleDefinition.hh:124
SystemOfUnits.h
Z
G4int Z
Definition:
G4ParticleHPJENDLHEData.cc:262
G4IonCoulombCrossSection::Initialise
void Initialise(const G4ParticleDefinition *, G4double cosThetaLim)
Definition:
G4IonCoulombCrossSection.cc:99
source
geant4.10.03.p03
source
processes
electromagnetic
standard
include
G4IonCoulombCrossSection.hh
Generated on Tue Nov 28 2017 21:44:07 for Geant4 by
1.8.5