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
G4CascadePPChannel.cc
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// 20100804 M. Kelsey -- Add name string to ctor
27// 20110719 M. Kelsey -- Add initial state code to ctor
28// 20110720 M. Kelsey -- Bugs in the very last 9-body final state for pp and nn
29// 20110725 M. Kelsey -- Instantiate cross-section object for self-registration
30// 20110916 M. Kelsey -- Drop self-registration due to platform inconsistencies
31// 20120831 M. Kelsey -- Replace T1NNChannel with separate pp and nn files.
32// 20120907 M. Kelsey -- Subclass and overload findCrossSection() function.
33
34#include "G4CascadePPChannel.hh"
36using namespace G4InuclParticleNames;
37
38namespace {
39 // p p : Outgoing particle types of a given multiplicity
40 static const G4int pp2bfs[1][2] =
41 {{pro,pro}};
42
43 static const G4int pp3bfs[6][3] =
44 {{pro,pro,pi0}, {pro,neu,pip}, {pro,lam,kpl},
45 {pro,s0,kpl}, {pro,sp,k0}, {neu,sp,kpl}};
46
47 static const G4int pp4bfs[18][4] =
48 {{pro,pro,pip,pim}, {pro,neu,pip,pi0}, {pro,pro,pi0,pi0},
49 {neu,neu,pip,pip}, {pro,lam,kpl,pi0}, {pro,lam,k0,pip},
50 {neu,lam,kpl,pip}, {neu,s0,kpl,pip}, {pro,s0,kpl,pi0},
51 {pro,s0,k0,pip}, {pro,sm,kpl,pip}, {pro,sp,k0,pi0},
52 {neu,sp,k0,pip}, {pro,sp,kpl,pim}, {neu,sp,kpl,pi0},
53 {pro,pro,k0,k0b}, {pro,pro,kpl,kmi}, {pro,neu,kpl,k0b}};
54
55 static const G4int pp5bfs[32][5] =
59 {pro,s0,kpl,pi0,pi0}, {pro,s0,k0,pip,pi0}, {pro,sp,k0,pip,pim},
62 {neu,s0,kpl,pip,pi0}, {neu,s0,k0,pip,pip}, {neu,sp,k0,pip,pi0},
66 {pro,neu,pi0,kpl,k0b}, {neu,neu,pip,kpl,k0b}};
67
68 static const G4int pp6bfs[7][6] =
72 {neu,neu,pip,pip,pi0,pi0}};
73
74 static const G4int pp7bfs[8][7] =
79
80 static const G4int pp8bfs[10][8] =
86
87 static const G4int pp9bfs[11][9] =
94}
95
96namespace {
97 // Total p p cross sections as a function of kinetic energy
98 static const G4double ppTotXSec[30] =
99 // Stepanov cross sections below 400 MeV
100 {17613.0, 863.3, 674.6, 495.2, 376.0, 285.4, 205.8, 135.7, 93.7, 69.1,
101 55.2, 44.5, 38.8, 35.1, 33.0, 32.0, 44.0, 47.04, 44.86, 46.03,
102 44.09, 41.81, 41.17, 40.65, 40.15, 40.18, 39.26, 38.36, 38.39, 38.41};
103
104 static const G4double ppCrossSections[93][30] = {
105 //
106 // multiplicity 2 (1 channel)
107 //
108 // p p
109 // Stepanov cross sections below 400 MeV
110 {17613.0, 863.3, 674.6, 495.2, 376.0, 285.4, 205.8, 135.7, 93.7, 69.1,
111 55.2, 44.5, 38.8, 35.1, 32.3, 26.1, 25.0, 23.5, 21.0, 18.0,
112 16.0, 14.3, 12.5, 11.2, 10.3, 9.6, 9.0, 8.5, 8.0, 7.7 },
113 //
114 // multiplicity 3 (6 channels)
115 //
116 // p p pi0
117 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
118 0.0, 0.0, 0.0, 0.0, 0.0, 1.4, 4.0, 4.3, 4.0, 4.0,
119 3.6, 3.0, 2.8, 2.5, 1.7, 1.3, 1.1, 1.0, 0.9, 0.85 },
120
121 // p n pi+
122 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
123 0.0, 0.0, 0.0, 0.0, 0.7, 4.5, 15.0, 19.1, 18.0, 16.0,
124 13.0, 10.0, 8.2, 6.0, 4.3, 3.3, 2.6, 2.0, 1.65, 1.4 },
125
126 // p L K+
127 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
128 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01,
129 0.03, 0.06, 0.06, 0.06, 0.05, 0.05, 0.04 ,0.04, 0.04, 0.03 },
130
131 // p S0 K+
132 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
133 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
134 0.01, 0.02, 0.03, 0.03, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01 },
135
136 // p S+ K0
137 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
138 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
139 0.01, 0.02, 0.03, 0.03, 0.03, 0.03, 0.02, 0.02, 0.02, 0.02 },
140
141 // n S+ K+
142 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
143 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
144 0.02, 0.06, 0.07, 0.06, 0.05, 0.04, 0.03, 0.03, 0.02, 0.02 },
145 //
146 // multiplicity 4 (18 channels)
147 //
148 // p p pi+ pi-
149 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
150 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05, 0.6, 1.9,
151 2.8, 3.0, 3.0, 2.8, 2.5, 2.1, 1.9, 1.6, 1.4, 1.2 },
152
153 // p n pi+ pi0
154 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
155 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05, 0.6, 3.5,
156 4.0, 3.9, 3.5, 3.1, 2.8, 2.4, 2.2, 1.9, 1.7, 1.5 },
157
158 // p p pi0 pi0
159 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
160 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02, 0.24, 0.76,
161 1.1, 1.2, 1.2, 1.1, 1.0, 0.84, 0.76, 0.64, 0.56, 0.48 },
162
163 // n n pi+ pi+
164 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
165 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02, 0.24, 1.4,
166 1.6, 1.6, 1.4, 1.2, 1.1, 1.0, 0.88, 0.76, 0.68, 0.6 },
167
168 // L K+ p pi0
169 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
170 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
171 0.0, 0.02, 0.05, 0.06, 0.05, 0.04, 0.04, 0.03, 0.03, 0.02 },
172
173 // L K0 p pi+
174 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
175 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
176 0.0, 0.02, 0.06, 0.09, 0.09, 0.08, 0.07, 0.06, 0.05, 0.04 },
177
178 // L K+ n pi+
179 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
180 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
181 0.0, 0.01, 0.04, 0.08, 0.07, 0.06, 0.05, 0.04, 0.03, 0.03 },
182
183 // S0 K+ n pi+
184 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
185 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
186 0.0, 0.0, 0.02, 0.03, 0.03, 0.02, 0.02, 0.02, 0.01, 0.01 },
187
188 // S0 K+ p pi0
189 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
190 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
191 0.0, 0.01, 0.02, 0.03, 0.02, 0.02, 0.02, 0.01, 0.01,0.01 },
192
193 // S0 K0 p pi+
194 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
195 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
196 0.0, 0.0, 0.01, 0.04, 0.04, 0.03, 0.03, 0.02, 0.02, 0.02 },
197
198 // S- K+ p pi+
199 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
200 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
201 0.0, 0.0, 0.02, 0.04, 0.03, 0.03, 0.02, 0.02, 0.02, 0.01 },
202
203 // S+ K0 p pi0
204 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
205 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
206 0.0, 0.0, 0.01, 0.02, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01 },
207
208 // S+ K0 n pi+
209 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
210 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
211 0.0, 0.0, 0.01, 0.04, 0.05, 0.04, 0.04, 0.03, 0.03, 0.02 },
212
213 // S+ K+ p pi-
214 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
215 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
216 0.0, 0.0, 0.01, 0.04, 0.04, 0.03, 0.03, 0.02, 0.02, 0.01 },
217
218 // S+ K+ n pi0
219 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
220 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
221 0.0, 0.0, 0.01, 0.04, 0.04, 0.03, 0.03, 0.02, 0.02, 0.01 },
222
223 // p p K0 K0bar
224 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
225 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
226 0.0, 0.0, 0.0, 0.01, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01 },
227
228 // p p K+ K-
229 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
230 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
231 0.0, 0.0, 0.0, 0.01, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01 },
232
233 // p n K+ K0bar
234 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
235 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
236 0.0, 0.0, 0.01, 0.03, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01 },
237 //
238 // multiplicity 5 (32 channels)
239 //
240 // p p pi+ pi- pi0
241 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
242 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.06,
243 0.4, 1.1, 1.8, 2.4, 2.4, 2.2, 2.0, 1.7, 1.5, 1.3 },
244
245 // p p pi0 pi0 pi0
246 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
247 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02,
248 0.12, 0.33, 0.54, 0.72, 0.72, 0.66, 0.6, 0.51, 0.45, 0.39 },
249
250 // p n pi+ pi+ pi-
251 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
252 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12, 0.26,
253 0.7, 1.6, 2.4, 2.6, 2.3, 2.0, 1.8, 1.6, 1.4, 1.2 },
254
255 // p n pi+ pi0 pi0
256 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
257 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04, 0.08,
258 0.21, 0.48, 0.72, 0.78, 0.69, 0.6, 0.54, 0.48, 0.42, 0.36 },
259
260 // n n pi+ pi+ pi0
261 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
262 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.04,
263 0.24, 0.66, 1.08, 1.44, 1.44, 1.32, 1.2, 1.0, 0.9, 0.78 },
264
265 // p L K+ pi+ pi-
266 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
267 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
268 0.0, 0.0, 0.0, 0.01, 0.04, 0.05, 0.04, 0.04, 0.03, 0.02 },
269
270 // p L K+ pi0 pi0
271 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
272 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
273 0.0, 0.0, 0.0, 0.01, 0.02, 0.02, 0.02, 0.02, 0.02, 0.01 },
274
275 // p L K0 pi+ pi0
276 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
277 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
278 0.0, 0.0, 0.0, 0.01, 0.04, 0.04, 0.04, 0.03, 0.03, 0.02 },
279
280 // p S0 K+ pi+ pi-
281 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
282 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
283 0.0, 0.0, 0.0, 0.01, 0.03, 0.04, 0.03, 0.03, 0.02, 0.02 },
284
285 // p S0 K+ pi0 pi0
286 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
287 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
288 0.0, 0.0, 0.0, 0.0, 0.01, 0.02, 0.02, 0.01, 0.01, 0.01 },
289
290 // p S0 K0 pi+ pi0
291 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
292 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
293 0.0, 0.0, 0.0, 0.01, 0.03, 0.04, 0.03, 0.03, 0.02, 0.02 },
294
295 // p S+ K0 pi+ pi-
296 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
297 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
298 0.0, 0.0, 0.0, 0.0, 0.02, 0.04, 0.03, 0.03, 0.02, 0.02 },
299
300 // p S+ K0 pi0 pi0
301 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
302 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
303 0.0, 0.0, 0.0, 0.0, 0.01, 0.02, 0.01, 0.01, 0.01, 0.01 },
304
305 // p S+ K+ pi- pi0
306 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
307 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
308 0.0, 0.0, 0.0, 0.0, 0.02, 0.04, 0.03, 0.03, 0.02, 0.02 },
309
310 // p S- K+ pi+ pi0
311 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
312 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
313 0.0, 0.0, 0.0, 0.0, 0.02, 0.04, 0.03, 0.03, 0.02, 0.02 },
314
315 // p S- K0 pi+ pi+
316 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
317 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
318 0.0, 0.0, 0.0, 0.01, 0.03, 0.04, 0.03, 0.03, 0.02, 0.02 },
319
320 // n L K+ pi+ pi0
321 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
322 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
323 0.0, 0.0, 0.0, 0.01, 0.04, 0.04, 0.03, 0.02, 0.02, 0.01 },
324
325 // n L K0 pi+ pi+
326 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
327 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
328 0.0, 0.0, 0.0, 0.01, 0.04, 0.04, 0.03, 0.02, 0.02, 0.01 },
329
330 // n S0 K+ pi+ pi0
331 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
332 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
333 0.0, 0.0, 0.0, 0.01, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01 },
334
335 // n S0 K0 pi+ pi+
336 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
337 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
338 0.0, 0.0, 0.0, 0.01, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01 },
339
340 // n S+ K0 pi+ pi0
341 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
342 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
343 0.0, 0.0, 0.0, 0.01, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01 },
344
345 // n S+ K+ pi+ pi-
346 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
347 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
348 0.0, 0.0, 0.0, 0.01, 0.04, 0.04, 0.03, 0.02, 0.02, 0.01 },
349
350 // n S+ K+ pi0 pi0
351 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
352 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
353 0.0, 0.0, 0.0, 0.01, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01 },
354
355 // n S- K+ pi+ pi+
356 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
357 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
358 0.0, 0.0, 0.0, 0.01, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01 },
359
360 // p p pi+ K0 K-
361 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
362 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
363 0.0, 0.0, 0.0, 0.0, 0.01, 0.04, 0.06, 0.04, 0.04, 0.03 },
364
365 // p p pi- K+ K0bar
366 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
367 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
368 0.0, 0.0, 0.0, 0.0, 0.02, 0.04, 0.03, 0.03, 0.02, 0.02 },
369
370 // p p pi0 K0 K0bar
371 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
372 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
373 0.0, 0.0, 0.0, 0.0, 0.01, 0.04, 0.06, 0.05, 0.04, 0.03 },
374
375 // p p pi0 K+ K-
376 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
377 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
378 0.0, 0.0, 0.0, 0.0, 0.01, 0.04, 0.06, 0.05, 0.04, 0.03 },
379
380 // p n pi+ K0 K0bar
381 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
382 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
383 0.0, 0.0, 0.0, 0.01, 0.04, 0.06, 0.05, 0.03, 0.02, 0.02 },
384
385 // p n pi+ K+ K-
386 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
387 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
388 0.0, 0.0, 0.0, 0.01, 0.04, 0.06, 0.05, 0.03, 0.02, 0.02 },
389
390 // p n pi0 K+ K0bar
391 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
392 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
393 0.0, 0.0, 0.0, 0.0, 0.02, 0.04, 0.03, 0.03, 0.02, 0.02 },
394
395 // n n pi+ K+ K0bar
396 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
397 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
398 0.0, 0.0, 0.0, 0.0, 0.02, 0.04, 0.03, 0.03, 0.02, 0.02 },
399 //
400 // multiplicity 6 (7 channels)
401 //
402 // p p pi+ pi+ pi- pi-
403 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
404 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
405 0.06, 0.1, 0.18, 0.38, 0.49, 0.46, 0.43, 0.40, 0.38, 0.36 },
406
407 // p p pi+ pi- pi0 pi0
408 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
409 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
410 0.03, 0.05, 0.09, 0.19, 0.25, 0.23, 0.22, 0.2, 0.19, 0.18 },
411
412 // p p pi0 pi0 pi0 pi0
413 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
414 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
415 0.01, 0.02, 0.05, 0.1, 0.13, 0.12, 0.11, 0.1, 0.1, 0.09 },
416
417 // p n pi+ pi+ pi- pi0
418 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
419 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
420 0.06, 0.1, 0.18, 0.38, 0.49, 0.46, 0.43, 0.40, 0.38, 0.36 },
421
422 // p n pi+ pi0 pi0 pi0
423 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
424 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
425 0.03, 0.05, 0.09, 0.19, 0.25, 0.23, 0.22, 0.2, 0.19, 0.18 },
426
427 // n n pi+ pi+ pi+ pi-
428 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
429 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
430 0.03, 0.05, 0.09, 0.19, 0.25, 0.23, 0.22, 0.2, 0.19, 0.18 },
431
432 // n n pi+ pi+ pi0 pi0
433 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
434 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
435 0.03, 0.05, 0.09, 0.19, 0.25, 0.23, 0.22, 0.2, 0.19, 0.18 },
436 //
437 // multiplicity 7 (8 channels)
438 //
439 // p p pi+ pi+ pi- pi- pi0
440 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
441 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
442 0.0, 0.0, 0.06, 0.17, 0.5, 0.7, 0.7, 0.69, 0.66, 0.62 },
443
444 // p p pi+ pi- pi0 pi0 pi0
445 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
446 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
447 0.0, 0.0, 0.04, 0.1, 0.30, 0.42, 0.42, 0.42, 0.40, 0.37 },
448
449 // p p pi0 pi0 pi0 pi0 pi0
450 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
451 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
452 0.0, 0.0, 0.02, 0.05, 0.14, 0.20, 0.22, 0.20, 0.19, 0.18 },
453
454 // p n pi+ pi+ pi+ pi- pi-
455 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
456 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
457 0.0, 0.0, 0.06, 0.19, 0.31, 0.41, 0.44, 0.47, 0.45, 0.45 },
458
459 // p n pi+ pi+ pi- pi0 pi0
460 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
461 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
462 0.0, 0.0, 0.04, 0.12, 0.18, 0.24, 0.26, 0.23, 0.28, 0.26 },
463
464 // p n pi+ pi0 pi0 pi0 pi0
465 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
466 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
467 0.0, 0.0, 0.02, 0.06, 0.08, 0.12, 0.13, 0.14, 0.13, 0.13 },
468
469 // n n pi+ pi+ pi+ pi- pi0
470 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
471 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
472 0.0, 0.0, 0.06, 0.17, 0.5, 0.7, 0.7, 0.69, 0.66, 0.62 },
473
474 // n n pi+ pi+ pi0 pi0 pi0
475 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
476 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
477 0.0, 0.0, 0.04, 0.1, 0.30, 0.42, 0.42, 0.41, 0.40, 0.37 },
478 //
479 // multiplicity 8 (10 channels)
480 //
481 // p p pi+ pi+ pi+ pi- pi- pi-
482 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
483 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
484 0.0, 0.0, 0.01, 0.02, 0.08, 0.18, 0.27, 0.30, 0.27, 0.24 },
485
486 // p p pi+ pi+ pi- pi- pi0 pi0
487 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
488 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
489 0.0, 0.0, 0.01, 0.02, 0.08, 0.18, 0.27, 0.30, 0.27, 0.24 },
490
491 // p p pi+ pi- pi0 pi0 pi0 pi0
492 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
493 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
494 0.0, 0.0, 0.01, 0.02, 0.04, 0.12, 0.15, 0.18, 0.15, 0.15 },
495
496 // p p pi0 pi0 pi0 pi0 pi0 pi0
497 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
498 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
499 0.0, 0.0, 0.0, 0.01, 0.02, 0.06, 0.09, 0.12, 0.09, 0.09 },
500
501 // p n pi+ pi+ pi+ pi- pi- pi0
502 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
503 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
504 0.0, 0.0, 0.01, 0.02, 0.08, 0.18, 0.27, 0.30, 0.27, 0.24 },
505
506 // p n pi+ pi+ pi- pi0 pi0 pi0
507 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
508 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
509 0.0, 0.0, 0.01, 0.02, 0.04, 0.12, 0.15, 0.18, 0.15, 0.15 },
510
511 // p n pi+ pi0 pi0 pi0 pi0 pi0
512 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
513 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
514 0.0, 0.0, 0.0, 0.01, 0.03, 0.06, 0.09, 0.12, 0.09, 0.09 },
515
516 // n n pi+ pi+ pi+ pi+ pi- pi-
517 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
518 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
519 0.0, 0.0, 0.01, 0.02, 0.08, 0.18, 0.27, 0.30, 0.27, 0.24 },
520
521 // n n pi+ pi+ pi+ pi- pi0 pi0
522 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
523 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
524 0.0, 0.0, 0.01, 0.02, 0.04, 0.12, 0.15, 0.18, 0.15, 0.15 },
525
526 // n n pi+ pi+ pi0 pi0 pi0 pi0
527 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
528 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
529 0.0, 0.0, 0.0, 0.01, 0.03, 0.06, 0.09, 0.12, 0.09, 0.09 },
530 //
531 // multiplicity 9 (11 channels)
532 //
533 // p p pi+ pi+ pi+ pi- pi- pi- pi0
534 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
535 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
536 0.0, 0.0, 0.01, 0.02, 0.07, 0.11, 0.14, 0.15, 0.15, 0.15 },
537
538 // p p pi+ pi+ pi- pi- pi0 pi0 pi0
539 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
540 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
541 0.0, 0.0, 0.01, 0.02, 0.06, 0.09, 0.11, 0.12, 0.12, 0.12 },
542
543 // p p pi+ pi- pi0 pi0 pi0 pi0 pi0
544 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
545 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
546 0.0, 0.0, 0.0, 0.01, 0.04, 0.06, 0.07, 0.07, 0.07, 0.07 },
547
548 // p p pi0 pi0 pi0 pi0 pi0 pi0 pi0
549 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
550 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
551 0.0, 0.0, 0.0, 0.01, 0.03, 0.03, 0.04, 0.04, 0.04, 0.04 },
552
553 // p n pi+ pi+ pi+ pi+ pi- pi- pi-
554 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
555 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
556 0.0, 0.0, 0.01, 0.02, 0.06, 0.15, 0.19, 0.22, 0.22, 0.22 },
557
558 // p n pi+ pi+ pi+ pi- pi- pi0 pi0
559 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
560 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
561 0.0, 0.0, 0.01, 0.03, 0.08, 0.20, 0.25, 0.29, 0.29, 0.29 },
562
563 // p n pi+ pi+ pi- pi0 pi0 pi0 pi0
564 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
565 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
566 0.0, 0.0, 0.01, 0.02, 0.05, 0.12, 0.15, 0.17, 0.17, 0.17 },
567
568 // p n pi+ pi0 pi0 pi0 pi0 pi0 pi0
569 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
570 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
571 0.0, 0.0, 0.0, 0.01, 0.03, 0.07, 0.09, 0.10, 0.10, 0.10 },
572
573 // n n pi+ pi+ pi+ pi+ pi- pi- pi0
574 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
575 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
576 0.0, 0.0, 0.01, 0.02, 0.06, 0.15, 0.19, 0.22, 0.22, 0.22 },
577
578 // n n pi+ pi+ pi+ pi- pi0 pi0 pi0
579 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
580 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
581 0.0, 0.0, 0.01, 0.02, 0.05, 0.12, 0.15, 0.17, 0.17, 0.17 },
582
583 // n n pi+ pi- pi0 pi0 pi0 pi0 pi0
584 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
585 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
586 0.0, 0.0, 0.0, 0.01, 0.03, 0.07, 0.09 ,0.10, 0.10, 0.10 }};
587}
588
589// Initialize p-p cross-section table
590
592G4CascadePPChannelData::data(pp2bfs, pp3bfs, pp4bfs, pp5bfs, pp6bfs, pp7bfs,
593 pp8bfs, pp9bfs, ppCrossSections, ppTotXSec,
594 pro*pro, "ProtonProton");
595
596
597// Overload base class interpolator to use function for 0-10 MeV total, elastic
598
601 const G4double (&xsec)[30]) const {
602 if (ke < 0.01 && (xsec == ppTotXSec || xsec == ppCrossSections[0])) {
603 // Stepanov's function for ke < 10 MeV, up to zero-energy value
604 const G4double kemin = 4.0/ppTotXSec[0];
605 return (ke>0.001 ? (9.0692 - 0.0050574/ke)/ke + 6.9466 :
606 ke>kemin ? 4.0/ke : ppTotXSec[0]);
607 }
608 return G4PionNucSampler::findCrossSection(ke, xsec); // Call through to base
609}
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
virtual G4double findCrossSection(G4double ke, const G4double(&xsec)[30]) const
virtual G4double findCrossSection(double ke, const G4double(&xsec)[energyBins]) const