Geant4
10.00.p03
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
cut,
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
102
G4double
coeff
;
103
104
//cost - min - max
105
G4double
cosThetaMin
;
// def 1.0
106
G4double
cosThetaMax
;
// def -1.0
107
//SetupTarget
108
G4double
cosTetMinNuc
;
// -->cosThetaMin
109
G4double
cosTetMaxNuc
;
// -->cosThetaMax
110
111
//cross section
112
G4double
nucXSection
;
113
114
//energy cut
115
G4double
ecut
;
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
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 = std::fabs(
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:145
G4IonCoulombCrossSection::invbetaLab2
G4double invbetaLab2
Definition:
G4IonCoulombCrossSection.hh:128
G4IonCoulombCrossSection::alpha2
G4double alpha2
Definition:
G4IonCoulombCrossSection.hh:139
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
G4IonCoulombCrossSection::coeff
G4double coeff
Definition:
G4IonCoulombCrossSection.hh:102
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:215
G4IonCoulombCrossSection::~G4IonCoulombCrossSection
virtual ~G4IonCoulombCrossSection()
Definition:
G4IonCoulombCrossSection.cc:93
G4IonCoulombCrossSection::nucXSection
G4double nucXSection
Definition:
G4IonCoulombCrossSection.hh:112
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:178
G4IonCoulombCrossSection::particle
const G4ParticleDefinition * particle
Definition:
G4IonCoulombCrossSection.hh:119
G4IonCoulombCrossSection::GetMomentum2
G4double GetMomentum2()
Definition:
G4IonCoulombCrossSection.hh:159
G4IonCoulombCrossSection::chargeSquare
G4double chargeSquare
Definition:
G4IonCoulombCrossSection.hh:121
G4NistManager
Definition:
G4NistManager.hh:82
G4IonCoulombCrossSection::cosTetMinNuc
G4double cosTetMinNuc
Definition:
G4IonCoulombCrossSection.hh:108
G4IonCoulombCrossSection::operator=
G4IonCoulombCrossSection & operator=(const G4IonCoulombCrossSection &right)
G4IonCoulombCrossSection::SetupParticle
void SetupParticle(const G4ParticleDefinition *)
Definition:
G4IonCoulombCrossSection.hh:147
G4IonCoulombCrossSection::ecut
G4double ecut
Definition:
G4IonCoulombCrossSection.hh:115
iz
G4double iz
Definition:
TRTMaterials.hh:39
G4IonCoulombCrossSection::cosThetaMax
G4double cosThetaMax
Definition:
G4IonCoulombCrossSection.hh:106
G4ParticleDefinition.hh
G4IonCoulombCrossSection::screenZ
G4double screenZ
Definition:
G4IonCoulombCrossSection.hh:138
globals.hh
G4IonCoulombCrossSection::NuclearCrossSection
G4double NuclearCrossSection()
Definition:
G4IonCoulombCrossSection.cc:193
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:105
G4IonCoulombCrossSection::cosTetMaxNuc
G4double cosTetMaxNuc
Definition:
G4IonCoulombCrossSection.hh:109
G4IonCoulombCrossSection::SetupKinematic
void SetupKinematic(G4double kinEnergy, G4double cut, G4double tmass)
Definition:
G4IonCoulombCrossSection.cc:111
G4double
double G4double
Definition:
G4Types.hh:76
G4IonCoulombCrossSection
Definition:
G4IonCoulombCrossSection.hh:69
eplus
static const double eplus
Definition:
G4SIunits.hh:178
G4ParticleDefinition::GetPDGCharge
G4double GetPDGCharge() const
Definition:
G4ParticleDefinition.hh:163
G4IonCoulombCrossSection::Initialise
void Initialise(const G4ParticleDefinition *, G4double cosThetaLim)
Definition:
G4IonCoulombCrossSection.cc:98
source
source
processes
electromagnetic
standard
include
G4IonCoulombCrossSection.hh
Generated on Sat Dec 13 2014 18:02:20 for Geant4 by
1.8.8