Geant4
10.02.p01
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
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
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=
(
const
G4IonCoulombCrossSection
&
right
);
96
G4IonCoulombCrossSection
(
const
G4IonCoulombCrossSection
&);
97
98
const
G4ParticleDefinition
*
theProton
;
99
100
G4NistManager
*
fNistManager
;
101
G4Pow
*
fG4pow
;
102
103
G4double
coeff
;
104
105
//cost - min - max
106
G4double
cosThetaMin
;
// def 1.0
107
G4double
cosThetaMax
;
// def -1.0
108
//SetupTarget
109
G4double
cosTetMinNuc
;
// -->cosThetaMin
110
G4double
cosTetMaxNuc
;
// -->cosThetaMax
111
112
//cross section
113
G4double
nucXSection
;
114
115
//energy
116
G4double
etag
;
117
118
// projectile........................
119
const
G4ParticleDefinition
*
particle
;
120
121
G4double
chargeSquare
;
122
G4double
spin
;
123
G4double
mass
;
124
125
//lab of incedent particle
126
G4double
tkinLab
;
127
G4double
momLab2
;
128
G4double
invbetaLab2
;
129
130
//relative system with nucleus
131
G4double
tkin
;
132
G4double
mom2
;
133
G4double
invbeta2
;
134
135
// target nucleus
136
G4double
targetZ
;
137
G4double
targetMass
;
138
G4double
screenZ
;
139
G4double
alpha2
;
140
G4double
ScreenRSquare
;
141
};
142
143
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
144
145
inline
146
void
G4IonCoulombCrossSection::SetupParticle
(
const
G4ParticleDefinition
* p)
147
{
148
particle
= p;
149
mass
=
particle
->
GetPDGMass
();
150
spin
=
particle
->
GetPDGSpin
();
151
if
(0.0 !=
spin
) {
spin
= 0.5; }
152
G4double
q = std::fabs(
particle
->
GetPDGCharge
()/
CLHEP::eplus
);
153
chargeSquare
= q*q;
154
tkin
= 0.0;
155
}
156
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
157
158
inline
G4double
G4IonCoulombCrossSection::GetMomentum2
()
159
{
160
return
mom2
;
161
}
162
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
163
164
#endif
165
166
G4IonCoulombCrossSection::SetupTarget
void SetupTarget(G4double Z, G4double kinEnergy, G4int heavycorr)
Definition:
G4IonCoulombCrossSection.cc:143
G4IonCoulombCrossSection::invbetaLab2
G4double invbetaLab2
Definition:
G4IonCoulombCrossSection.hh:128
G4IonCoulombCrossSection::alpha2
G4double alpha2
Definition:
G4IonCoulombCrossSection.hh:139
G4IonCoulombCrossSection::SetupKinematic
void SetupKinematic(G4double kinEnergy, G4double tmass)
Definition:
G4IonCoulombCrossSection.cc:111
G4IonCoulombCrossSection::etag
G4double etag
Definition:
G4IonCoulombCrossSection.hh:116
right
Definition:
F04UserTrackInformation.hh:37
G4IonCoulombCrossSection::tkin
G4double tkin
Definition:
G4IonCoulombCrossSection.hh:131
G4IonCoulombCrossSection::invbeta2
G4double invbeta2
Definition:
G4IonCoulombCrossSection.hh:133
G4IonCoulombCrossSection::mass
G4double mass
Definition:
G4IonCoulombCrossSection.hh:123
G4Pow
Definition:
G4Pow.hh:56
G4IonCoulombCrossSection::coeff
G4double coeff
Definition:
G4IonCoulombCrossSection.hh:103
G4IonCoulombCrossSection::fNistManager
G4NistManager * fNistManager
Definition:
G4IonCoulombCrossSection.hh:100
G4NistManager.hh
G4IonCoulombCrossSection::ScreenRSquare
G4double ScreenRSquare
Definition:
G4IonCoulombCrossSection.hh:140
G4IonCoulombCrossSection::tkinLab
G4double tkinLab
Definition:
G4IonCoulombCrossSection.hh:126
G4IonCoulombCrossSection::targetMass
G4double targetMass
Definition:
G4IonCoulombCrossSection.hh:137
G4IonCoulombCrossSection::SampleCosineTheta
G4double SampleCosineTheta()
Definition:
G4IonCoulombCrossSection.cc:212
G4IonCoulombCrossSection::~G4IonCoulombCrossSection
virtual ~G4IonCoulombCrossSection()
Definition:
G4IonCoulombCrossSection.cc:94
G4IonCoulombCrossSection::nucXSection
G4double nucXSection
Definition:
G4IonCoulombCrossSection.hh:113
G4ParticleDefinition
Definition:
G4ParticleDefinition.hh:111
G4IonCoulombCrossSection::theProton
const G4ParticleDefinition * theProton
Definition:
G4IonCoulombCrossSection.hh:98
G4int
int G4int
Definition:
G4Types.hh:78
G4IonCoulombCrossSection::G4IonCoulombCrossSection
G4IonCoulombCrossSection()
Definition:
G4IonCoulombCrossSection.cc:70
G4IonCoulombCrossSection::spin
G4double spin
Definition:
G4IonCoulombCrossSection.hh:122
G4IonCoulombCrossSection::SetScreenRSquare
void SetScreenRSquare(G4int iz)
Definition:
G4IonCoulombCrossSection.cc:171
G4IonCoulombCrossSection::particle
const G4ParticleDefinition * particle
Definition:
G4IonCoulombCrossSection.hh:119
G4IonCoulombCrossSection::GetMomentum2
G4double GetMomentum2()
Definition:
G4IonCoulombCrossSection.hh:158
G4IonCoulombCrossSection::chargeSquare
G4double chargeSquare
Definition:
G4IonCoulombCrossSection.hh:121
G4NistManager
Definition:
G4NistManager.hh:82
G4IonCoulombCrossSection::cosTetMinNuc
G4double cosTetMinNuc
Definition:
G4IonCoulombCrossSection.hh:109
G4IonCoulombCrossSection::operator=
G4IonCoulombCrossSection & operator=(const G4IonCoulombCrossSection &right)
G4IonCoulombCrossSection::SetupParticle
void SetupParticle(const G4ParticleDefinition *)
Definition:
G4IonCoulombCrossSection.hh:146
iz
G4double iz
Definition:
TRTMaterials.hh:39
G4IonCoulombCrossSection::cosThetaMax
G4double cosThetaMax
Definition:
G4IonCoulombCrossSection.hh:107
G4ParticleDefinition.hh
G4IonCoulombCrossSection::screenZ
G4double screenZ
Definition:
G4IonCoulombCrossSection.hh:138
globals.hh
G4IonCoulombCrossSection::NuclearCrossSection
G4double NuclearCrossSection()
Definition:
G4IonCoulombCrossSection.cc:190
G4IonCoulombCrossSection::mom2
G4double mom2
Definition:
G4IonCoulombCrossSection.hh:132
G4IonCoulombCrossSection::targetZ
G4double targetZ
Definition:
G4IonCoulombCrossSection.hh:136
G4ParticleDefinition::GetPDGMass
G4double GetPDGMass() const
Definition:
G4ParticleDefinition.hh:161
G4IonCoulombCrossSection::momLab2
G4double momLab2
Definition:
G4IonCoulombCrossSection.hh:127
G4ParticleDefinition::GetPDGSpin
G4double GetPDGSpin() const
Definition:
G4ParticleDefinition.hh:165
G4IonCoulombCrossSection::cosThetaMin
G4double cosThetaMin
Definition:
G4IonCoulombCrossSection.hh:106
G4IonCoulombCrossSection::cosTetMaxNuc
G4double cosTetMaxNuc
Definition:
G4IonCoulombCrossSection.hh:110
G4double
double G4double
Definition:
G4Types.hh:76
G4IonCoulombCrossSection
Definition:
G4IonCoulombCrossSection.hh:69
G4IonCoulombCrossSection::fG4pow
G4Pow * fG4pow
Definition:
G4IonCoulombCrossSection.hh:101
eplus
static const double eplus
Definition:
G4SIunits.hh:196
G4ParticleDefinition::GetPDGCharge
G4double GetPDGCharge() const
Definition:
G4ParticleDefinition.hh:163
G4IonCoulombCrossSection::Initialise
void Initialise(const G4ParticleDefinition *, G4double cosThetaLim)
Definition:
G4IonCoulombCrossSection.cc:99
geant4.10.02.p01
source
processes
electromagnetic
standard
include
G4IonCoulombCrossSection.hh
Generated on Thu Mar 3 2016 14:41:44 for Geant4 by
1.8.8