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
G4VComponentCrossSection.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4VComponentCrossSection.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
//
27
// -------------------------------------------------------------------
28
//
29
// GEANT4 Class header file
30
//
31
//
32
// File name: G4VComponentCrossSection
33
//
34
// Authors: G.Folger, V.Ivanchenko, D.Wright
35
//
36
// Modifications:
37
//
38
39
//
40
// Class Description
41
// This is a base class for hadronic cross section data source
42
// Class Description - End
43
44
#ifndef G4VComponentCrossSection_h
45
#define G4VComponentCrossSection_h 1
46
47
#include "
G4ParticleDefinition.hh
"
48
#include "
G4Element.hh
"
49
#include "
globals.hh
"
50
51
class
G4CrossSectionDataSetRegistry
;
52
53
class
G4VComponentCrossSection
54
{
55
public
:
//with description
56
57
explicit
G4VComponentCrossSection
(
const
G4String
& nam =
""
);
58
59
virtual
~G4VComponentCrossSection
();
60
61
inline
62
G4double
GetTotalElementCrossSection
(
const
G4ParticleDefinition
*,
63
G4double
kinEnergy,
64
const
G4Element
*);
65
66
virtual
67
G4double
GetTotalElementCrossSection
(
const
G4ParticleDefinition
*,
68
G4double
kinEnergy,
69
G4int
/*Z*/
,
G4double
/*N*/
) = 0;
70
71
virtual
72
G4double
GetTotalIsotopeCrossSection
(
const
G4ParticleDefinition
*,
73
G4double
kinEnergy,
74
G4int
/*Z*/
,
G4int
/*N*/
) = 0;
75
76
inline
77
G4double
GetInelasticElementCrossSection
(
const
G4ParticleDefinition
*,
78
G4double
kinEnergy,
79
const
G4Element
*);
80
81
virtual
82
G4double
GetInelasticElementCrossSection
(
const
G4ParticleDefinition
*,
83
G4double
kinEnergy,
84
G4int
/*Z*/
,
G4double
/*N*/
) = 0;
85
86
virtual
87
G4double
GetInelasticIsotopeCrossSection
(
const
G4ParticleDefinition
*,
88
G4double
kinEnergy,
89
G4int
/*Z*/
,
G4int
/*N*/
) = 0;
90
91
inline
92
G4double
GetElasticElementCrossSection
(
const
G4ParticleDefinition
*,
93
G4double
kinEnergy,
94
const
G4Element
*);
95
96
virtual
97
G4double
GetElasticElementCrossSection
(
const
G4ParticleDefinition
*,
98
G4double
kinEnergy,
99
G4int
/*Z*/
,
G4double
/*N*/
) = 0;
100
101
virtual
102
G4double
GetElasticIsotopeCrossSection
(
const
G4ParticleDefinition
*,
103
G4double
kinEnergy,
104
G4int
/*Z*/
,
G4int
/*N*/
) = 0;
105
106
virtual
107
G4double
ComputeQuasiElasticRatio
(
const
G4ParticleDefinition
*,
108
G4double
kinEnergy,
109
G4int
/*Z*/
,
G4int
/*N*/
);
110
111
virtual
112
void
BuildPhysicsTable
(
const
G4ParticleDefinition
&);
113
114
virtual
115
void
DumpPhysicsTable
(
const
G4ParticleDefinition
&);
116
117
virtual
void
Description
(std::ostream&)
const
;
118
119
inline
void
SetVerboseLevel
(
G4int
value
);
120
121
inline
G4int
GetVerboseLevel
()
const
;
122
123
inline
G4double
GetMinKinEnergy
()
const
;
124
125
inline
void
SetMinKinEnergy
(
G4double
value);
126
127
inline
G4double
GetMaxKinEnergy
()
const
;
128
129
inline
void
SetMaxKinEnergy
(
G4double
value);
130
131
inline
const
G4String
&
GetName
()
const
;
132
133
private
:
134
135
G4VComponentCrossSection
&
operator=
(
const
G4VComponentCrossSection
&
right
);
136
G4VComponentCrossSection
(
const
G4VComponentCrossSection
&);
137
138
G4CrossSectionDataSetRegistry
*
registry
;
139
140
G4int
verboseLevel
;
141
142
G4double
minKinEnergy
;
143
G4double
maxKinEnergy
;
144
145
const
G4String
name
;
146
};
147
148
inline
G4double
149
G4VComponentCrossSection::GetTotalElementCrossSection
(
150
const
G4ParticleDefinition
*
p
,
151
G4double
kinEnergy,
152
const
G4Element
* elm)
153
{
154
return
GetTotalElementCrossSection
(p,kinEnergy,
155
elm->
GetZasInt
(),elm->
GetN
());
156
}
157
158
inline
G4double
159
G4VComponentCrossSection::GetInelasticElementCrossSection
(
160
const
G4ParticleDefinition
*
p
,
161
G4double
kinEnergy,
162
const
G4Element
* elm)
163
{
164
return
GetInelasticElementCrossSection
(p,kinEnergy,
165
elm->
GetZasInt
(),elm->
GetN
());
166
}
167
168
inline
G4double
169
G4VComponentCrossSection::GetElasticElementCrossSection
(
170
const
G4ParticleDefinition
*
p
,
171
G4double
kinEnergy,
172
const
G4Element
* elm)
173
{
174
return
GetElasticElementCrossSection
(p,kinEnergy,
175
elm->
GetZasInt
(),elm->
GetN
());
176
}
177
178
inline
void
G4VComponentCrossSection::SetVerboseLevel
(
G4int
value
)
179
{
180
verboseLevel
=
value
;
181
}
182
183
inline
G4int
G4VComponentCrossSection::GetVerboseLevel
()
const
184
{
185
return
verboseLevel
;
186
}
187
188
inline
void
G4VComponentCrossSection::SetMinKinEnergy
(
G4double
value
)
189
{
190
minKinEnergy
=
value
;
191
}
192
193
inline
G4double
G4VComponentCrossSection::GetMinKinEnergy
()
const
194
{
195
return
minKinEnergy
;
196
}
197
198
inline
void
G4VComponentCrossSection::SetMaxKinEnergy
(
G4double
value
)
199
{
200
maxKinEnergy
=
value
;
201
}
202
203
inline
G4double
G4VComponentCrossSection::GetMaxKinEnergy
()
const
204
{
205
return
maxKinEnergy
;
206
}
207
208
inline
const
G4String
&
G4VComponentCrossSection::GetName
()
const
209
{
210
return
name
;
211
}
212
213
#endif
geant4
tree
geant4-10.6-release
source
processes
hadronic
cross_sections
include
G4VComponentCrossSection.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:37
using
1.8.2 with
ECCE GitHub integration