Geant4
9.6.p02
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
geant4_9_6_p02
source
processes
hadronic
cross_sections
include
G4HadronNucleonXsc.hh
Go to the documentation of this file.
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
//
32
//
33
// 14.03.07 V. Grichine - first implementation
34
// 04.11.11 V. Grichine - update for kaon-(p,n) xsc, vector spline
35
// 21.02.12 V. Grichine - update for pion-(p,n) xsc, NS fit++, vector spline
36
//
37
//
38
39
#ifndef G4HadronNucleonXsc_h
40
#define G4HadronNucleonXsc_h
41
42
#include "
globals.hh
"
43
#include "
G4Proton.hh
"
44
#include "
G4Nucleus.hh
"
45
#include "
G4LPhysicsFreeVector.hh
"
46
47
48
class
G4ParticleDefinition
;
49
class
G4DynamicParticle
;
50
51
class
G4HadronNucleonXsc
52
{
53
public
:
54
55
G4HadronNucleonXsc
();
56
virtual
~G4HadronNucleonXsc
();
57
58
virtual
59
G4bool
IsApplicable
(
const
G4DynamicParticle
* aDP,
const
G4Element
*);
60
61
virtual
62
G4bool
IsIsoApplicable
(
const
G4DynamicParticle
* aDP,
G4int
Z
,
G4int
A);
63
64
virtual
65
void
DumpPhysicsTable
(
const
G4ParticleDefinition
&)
66
{
G4cout
<<
"G4HadronNucleonXsc: uses parametrisation"
<<
G4endl
;}
67
68
void
CrossSectionDescription
(std::ostream&)
const
;
69
70
// Xsc parametrisations
71
72
G4double
GetHadronNucleonXscEL
(
const
G4DynamicParticle
*,
const
G4ParticleDefinition
*);
73
74
G4double
GetHadronNucleonXscPDG
(
const
G4DynamicParticle
*,
const
G4ParticleDefinition
*);
75
76
G4double
GetHadronNucleonXscNS
(
const
G4DynamicParticle
*,
const
G4ParticleDefinition
*);
77
78
G4double
GetHadronNucleonXscVU
(
const
G4DynamicParticle
*,
const
G4ParticleDefinition
*);
79
80
// kinematics and set/get
81
82
G4double
CalculateEcmValue
(
const
G4double
,
const
G4double
,
const
G4double
);
83
84
G4double
CalcMandelstamS
(
const
G4double
,
const
G4double
,
const
G4double
);
85
86
G4double
GetCoulombBarrier
(
const
G4DynamicParticle
* aParticle,
const
G4ParticleDefinition
* nucleon );
87
88
G4double
GetTotalHadronNucleonXsc
() {
return
fTotalXsc; };
89
G4double
GetElasticHadronNucleonXsc
() {
return
fElasticXsc; };
90
G4double
GetInelasticHadronNucleonXsc
(){
return
fInelasticXsc; };
91
92
void
InitialiseKaonNucleonTotXsc
();
93
94
G4double
GetKpProtonTotXscVector
(
G4double
logEnergy){
return
fKpProtonTotXscVector.
Value
(logEnergy); };
95
G4double
GetKpNeutronTotXscVector
(
G4double
logEnergy){
return
fKpNeutronTotXscVector.
Value
(logEnergy); };
96
G4double
GetKmProtonTotXscVector
(
G4double
logEnergy){
return
fKmProtonTotXscVector.
Value
(logEnergy); };
97
G4double
GetKmNeutronTotXscVector
(
G4double
logEnergy){
return
fKmNeutronTotXscVector.
Value
(logEnergy); };
98
99
private
:
100
101
const
G4double
fUpperLimit;
102
const
G4double
fLowerLimit;
103
104
G4double
fTotalXsc, fElasticXsc, fInelasticXsc;
105
G4double
fHadronNucleonXsc;
106
107
// K-nucleon tot xsc (mb) fit data, std::log(Tkin(MeV))
108
109
static
const
G4double
fKpProtonTotXsc[66];
110
static
const
G4double
fKpProtonTotTkin[66];
111
112
static
const
G4double
fKpNeutronTotXsc[75];
113
static
const
G4double
fKpNeutronTotTkin[75];
114
115
static
const
G4double
fKmProtonTotXsc[106];
116
static
const
G4double
fKmProtonTotTkin[106];
117
118
static
const
G4double
fKmNeutronTotXsc[68];
119
static
const
G4double
fKmNeutronTotTkin[68];
120
121
G4LPhysicsFreeVector
fKpProtonTotXscVector;
122
G4LPhysicsFreeVector
fKpNeutronTotXscVector;
123
G4LPhysicsFreeVector
fKmProtonTotXscVector;
124
G4LPhysicsFreeVector
fKmNeutronTotXscVector;
125
126
G4ParticleDefinition
* theGamma;
127
G4ParticleDefinition
* theProton;
128
G4ParticleDefinition
* theNeutron;
129
G4ParticleDefinition
* theAProton;
130
G4ParticleDefinition
* theANeutron;
131
G4ParticleDefinition
* thePiPlus;
132
G4ParticleDefinition
* thePiMinus;
133
G4ParticleDefinition
* thePiZero;
134
G4ParticleDefinition
* theKPlus;
135
G4ParticleDefinition
* theKMinus;
136
G4ParticleDefinition
* theK0S;
137
G4ParticleDefinition
* theK0L;
138
G4ParticleDefinition
* theL;
139
G4ParticleDefinition
* theAntiL;
140
G4ParticleDefinition
* theSPlus;
141
G4ParticleDefinition
* theASPlus;
142
G4ParticleDefinition
* theSMinus;
143
G4ParticleDefinition
* theASMinus;
144
G4ParticleDefinition
* theS0;
145
G4ParticleDefinition
* theAS0;
146
G4ParticleDefinition
* theXiMinus;
147
G4ParticleDefinition
* theXi0;
148
G4ParticleDefinition
* theAXiMinus;
149
G4ParticleDefinition
* theAXi0;
150
G4ParticleDefinition
* theOmega;
151
G4ParticleDefinition
* theAOmega;
152
G4ParticleDefinition
* theD;
153
G4ParticleDefinition
* theT;
154
G4ParticleDefinition
* theA;
155
G4ParticleDefinition
* theHe3;
156
157
};
158
159
160
#endif
Generated on Sat May 25 2013 14:33:40 for Geant4 by
1.8.4