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
G4HadronNucleonXsc.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4HadronNucleonXsc.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 total, elastic and inelastic cross-sections
27
// based on parametrisations of (proton, pion, kaon, photon) nucleon
28
// cross-sections and the hadron-nucleous cross-section model in
29
// the framework of Glauber-Gribov approach
30
//
31
// 14.03.07 V. Grichine - first implementation
32
// 04.11.11 V. Grichine - update for kaon-(p,n) xsc, vector spline
33
// 21.02.12 V. Grichine - update for pion-(p,n) xsc, NS fit++, vector spline
34
// 30.07.18 V. Ivanchenko - general clean-up
35
// 30.09.18 V. Grichine hyperon-nucleon xsc first implementation
36
// 09.04.19 V. Grichine hyperon-nucleon xsc for c- and b- hyperons (and s-)
37
// 12.04.19 V. Grichine meson-nucleon xsc for c- and b- hyperons (and s-)
38
39
40
#ifndef G4HadronNucleonXsc_h
41
#define G4HadronNucleonXsc_h
42
43
#include "
globals.hh
"
44
#include "
G4ParticleDefinition.hh
"
45
#include "
G4DynamicParticle.hh
"
46
47
class
G4Pow
;
48
class
G4Element
;
49
50
class
G4HadronNucleonXsc
51
{
52
public
:
53
54
explicit
G4HadronNucleonXsc
();
55
~G4HadronNucleonXsc
();
56
57
// Xsc parametrisations return total x-section
58
59
G4double
HadronNucleonXsc
(
const
G4ParticleDefinition
* theParticle,
60
const
G4ParticleDefinition
*
nucleon
,
G4double
ekin);
61
62
G4double
HadronNucleonXscPDG
(
const
G4ParticleDefinition
* theParticle,
63
const
G4ParticleDefinition
* nucleon,
G4double
ekin);
64
65
G4double
HadronNucleonXscNS
(
const
G4ParticleDefinition
* theParticle,
66
const
G4ParticleDefinition
* nucleon,
G4double
ekin);
67
68
G4double
KaonNucleonXscNS
(
const
G4ParticleDefinition
* theParticle,
69
const
G4ParticleDefinition
* nucleon,
G4double
ekin);
70
71
G4double
KaonNucleonXscGG
(
const
G4ParticleDefinition
* theParticle,
72
const
G4ParticleDefinition
* nucleon,
G4double
ekin);
73
74
G4double
KaonNucleonXscVG
(
const
G4ParticleDefinition
* theParticle,
75
const
G4ParticleDefinition
* nucleon,
G4double
ekin);
76
77
G4double
HyperonNucleonXscNS
(
const
G4ParticleDefinition
* theParticle,
78
const
G4ParticleDefinition
* nucleon,
G4double
ekin);
79
80
G4double
SCBMesonNucleonXscNS
(
const
G4ParticleDefinition
* theParticle,
81
const
G4ParticleDefinition
* nucleon,
G4double
ekin );
82
83
G4double
HadronNucleonXscVU
(
const
G4ParticleDefinition
* theParticle,
84
const
G4ParticleDefinition
* nucleon,
G4double
ekin);
85
86
G4double
HadronNucleonXscEL
(
const
G4ParticleDefinition
* theParticle,
87
const
G4ParticleDefinition
* nucleon,
G4double
ekin);
88
89
G4double
CoulombBarrier
(
const
G4ParticleDefinition
* theParticle,
90
const
G4ParticleDefinition
* nucleon,
G4double
ekin);
91
92
// Xsc for G4DynamicParticle projectile
93
inline
G4double
GetHadronNucleonXscEL
(
const
G4DynamicParticle
* dp,
94
const
G4ParticleDefinition
*
p
)
95
{
return
HadronNucleonXscEL
(dp->
GetDefinition
(),
p
, dp->
GetKineticEnergy
()); }
96
97
inline
G4double
GetHadronNucleonXscPDG
(
const
G4DynamicParticle
* dp,
98
const
G4ParticleDefinition
*
p
)
99
{
return
HadronNucleonXscPDG
(dp->
GetDefinition
(),
p
, dp->
GetKineticEnergy
()); }
100
101
inline
G4double
GetHadronNucleonXscNS
(
const
G4DynamicParticle
* dp,
102
const
G4ParticleDefinition
*
p
)
103
{
return
HadronNucleonXscNS
(dp->
GetDefinition
(),
p
, dp->
GetKineticEnergy
()); }
104
105
inline
G4double
GetKaonNucleonXscGG
(
const
G4DynamicParticle
* dp,
106
const
G4ParticleDefinition
*
p
)
107
{
return
KaonNucleonXscGG
(dp->
GetDefinition
(),
p
, dp->
GetKineticEnergy
()); }
108
109
inline
G4double
GetHyperonNucleonXscNS
(
const
G4DynamicParticle
* dp,
110
const
G4ParticleDefinition
*
p
)
111
{
return
HyperonNucleonXscNS
(dp->
GetDefinition
(),
p
, dp->
GetKineticEnergy
()); }
112
113
inline
G4double
GetHadronNucleonXscVU
(
const
G4DynamicParticle
* dp,
114
const
G4ParticleDefinition
*
p
)
115
{
return
HadronNucleonXscVU
(dp->
GetDefinition
(),
p
, dp->
GetKineticEnergy
()); }
116
117
inline
G4double
GetCoulombBarrier
(
const
G4DynamicParticle
* dp,
118
const
G4ParticleDefinition
*
p
)
119
{
return
CoulombBarrier
(dp->
GetDefinition
(),
p
, dp->
GetKineticEnergy
()); }
120
121
// Xsc access
122
inline
G4double
GetTotalHadronNucleonXsc
()
const
{
return
fTotalXsc
; };
123
inline
G4double
GetElasticHadronNucleonXsc
()
const
{
return
fElasticXsc
; };
124
inline
G4double
GetInelasticHadronNucleonXsc
()
const
{
return
fInelasticXsc
; };
125
126
void
CrossSectionDescription
(std::ostream&)
const
;
127
128
private
:
129
130
inline
G4double
CalcMandelstamS
(
G4double
ekin1,
G4double
mass1,
G4double
mass2)
131
{
return
mass1*mass1 + mass2*mass2 + 2*mass2*(ekin1 + mass1); }
132
133
inline
G4double
CalculateEcmValue
(
G4double
ekin1,
G4double
mass1,
G4double
mass2)
134
{
return
std::sqrt(
CalcMandelstamS
(ekin1, mass1, mass2)); };
135
136
G4double
fTotalXsc
,
fElasticXsc
,
fInelasticXsc
;
137
G4double
fHypTotXscCof
;
138
G4Pow
*
g4calc
;
139
140
const
G4ParticleDefinition
*
theGamma
;
141
const
G4ParticleDefinition
*
theProton
;
142
const
G4ParticleDefinition
*
theNeutron
;
143
const
G4ParticleDefinition
*
theAProton
;
144
const
G4ParticleDefinition
*
theANeutron
;
145
const
G4ParticleDefinition
*
thePiPlus
;
146
const
G4ParticleDefinition
*
thePiMinus
;
147
const
G4ParticleDefinition
*
thePiZero
;
148
const
G4ParticleDefinition
*
theD
;
149
const
G4ParticleDefinition
*
theT
;
150
const
G4ParticleDefinition
*
theA
;
151
const
G4ParticleDefinition
*
theHe3
;
152
// strange
153
const
G4ParticleDefinition
*
theKPlus
;
154
const
G4ParticleDefinition
*
theKMinus
;
155
const
G4ParticleDefinition
*
theK0S
;
156
const
G4ParticleDefinition
*
theK0L
;
157
const
G4ParticleDefinition
*
theL
;
158
const
G4ParticleDefinition
*
theAntiL
;
159
const
G4ParticleDefinition
*
theSPlus
;
160
const
G4ParticleDefinition
*
theASPlus
;
161
const
G4ParticleDefinition
*
theSMinus
;
162
const
G4ParticleDefinition
*
theASMinus
;
163
const
G4ParticleDefinition
*
theS0
;
164
const
G4ParticleDefinition
*
theAS0
;
165
const
G4ParticleDefinition
*
theXiMinus
;
166
const
G4ParticleDefinition
*
theXi0
;
167
const
G4ParticleDefinition
*
theAXiMinus
;
168
const
G4ParticleDefinition
*
theAXi0
;
169
const
G4ParticleDefinition
*
theOmega
;
170
const
G4ParticleDefinition
*
theAOmega
;
171
// c- and b- hyperons
172
const
G4ParticleDefinition
*
theLambdaCPlus
;
173
const
G4ParticleDefinition
*
theALambdaCPlus
;
174
const
G4ParticleDefinition
*
theOmegaC0
;
175
const
G4ParticleDefinition
*
theAOmegaC0
;
176
const
G4ParticleDefinition
*
theSigmaCPlus
;
177
const
G4ParticleDefinition
*
theASigmaCPlus
;
178
const
G4ParticleDefinition
*
theSigmacPP
;
179
const
G4ParticleDefinition
*
theASigmacPP
;
180
const
G4ParticleDefinition
*
theSigmaC0
;
181
const
G4ParticleDefinition
*
theASigmaC0
;
182
const
G4ParticleDefinition
*
theXiCPlus
;
183
const
G4ParticleDefinition
*
theAXiCPlus
;
184
const
G4ParticleDefinition
*
theXiC0
;
185
const
G4ParticleDefinition
*
theAXiC0
;
186
const
G4ParticleDefinition
*
theLambdaB
;
187
const
G4ParticleDefinition
*
theALambdaB
;
188
const
G4ParticleDefinition
*
theOmegaBMinus
;
189
const
G4ParticleDefinition
*
theAOmegaBMinus
;
190
const
G4ParticleDefinition
*
theSigmaBMinus
;
191
const
G4ParticleDefinition
*
theASigmaBMinus
;
192
const
G4ParticleDefinition
*
theSigmaBPlus
;
193
const
G4ParticleDefinition
*
theASigmaBPlus
;
194
const
G4ParticleDefinition
*
theSigmaB0
;
195
const
G4ParticleDefinition
*
theASigmaB0
;
196
const
G4ParticleDefinition
*
theXiBMinus
;
197
const
G4ParticleDefinition
*
theAXiBMinus
;
198
const
G4ParticleDefinition
*
theXiB0
;
199
const
G4ParticleDefinition
*
theAXiB0
;
200
// c- and b- mesons
201
const
G4ParticleDefinition
*
theBMeson0
;
202
const
G4ParticleDefinition
*
theABMeson0
;
203
const
G4ParticleDefinition
*
theDMeson0
;
204
const
G4ParticleDefinition
*
theADMeson0
;
205
const
G4ParticleDefinition
*
theBsMeson0
;
206
const
G4ParticleDefinition
*
theABsMeson0
;
207
const
G4ParticleDefinition
*
theBcMesonPlus
;
208
const
G4ParticleDefinition
*
theBcMesonMinus
;
209
const
G4ParticleDefinition
*
theDsMesonPlus
;
210
const
G4ParticleDefinition
*
theDsMesonMinus
;
211
const
G4ParticleDefinition
*
theDMesonPlus
;
212
const
G4ParticleDefinition
*
theDMesonMinus
;
213
const
G4ParticleDefinition
*
theBMesonPlus
;
214
const
G4ParticleDefinition
*
theBMesonMinus
;
215
const
G4ParticleDefinition
*
theEta
;
216
const
G4ParticleDefinition
*
theEtaPrime
;
217
const
G4ParticleDefinition
*
theEtaC
;
218
const
G4ParticleDefinition
*
theJPsi
;
219
const
G4ParticleDefinition
*
theUpsilon
;
220
};
221
222
223
#endif
geant4
tree
geant4-10.6-release
source
processes
hadronic
cross_sections
include
G4HadronNucleonXsc.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:36
using
1.8.2 with
ECCE GitHub integration