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
G4ChipsNeutronElasticXS.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4ChipsNeutronElasticXS.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 physics class: G4ChipsNeutronElasticXS -- header file
30
// M.V. Kossov, ITEP(Moscow), 24-OCT-01
31
// The last update: M.V. Kossov, CERN/ITEP (Moscow) 12-Jan-2010 (from G4QElCrSect)
32
//
33
// -------------------------------------------------------------------------------
34
// Short description: Interaction cross-sections for the elastic process.
35
// Class extracted from CHIPS and integrated in Geant4 by W.Pokorski
36
// -------------------------------------------------------------------------------
37
38
39
#ifndef G4ChipsNeutronElasticXS_h
40
#define G4ChipsNeutronElasticXS_h 1
41
42
#include <vector>
43
#include "
Randomize.hh
"
44
#include "
G4VCrossSectionDataSet.hh
"
45
46
class
G4ChipsNeutronElasticXS
:
public
G4VCrossSectionDataSet
47
{
48
49
public
:
50
51
G4ChipsNeutronElasticXS
();
// Constructor
52
53
~G4ChipsNeutronElasticXS
();
54
55
static
const
char
*
Default_Name
() {
return
"ChipsNeutronElasticXS"
;}
56
57
virtual
void
CrossSectionDescription
(std::ostream&)
const
;
58
59
virtual
G4bool
IsIsoApplicable
(
const
G4DynamicParticle
* Pt,
G4int
Z
,
G4int
A
,
60
const
G4Element
* elm,
61
const
G4Material
*
mat
);
62
63
// At present momentum (pMom) in MeV/c, CS in mb (@@ Units)
64
virtual
G4double
GetIsoCrossSection
(
const
G4DynamicParticle
*,
G4int
tgZ,
G4int
A
,
65
const
G4Isotope
* iso = 0,
66
const
G4Element
* elm = 0,
67
const
G4Material
*
mat
= 0);
68
69
virtual
G4double
GetChipsCrossSection
(
G4double
momentum
,
G4int
Z
,
G4int
N
,
G4int
pdg
);
70
71
G4double
GetExchangeT
(
G4int
tZ,
G4int
tN,
G4int
pPDG);
// Randomizes -t=Q2 (in IU=MeV^2)
72
G4double
GetHMaxT
();
// Currrent Max(-t=Q2)/2. (in IU=MeV^2)
73
74
private
:
75
76
G4double
CalculateCrossSection
(
G4bool
CS,
G4int
F,
G4int
I,
G4int
pPDG,
G4int
Z
,
G4int
N
,
77
G4double
pP);
78
79
G4double
GetSlope
(
G4int
tZ,
G4int
tN,
G4int
pPDG);
// Slope of the 1st diff. maximum
80
81
G4double
GetPTables
(
G4double
lpP,
G4double
lPm,
G4int
PDG,
G4int
tZ,
G4int
tN);
// newLP
82
G4double
GetTabValues
(
G4double
lp,
G4int
pPDG,
G4int
tgZ,
G4int
tgN);
// return CS(Si/Bi)
83
G4double
GetQ2max
(
G4int
pPDG,
G4int
tgZ,
G4int
tgN,
G4double
pP);
// return -t=Q2
84
85
// Body
86
private
:
87
// --- Data formating AMDB (define the precalculated table structure) ---
88
const
G4int
nPoints
;
// #of points in the AMDB tables
89
const
G4int
nLast
;
// the Last element in the table
90
G4double
lPMin
;
// Min tabulated logarithmic Momentum
91
G4double
lPMax
;
// Max tabulated logarithmic Momentum
92
G4double
dlnP
;
// Log step in the table
93
// ---- Local (for particular pP, pPDG, tZ, tN) -----
94
G4bool
onlyCS
;
// flag to calculate only CS (not S1/B1,S2/B2,S3/B3)
95
G4double
lastSIG
;
// Last calculated cross section
96
G4double
lastLP
;
// Last log(mom_of_the_incident_hadron in GeV)
97
G4double
lastTM
;
// Last t_maximum
98
G4int
lastN
;
// The last N of calculated nucleus
99
G4int
lastZ
;
// The last Z of calculated nucleus
100
G4double
lastP
;
// Last used in the cross section Momentum
101
G4double
lastTH
;
// Last value of the Momentum Threshold
102
G4double
lastCS
;
// Last value of the Cross Section
103
G4int
lastI
;
// The last position in the DAMDB
104
G4double
theSS
;
// The Last squared slope of first diffruction
105
G4double
theS1
;
// The Last mantissa of first diffruction
106
G4double
theB1
;
// The Last slope of first diffruction
107
G4double
theS2
;
// The Last mantissa of second diffruction
108
G4double
theB2
;
// The Last slope of second diffruction
109
G4double
theS3
;
// The Last mantissa of third diffruction
110
G4double
theB3
;
// The Last slope of third diffruction
111
G4double
theS4
;
// The Last mantissa of 4-th diffruction
112
G4double
theB4
;
// The Last slope of 4-th diffruction
113
// ---- Global (AMBD of P-dependent tables for pPDG,tZ,tN) -----
114
G4int
lastTZ
;
// Last atomic number of the target
115
G4int
lastTN
;
// Last number of neutrons of the target
116
G4double
lastPIN
;
// Last initialized max momentum
117
G4double
*
lastCST
;
// Last cross-section table
118
G4double
*
lastPAR
;
// Last parameters for functional calculation
119
G4double
*
lastSST
;
// E-dep of squared slope of the first difruction
120
G4double
*
lastS1T
;
// E-dep of mantissa of the first difruction
121
G4double
*
lastB1T
;
// E-dep of the slope of the first difruction
122
G4double
*
lastS2T
;
// E-dep of mantissa of the second difruction
123
G4double
*
lastB2T
;
// E-dep of the slope of theSecond difruction
124
G4double
*
lastS3T
;
// E-dep of mantissa of the third difruction
125
G4double
*
lastB3T
;
// E-dep of the slope of the third difruction
126
G4double
*
lastS4T
;
// E-dep of mantissa of the 4-th difruction
127
G4double
*
lastB4T
;
// E-dep of the slope of the 4-th difruction
128
129
std::vector <G4double*>
PAR
;
// Vector of parameters for functional calculations
130
std::vector <G4double*>
CST
;
// Vector of cross-section table
131
std::vector <G4double*>
SST
;
// Vector of the first squared slope
132
std::vector <G4double*>
S1T
;
// Vector of the first mantissa
133
std::vector <G4double*>
B1T
;
// Vector of the first slope
134
std::vector <G4double*>
S2T
;
// Vector of the secon mantissa
135
std::vector <G4double*>
B2T
;
// Vector of the second slope
136
std::vector <G4double*>
S3T
;
// Vector of the third mantissa
137
std::vector <G4double*>
B3T
;
// Vector of the third slope
138
std::vector <G4double*>
S4T
;
// Vector of the 4-th mantissa (gloria)
139
std::vector <G4double*>
B4T
;
// Vector of the 4-th slope (gloria)
140
141
std::vector <G4int>
colN
;
// Vector of N for calculated nuclei (isotops)
142
std::vector <G4int>
colZ
;
// Vector of Z for calculated nuclei (isotops)
143
std::vector <G4double>
colP
;
// Vector of last momenta for the reaction
144
std::vector <G4double>
colTH
;
// Vector of energy thresholds for the reaction
145
std::vector <G4double>
colCS
;
// Vector of last cross sections for the reaction
146
std::vector <G4double>
PIN
;
// Vector of max initialized log(P) in the table
147
148
};
149
#endif
geant4
tree
geant4-10.6-release
source
processes
hadronic
cross_sections
include
G4ChipsNeutronElasticXS.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:36
using
1.8.2 with
ECCE GitHub integration