Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
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