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
G4HadronCrossSections.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4HadronCrossSections.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
// GEANT4 Hadron physics class -- header file
28
// F.W. Jones, TRIUMF, 03-DEC-96
29
//
30
// This class encapsulates cross section data and interpolations
31
// from the Geant3/Gheisha routine GHESIG.
32
// For further comments see G4HadronCrossSections.cc.
33
//
34
// Note: this is implemented as a SINGLETON class
35
//
36
// 27-MAR-97 FWJ: first version for Alpha release
37
// 14-APR-97 FWJ: class name changed from G4LCrossSectionData
38
// to G4HadronicCrossSections
39
// 14-APR-98 FWJ: rewritten as class G4HadronCrossSections
40
// and adapted to G4CrossSectionDataSet/DataStore class design.
41
// 26-JUN-98 FWJ: added elastic/inelastic caching to improve performance.
42
// 06-NOV-98 FWJ: added first-order correction for low-energy
43
// inelastic cross sections
44
//
45
46
47
#ifndef G4HadronCrossSections_h
48
#define G4HadronCrossSections_h 1
49
50
#include "
globals.hh
"
51
#include "
G4DynamicParticle.hh
"
52
#include "
G4ThreadLocalSingleton.hh
"
53
54
enum
{
TSIZE
=41,
NPARTS
=35,
NELAB
=17,
NCNLW
=15,
NFISS
=21 };
55
56
class
G4Pow
;
57
58
class
G4HadronCrossSections
59
{
60
friend
class
G4ThreadLocalSingleton
<
G4HadronCrossSections
>;
61
62
public
:
63
64
static
G4HadronCrossSections
*
Instance
();
65
66
~G4HadronCrossSections
();
67
68
G4bool
IsApplicable
(
const
G4DynamicParticle
* aParticle);
69
70
G4double
GetElasticCrossSection
(
const
G4DynamicParticle
*,
71
G4int
/*ZZ*/
,
G4int
/*AA*/
);
72
73
G4double
GetInelasticCrossSection
(
const
G4DynamicParticle
*,
74
G4int
/*ZZ*/
,
G4int
/*AA*/
);
75
76
G4double
GetCaptureCrossSection
(
const
G4DynamicParticle
*,
G4int
/*Z*/
);
77
78
G4double
GetFissionCrossSection
(
const
G4DynamicParticle
*,
G4int
/*ZZ*/
,
79
G4int
/*AA*/
);
80
81
void
SetVerboseLevel
(
G4int
value
) {
verboseLevel
=
value
;}
82
83
G4int
GetVerboseLevel
() {
return
verboseLevel
;}
84
85
private
:
86
87
G4HadronCrossSections
();
88
89
G4int
GetParticleCode
(
const
G4DynamicParticle
*);
90
91
void
CalcScatteringCrossSections
(
const
G4DynamicParticle
*,
92
G4int
/*ZZ*/
,
G4int
/*AA*/
);
93
94
static
G4ThreadLocal
G4HadronCrossSections
*
instance
;
95
96
G4Pow
*
g4pow
;
97
98
G4double
sigelastic
;
99
G4double
siginelastic
;
100
G4ParticleDefinition
*
prevParticleDefinition
;
101
G4int
prevZZ
;
102
G4int
prevAA
;
103
G4double
prevKineticEnergy
;
104
G4double
lastEkx
,
lastEkxPower
;
105
106
G4bool
correctInelasticNearZero
;
107
108
G4int
verboseLevel
;
109
110
// The following arrays are declared static to allow the use of initializers.
111
// They are initialized in G4HadronCrossSections.cc, thus providing some
112
// data hiding.
113
114
static
const
G4float
plab
[
TSIZE
];
115
static
const
G4float
csel
[
NPARTS
][
TSIZE
];
116
static
const
G4float
csin
[
NPARTS
][
TSIZE
];
117
118
static
const
G4float
cspiel
[3][
TSIZE
];
119
static
const
G4float
cspiin
[3][
TSIZE
];
120
121
static
const
G4float
cspnel
[3][
TSIZE
];
122
static
const
G4float
cspnin
[3][
TSIZE
];
123
124
static
const
G4float
elab
[
NELAB
];
125
static
const
G4float
cnlwat
[
NCNLW
],
cnlwel
[
NCNLW
][
NELAB
],
cnlwin
[
NCNLW
][
NELAB
];
126
127
static
const
G4float
cscap
[100];
128
129
static
const
G4float
ekfiss
[
NFISS
],
csfiss
[4][
NFISS
];
130
131
static
const
G4float
alpha
[
NPARTS
],
alphac
[
TSIZE
];
132
133
static
const
G4float
partel
[35],
partin
[35];
134
static
const
G4int
icorr
[35],
intrc
[35];
135
136
static
const
G4float
csa
[4];
137
static
const
G4int
ipart2
[7];
138
};
139
#endif
140
geant4
tree
geant4-10.6-release
source
processes
hadronic
cross_sections
include
G4HadronCrossSections.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:36
using
1.8.2 with
ECCE GitHub integration