Geant4
11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
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
() =
default
;
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
SystemOfUnits.h
G4IonCoulombCrossSection
Definition
G4IonCoulombCrossSection.hh:70
G4IonCoulombCrossSection::Initialise
void Initialise(const G4ParticleDefinition *, G4double cosThetaLim)
Definition
G4IonCoulombCrossSection.cc:95
G4IonCoulombCrossSection::G4IonCoulombCrossSection
G4IonCoulombCrossSection(const G4IonCoulombCrossSection &)=delete
G4IonCoulombCrossSection::SetupTarget
void SetupTarget(G4double Z, G4double kinEnergy, G4int heavycorr)
Definition
G4IonCoulombCrossSection.cc:139
G4IonCoulombCrossSection::G4IonCoulombCrossSection
G4IonCoulombCrossSection()
Definition
G4IonCoulombCrossSection.cc:70
G4IonCoulombCrossSection::~G4IonCoulombCrossSection
~G4IonCoulombCrossSection()=default
G4IonCoulombCrossSection::SetupKinematic
void SetupKinematic(G4double kinEnergy, G4double tmass)
Definition
G4IonCoulombCrossSection.cc:107
G4IonCoulombCrossSection::SetupParticle
void SetupParticle(const G4ParticleDefinition *)
Definition
G4IonCoulombCrossSection.hh:147
G4IonCoulombCrossSection::SampleCosineTheta
G4double SampleCosineTheta()
Definition
G4IonCoulombCrossSection.cc:208
G4IonCoulombCrossSection::NuclearCrossSection
G4double NuclearCrossSection()
Definition
G4IonCoulombCrossSection.cc:186
G4IonCoulombCrossSection::GetMomentum2
G4double GetMomentum2()
Definition
G4IonCoulombCrossSection.hh:159
G4NistManager
Definition
G4NistManager.hh:74
G4ParticleDefinition
Definition
G4ParticleDefinition.hh:62
G4ParticleDefinition::GetPDGMass
G4double GetPDGMass() const
Definition
G4ParticleDefinition.hh:98
G4ParticleDefinition::GetPDGCharge
G4double GetPDGCharge() const
Definition
G4ParticleDefinition.hh:100
G4ParticleDefinition::GetPDGSpin
G4double GetPDGSpin() const
Definition
G4ParticleDefinition.hh:102
G4Pow
Definition
G4Pow.hh:49
globals.hh
geant4-v11.2.2
source
processes
electromagnetic
standard
include
G4IonCoulombCrossSection.hh
Generated by
1.12.0