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
G4ComponentGGNuclNuclXsc.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4ComponentGGNuclNuclXsc.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
// Calculation of the nucleus-nucleus total, inelastic, production,
27
// elastic and quasi-elastic cross-sections
28
// based on parametrisations of nucleon-nucleon
29
// cross-sections in
30
// the framework of simplified Glauber-Gribov approach
31
//
32
//
33
// 24.11.08 V. Grichine - first implementation based on
34
// G4GlauberGribovCrossSection
35
//
36
// 04.09.18 V. Ivantchenko Major revision of interfaces and implementation
37
// 27.05.19 V. Ivantchenko Removed obsolete methods and members
38
//
39
40
#ifndef G4ComponentGGNuclNuclXsc_h
41
#define G4ComponentGGNuclNuclXsc_h
42
43
#include "
globals.hh
"
44
#include "
G4VComponentCrossSection.hh
"
45
#include "
G4DynamicParticle.hh
"
46
47
class
G4ParticleDefinition
;
48
class
G4HadronNucleonXsc
;
49
class
G4ComponentGGHadronNucleusXsc
;
50
class
G4Material
;
51
52
class
G4ComponentGGNuclNuclXsc
:
public
G4VComponentCrossSection
53
{
54
public
:
55
56
G4ComponentGGNuclNuclXsc
();
57
virtual
~G4ComponentGGNuclNuclXsc
();
58
59
// virtual interface methods
60
G4double
GetTotalElementCrossSection
(
const
G4ParticleDefinition
* aParticle,
61
G4double
kinEnergy,
62
G4int
Z
,
G4double
A
)
final
;
63
64
G4double
GetTotalIsotopeCrossSection
(
const
G4ParticleDefinition
* aParticle,
65
G4double
kinEnergy,
66
G4int
Z,
G4int
A)
final
;
67
68
G4double
GetInelasticElementCrossSection
(
const
G4ParticleDefinition
* aParticle,
69
G4double
kinEnergy,
70
G4int
Z,
G4double
A)
final
;
71
72
G4double
GetInelasticIsotopeCrossSection
(
const
G4ParticleDefinition
* aParticle,
73
G4double
kinEnergy,
74
G4int
Z,
G4int
A)
final
;
75
76
G4double
GetElasticElementCrossSection
(
const
G4ParticleDefinition
* aParticle,
77
G4double
kinEnergy,
78
G4int
Z,
G4double
A)
final
;
79
80
G4double
GetElasticIsotopeCrossSection
(
const
G4ParticleDefinition
* aParticle,
81
G4double
kinEnergy,
82
G4int
Z,
G4int
A)
final
;
83
84
G4double
ComputeQuasiElasticRatio
(
const
G4ParticleDefinition
* aParticle,
85
G4double
kinEnergy,
86
G4int
Z,
G4int
A)
final
;
87
88
void
BuildPhysicsTable
(
const
G4ParticleDefinition
&)
final
;
89
90
void
DumpPhysicsTable
(
const
G4ParticleDefinition
&)
final
;
91
92
void
Description
(std::ostream&)
const
final
;
93
94
// Extra methods
95
// inline G4double GetElementCrossSection(const G4DynamicParticle*,
96
// G4int Z, const G4Material*);
97
98
inline
G4double
GetZandACrossSection
(
const
G4DynamicParticle
*,
99
G4int
Z,
G4int
A);
100
101
inline
G4double
GetCoulombBarier
(
const
G4DynamicParticle
*,
102
G4double
Z,
G4double
A,
103
G4double
pR,
G4double
tR);
104
105
G4double
ComputeCoulombBarier
(
const
G4ParticleDefinition
* aParticle,
106
G4double
kinEnergy,
G4int
Z,
G4int
A,
107
G4double
pR,
G4double
tR);
108
109
G4double
GetRatioSD
(
const
G4DynamicParticle
*,
G4double
At,
G4double
Zt);
110
G4double
GetRatioQE
(
const
G4DynamicParticle
*,
G4double
At,
G4double
Zt);
111
112
inline
G4double
GetElasticGlauberGribov
(
const
G4DynamicParticle
*,
G4int
Z,
G4int
A);
113
inline
G4double
GetInelasticGlauberGribov
(
const
G4DynamicParticle
*,
G4int
Z,
G4int
A);
114
115
inline
G4double
GetTotalGlauberGribovXsc
()
const
{
return
fTotalXsc
; };
116
inline
G4double
GetElasticGlauberGribovXsc
()
const
{
return
fElasticXsc
; };
117
inline
G4double
GetInelasticGlauberGribovXsc
()
const
{
return
fInelasticXsc
; };
118
inline
G4double
GetProductionGlauberGribovXsc
()
const
{
return
fProductionXsc
; };
119
inline
G4double
GetDiffractionGlauberGribovXsc
()
const
{
return
fDiffractionXsc
; };
120
121
private
:
122
123
// Glauber-Gribov cross section
124
void
ComputeCrossSections
(
const
G4ParticleDefinition
* aParticle,
125
G4double
kinEnergy,
G4int
Z,
G4int
A);
126
127
G4double
fTotalXsc
,
fElasticXsc
,
fInelasticXsc
;
128
G4double
fProductionXsc
,
fDiffractionXsc
;
129
// Cache
130
G4double
fEnergy
;
131
132
const
G4ParticleDefinition
*
theProton
;
133
const
G4ParticleDefinition
*
theNeutron
;
134
135
G4ComponentGGHadronNucleusXsc
*
fHadrNucl
;
136
G4HadronNucleonXsc
*
fHNXsc
;
137
138
// Cache
139
const
G4ParticleDefinition
*
fParticle
;
140
G4int
fZ
,
fA
;
141
};
142
143
inline
G4double
144
G4ComponentGGNuclNuclXsc::GetElasticGlauberGribov
(
const
G4DynamicParticle
* dp,
145
G4int
Z
,
G4int
A
)
146
{
147
ComputeCrossSections
(dp->
GetDefinition
(), dp->
GetKineticEnergy
(),
Z
,
A
);
148
return
fElasticXsc
;
149
}
150
151
inline
G4double
152
G4ComponentGGNuclNuclXsc::GetInelasticGlauberGribov
(
const
G4DynamicParticle
* dp,
153
G4int
Z
,
G4int
A
)
154
{
155
ComputeCrossSections
(dp->
GetDefinition
(), dp->
GetKineticEnergy
(),
Z
,
A
);
156
return
fInelasticXsc
;
157
}
158
159
/*
160
inline G4double
161
G4ComponentGGNuclNuclXsc::GetElementCrossSection(const G4DynamicParticle* dp,
162
G4int Z, const G4Material*)
163
{
164
G4int A = G4lrint(fNist->GetAtomicMassAmu(Z));
165
ComputeCrossSections(dp->GetDefinition(), dp->GetKineticEnergy(), Z, A);
166
return fInelasticXsc;
167
}
168
*/
169
inline
G4double
170
G4ComponentGGNuclNuclXsc::GetZandACrossSection
(
const
G4DynamicParticle
* dp,
171
G4int
Z
,
G4int
A
)
172
{
173
ComputeCrossSections
(dp->
GetDefinition
(), dp->
GetKineticEnergy
(),
Z
,
A
);
174
return
fInelasticXsc
;
175
}
176
177
inline
G4double
178
G4ComponentGGNuclNuclXsc::GetCoulombBarier
(
const
G4DynamicParticle
* dp,
179
G4double
Z
,
G4double
A
,
180
G4double
pR,
G4double
tR)
181
{
182
return
ComputeCoulombBarier
(dp->
GetDefinition
(), dp->
GetKineticEnergy
(),
183
G4lrint
(Z),
G4lrint
(A), pR, tR);
184
}
185
186
#endif
geant4
tree
geant4-10.6-release
source
processes
hadronic
cross_sections
include
G4ComponentGGNuclNuclXsc.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:36
using
1.8.2 with
ECCE GitHub integration