Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4PiNuclearCrossSection.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#ifndef G4PiNuclearCrossSection_h
27#define G4PiNuclearCrossSection_h
28
30
31#include "globals.hh"
32#include "G4PionMinus.hh"
33#include "G4PionPlus.hh"
34#include "G4PiData.hh"
35#include "G4HadTmpUtil.hh"
36
38{
39 public:
40
43
44 virtual
46 G4int Z, const G4Material*);
47
48 virtual
50 G4int Z, const G4Material*);
51
52 virtual
54
55 virtual void CrossSectionDescription(std::ostream&) const;
56
57 inline G4double GetTotalXsc() {return fTotalXsc;};
58 inline G4double GetElasticXsc() {return fElasticXsc;};
59
60 private:
61 G4double Interpolate(G4int Z1, G4int Z2, G4int Z, G4double x1, G4double x2);
62
63 // add Hydrogen from PDG group.
64
65 static const G4double e1[38];
66 static const G4double he_t[38];
67 static const G4double he_in[38];
68 static const G4double be_m_t[38];
69 static const G4double be_m_in[38];
70 static const G4double be_p_t[24];
71 static const G4double be_p_in[24];
72 static const G4double e2[39];
73 static const G4double c_m_t[39];
74 static const G4double c_m_in[39];
75 static const G4double c_p_t[24];
76 static const G4double c_p_in[24];
77 static const G4double n_m_t[39];
78 static const G4double n_m_in[39];
79 static const G4double n_p_t[27];
80 static const G4double n_p_in[27];
81 static const G4double e3[31];
82 static const G4double o_m_t[31];
83 static const G4double o_m_in[31];
84 static const G4double o_p_t[20];
85 static const G4double o_p_in[20];
86 static const G4double na_m_t[31];
87 static const G4double na_m_in[31];
88 static const G4double na_p_t[22];
89 static const G4double na_p_in[22];
90 static const G4double e3_1[31];
91 static const G4double al_m_t[31];
92 static const G4double al_m_in[31];
93 static const G4double al_p_t[21];
94 static const G4double al_p_in[21];
95 static const G4double ca_m_t[31];
96 static const G4double ca_m_in[31];
97 static const G4double ca_p_t[23];
98 static const G4double ca_p_in[23];
99
100 static const G4double e4[32];
101 static const G4double fe_m_t[32];
102 static const G4double fe_m_in[32];
103 static const G4double fe_p_t[25];
104 static const G4double fe_p_in[25];
105 static const G4double cu_m_t[32];
106 static const G4double cu_m_in[32];
107 static const G4double cu_p_t[25];
108 static const G4double cu_p_in[25];
109 static const G4double e5[34];
110 static const G4double mo_m_t[34];
111 static const G4double mo_m_in[34];
112 static const G4double mo_p_t[27];
113 static const G4double mo_p_in[27];
114 static const G4double cd_m_t[34];
115 static const G4double cd_m_in[34];
116 static const G4double cd_p_t[28];
117 static const G4double cd_p_in[28];
118 static const G4double e6[35];
119 static const G4double sn_m_t[35];
120 static const G4double sn_m_in[35];
121 static const G4double sn_p_t[29];
122 static const G4double sn_p_in[29];
123 static const G4double w_m_t[35];
124 static const G4double w_m_in[35];
125 static const G4double w_p_t[30];
126 static const G4double w_p_in[30];
127 static const G4double e7[35];
128 static const G4double pb_m_t[35];
129 static const G4double pb_m_in[35];
130 static const G4double pb_p_t[30];
131 static const G4double pb_p_in[30];
132 static const G4double u_m_t[35];
133 static const G4double u_m_in[35];
134 static const G4double u_p_t[30];
135 static const G4double u_p_in[30];
136
137 std::vector<G4int> theZ;
138 std::vector<G4PiData *> thePipData;
139 std::vector<G4PiData *> thePimData;
140
141 // cross sections
142
143 G4double fTotalXsc;
144 G4double fElasticXsc;
145
146};
147
148#endif
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
bool G4bool
Definition: G4Types.hh:67
virtual G4double GetElementCrossSection(const G4DynamicParticle *particle, G4int Z, const G4Material *)
virtual void CrossSectionDescription(std::ostream &) const
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
virtual G4bool IsElementApplicable(const G4DynamicParticle *aParticle, G4int Z, const G4Material *)