ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
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.
Or view
the newest version in sPHENIX GitHub for file G4IonCoulombCrossSection.hh
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
geant4
tree
geant4-10.6-release
source
processes
electromagnetic
standard
include
G4IonCoulombCrossSection.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:34
using
1.8.2 with
ECCE GitHub integration