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
G4CascadeNNChannel.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
33#include "G4CascadeNNChannel.hh"
35using namespace G4InuclParticleNames;
36
37namespace {
38 // n n : Outgoing particle types of a given multiplicity
39 static const G4int nn2bfs[1][2] =
40 {{neu,neu}};
41
42 static const G4int nn3bfs[6][3] =
43 {{neu,neu,pi0}, {pro,neu,pim}, {neu,lam,k0},
44 {neu,s0,k0}, {neu,sm,kpl}, {pro,sm,k0}};
45
46 static const G4int nn4bfs[18][4] =
47 {{neu,neu,pip,pim}, {pro,neu,pim,pi0},{neu,neu,pi0,pi0},
48 {pro,pro,pim,pim}, {neu,lam,k0,pi0}, {neu,lam,kpl,pim},
49 {pro,lam,k0,pim}, {pro,s0,k0,pim}, {neu,s0,k0,pi0},
50 {neu,s0,kpl,pim}, {neu,sp,k0,pim}, {neu,sm,kpl,pi0},
51 {pro,sm,kpl,pim}, {neu,sm,k0,pip}, {pro,sm,k0,pi0},
52 {neu,neu,kpl,kmi}, {neu,neu,k0,k0b}, {pro,neu,k0,kmi}};
53
54 static const G4int nn5bfs[32][5] =
59 {neu,sm,kpl,pi0,pi0}, {neu,sm,k0,pip,pi0}, {neu,sp,k0,pim,pi0},
62 {pro,sm,k0,pip,pim}, {pro,sm,k0,pi0,pi0}, {pro,sp,k0,pim,pim},
65 {pro,neu,pi0,k0,kmi}, {pro,pro,pim,k0,kmi}};
66
67 static const G4int nn6bfs[7][6] =
71 {pro,pro,pim,pim,pi0,pi0}};
72
73 static const G4int nn7bfs[8][7] =
78
79 static const G4int nn8bfs[10][8] =
85
86 static const G4int nn9bfs[11][9] =
93}
94
95namespace {
96 // Total n n cross sections as a function of kinetic energy
97 static const G4double nnTotXSec[30] =
98 // Stepanov cross sections below 400 MeV
99 {17613.0, 863.3, 674.6, 495.2, 376.0, 285.4, 205.8, 135.7, 93.7, 69.1,
100 55.2, 44.5, 38.8, 35.1, 33.0, 32.0, 44.0, 47.04, 44.86, 46.03,
101 44.09, 41.81, 41.17, 40.65, 40.15, 40.18, 39.26, 38.36, 38.39, 38.41};
102
103 static const G4double nnCrossSections[93][30] = {
104 //
105 // multiplicity 2 (1 channel)
106 //
107 // n n
108 // Stepanov cross sections below 400 MeV
109 {17613.0, 863.3, 674.6, 495.2, 376.0, 285.4, 205.8, 135.7, 93.7, 69.1,
110 55.2, 44.5, 38.8, 35.1, 32.3, 26.1, 25.0, 23.5, 21.0, 18.0,
111 16.0, 14.3, 12.5, 11.2, 10.3, 9.6, 9.0, 8.5, 8.0, 7.7 },
112 //
113 // multiplicity 3 (6 channels)
114 //
115 // n n pi0
116 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
117 0.0, 0.0, 0.0, 0.0, 0.0, 1.4, 4.0, 4.3, 4.0, 4.0,
118 3.6, 3.0, 2.8, 2.5, 1.7, 1.3, 1.1, 1.0, 0.9, 0.85 },
119
120 // p n pi-
121 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
122 0.0, 0.0, 0.0, 0.0, 0.7, 4.5, 15.0, 19.1, 18.0, 16.0,
123 13.0, 10.0, 8.2, 6.0, 4.3, 3.3, 2.6, 2.0, 1.65, 1.4 },
124
125 // n L K0
126 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
127 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01,
128 0.03, 0.06, 0.06, 0.06, 0.05, 0.05, 0.04 ,0.04, 0.04, 0.03 },
129
130 // n S0 K0
131 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
132 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
133 0.01, 0.02, 0.03, 0.03, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01 },
134
135 // n S- K+
136 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
137 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
138 0.01, 0.02, 0.03, 0.03, 0.03, 0.03, 0.02, 0.02, 0.02, 0.02 },
139
140 // p S- K0
141 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
142 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
143 0.02, 0.06, 0.07, 0.06, 0.05, 0.04, 0.03, 0.03, 0.02, 0.02 },
144 //
145 // multiplicity 4 (18 channels)
146 //
147 // n n pi+ pi-
148 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
149 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05, 0.6, 1.9,
150 2.8, 3.0, 3.0, 2.8, 2.5, 2.1, 1.9, 1.6, 1.4, 1.2 },
151
152 // p n pi- pi0
153 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
154 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05, 0.6, 3.5,
155 4.0, 3.9, 3.5, 3.1, 2.8, 2.4, 2.2, 1.9, 1.7, 1.5 },
156
157 // n n pi0 pi0
158 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
159 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02, 0.24, 0.76,
160 1.1, 1.2, 1.2, 1.1, 1.0, 0.84, 0.76, 0.64, 0.56, 0.48 },
161
162 // p p pi- pi-
163 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
164 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02, 0.24, 1.4,
165 1.6, 1.6, 1.4, 1.2, 1.1, 1.0, 0.88, 0.76, 0.68, 0.6 },
166
167 // L K0 n pi0
168 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.02, 0.05, 0.06, 0.05, 0.04, 0.04, 0.03, 0.03, 0.02 },
171
172 // L K+ n pi-
173 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.02, 0.06, 0.09, 0.09, 0.08, 0.07, 0.06, 0.05, 0.04 },
176
177 // L K0 p pi-
178 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.04, 0.08, 0.07, 0.06, 0.05, 0.04, 0.03, 0.03 },
181
182 // S0 K0 p pi-
183 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.02, 0.03, 0.03, 0.02, 0.02, 0.02, 0.01, 0.01 },
186
187 // S0 K0 n pi0
188 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.03, 0.02, 0.02, 0.02, 0.01, 0.01,0.01 },
191
192 // S0 K+ n pi-
193 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.04, 0.04, 0.03, 0.03, 0.02, 0.02, 0.02 },
196
197 // S+ K0 n pi-
198 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.02, 0.04, 0.03, 0.03, 0.02, 0.02, 0.02, 0.01 },
201
202 // S- K+ n pi0
203 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01 },
206
207 // S- K+ p pi-
208 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.04, 0.05, 0.04, 0.04, 0.03, 0.03, 0.02 },
211
212 // S- K0 n pi+
213 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.04, 0.04, 0.03, 0.03, 0.02, 0.02, 0.01 },
216
217 // S- K0 p pi0
218 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.04, 0.04, 0.03, 0.03, 0.02, 0.02, 0.01 },
221
222 // n n K+ K-
223 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01 },
226
227 // n n K0 K0bar
228 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01 },
231
232 // p n K0 K-
233 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.03, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01 },
236 //
237 // multiplicity 5 (32 channels)
238 //
239 // n n pi+ pi- pi0
240 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
241 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.06,
242 0.4, 1.1, 1.8, 2.4, 2.4, 2.2, 2.0, 1.7, 1.5, 1.3 },
243
244 // n n pi0 pi0 pi0
245 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
246 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02,
247 0.12, 0.33, 0.54, 0.72, 0.72, 0.66, 0.6, 0.51, 0.45, 0.39 },
248
249 // p n pi+ pi- pi-
250 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
251 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.12, 0.26,
252 0.7, 1.6, 2.4, 2.6, 2.3, 2.0, 1.8, 1.6, 1.4, 1.2 },
253
254 // p n pi- pi0 pi0
255 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
256 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04, 0.08,
257 0.21, 0.48, 0.72, 0.78, 0.69, 0.6, 0.54, 0.48, 0.42, 0.36 },
258
259 // p p pi- pi- pi0
260 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
261 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.04,
262 0.24, 0.66, 1.08, 1.44, 1.44, 1.32, 1.2, 1.0, 0.9, 0.78 },
263
264 // n L K0 pi+ pi-
265 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.04, 0.05, 0.04, 0.04, 0.03, 0.02 },
268
269 // n L K0 pi0 pi0
270 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.02, 0.02, 0.02, 0.02, 0.01 },
273
274 // n L K+ pi- pi0
275 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.04, 0.04, 0.04, 0.03, 0.03, 0.02 },
278
279 // n S0 K0 pi+ pi-
280 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.03, 0.04, 0.03, 0.03, 0.02, 0.02 },
283
284 // n S0 K0 pi0 pi0
285 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.02, 0.01, 0.01, 0.01 },
288
289 // n S0 K+ pi- pi0
290 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.03, 0.04, 0.03, 0.03, 0.02, 0.02 },
293
294 // n S- K+ pi+ pi-
295 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.02, 0.04, 0.03, 0.03, 0.02, 0.02 },
298
299 // n S- K+ pi0 pi0
300 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.01, 0.01, 0.01, 0.01 },
303
304 // n S- K0 pi+ pi0
305 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.02, 0.04, 0.03, 0.03, 0.02, 0.02 },
308
309 // n S+ K0 pi- pi0
310 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.02, 0.04, 0.03, 0.03, 0.02, 0.02 },
313
314 // n S+ K+ pi- pi-
315 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.03, 0.04, 0.03, 0.03, 0.02, 0.02 },
318
319 // p L K0 pi- pi0
320 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.04, 0.04, 0.03, 0.02, 0.02, 0.01 },
323
324 // p L K+ pi- pi-
325 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.04, 0.04, 0.03, 0.02, 0.02, 0.01 },
328
329 // p S0 K0 pi- pi0
330 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01 },
333
334 // p S0 K+ pi- pi-
335 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01 },
338
339 // p S- K+ pi- pi0
340 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01 },
343
344 // p S- K0 pi+ pi-
345 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.04, 0.04, 0.03, 0.02, 0.02, 0.01 },
348
349 // p S- K0 pi0 pi0
350 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01 },
353
354 // p S+ K0 pi- pi-
355 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01 },
358
359 // n n pi- K+ K0bar
360 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.04, 0.06, 0.04, 0.04, 0.03 },
363
364 // n n pi+ K0 K-
365 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.02, 0.04, 0.03, 0.03, 0.02, 0.02 },
368
369 // n n pi0 K+ K-
370 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.04, 0.06, 0.05, 0.04, 0.03 },
373
374 // n n pi0 K0 K0bar
375 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.04, 0.06, 0.05, 0.04, 0.03 },
378
379 // p n pi- K+ K-
380 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.04, 0.06, 0.05, 0.03, 0.02, 0.02 },
383
384 // p n pi- K0 K0bar
385 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.04, 0.06, 0.05, 0.03, 0.02, 0.02 },
388
389 // p n pi0 K0 K-
390 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.02, 0.04, 0.03, 0.03, 0.02, 0.02 },
393
394 // p p pi- K0 K-
395 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.02, 0.04, 0.03, 0.03, 0.02, 0.02 },
398 //
399 // multiplicity 6 (7 channels)
400 //
401 // n n pi+ pi+ pi- pi-
402 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
403 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
404 0.06, 0.1, 0.18, 0.38, 0.49, 0.46, 0.43, 0.40, 0.38, 0.36 },
405
406 // n n pi+ pi- pi0 pi0
407 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
408 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
409 0.03, 0.05, 0.09, 0.19, 0.25, 0.23, 0.22, 0.2, 0.19, 0.18 },
410
411 // n n pi0 pi0 pi0 pi0
412 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
413 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
414 0.01, 0.02, 0.05, 0.1, 0.13, 0.12, 0.11, 0.1, 0.1, 0.09 },
415
416 // p n pi+ pi- pi- pi0
417 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
418 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
419 0.06, 0.1, 0.18, 0.38, 0.49, 0.46, 0.43, 0.40, 0.38, 0.36 },
420
421 // p n pi- pi0 pi0 pi0
422 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
423 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
424 0.03, 0.05, 0.09, 0.19, 0.25, 0.23, 0.22, 0.2, 0.19, 0.18 },
425
426 // p p pi+ pi- pi- pi-
427 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
428 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
429 0.03, 0.05, 0.09, 0.19, 0.25, 0.23, 0.22, 0.2, 0.19, 0.18 },
430
431 // p p pi- pi- pi0 pi0
432 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
433 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
434 0.03, 0.05, 0.09, 0.19, 0.25, 0.23, 0.22, 0.2, 0.19, 0.18 },
435 //
436 // multiplicity 7 (8 channels)
437 //
438 // n n pi+ pi+ pi- pi- pi0
439 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.06, 0.17, 0.5, 0.7, 0.7, 0.69, 0.66, 0.62 },
442
443 // n n pi+ pi- pi0 pi0 pi0
444 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.04, 0.1, 0.30, 0.42, 0.42, 0.42, 0.40, 0.37 },
447
448 // n n pi0 pi0 pi0 pi0 pi0
449 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.02, 0.05, 0.14, 0.20, 0.22, 0.20, 0.19, 0.18 },
452
453 // p n pi+ pi+ pi- pi- pi-
454 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.06, 0.19, 0.31, 0.41, 0.44, 0.47, 0.45, 0.45 },
457
458 // p n pi+ pi- pi- pi0 pi0
459 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.04, 0.12, 0.18, 0.24, 0.26, 0.23, 0.28, 0.26 },
462
463 // p n pi- pi0 pi0 pi0 pi0
464 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.02, 0.06, 0.08, 0.12, 0.13, 0.14, 0.13, 0.13 },
467
468 // p p pi+ pi- pi- pi- pi0
469 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.06, 0.17, 0.5, 0.7, 0.7, 0.69, 0.66, 0.62 },
472
473 // p p pi- pi- pi0 pi0 pi0
474 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.04, 0.1, 0.30, 0.42, 0.42, 0.41, 0.40, 0.37 },
477 //
478 // multiplicity 8 (10 channels)
479 //
480 // n n pi+ pi+ pi+ pi- pi- pi-
481 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.08, 0.18, 0.27, 0.30, 0.27, 0.24 },
484
485 // n n pi+ pi+ pi- pi- pi0 pi0
486 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.08, 0.18, 0.27, 0.30, 0.27, 0.24 },
489
490 // n n pi+ pi- pi0 pi0 pi0 pi0
491 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.04, 0.12, 0.15, 0.18, 0.15, 0.15 },
494
495 // n n pi0 pi0 pi0 pi0 pi0 pi0
496 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.06, 0.09, 0.12, 0.09, 0.09 },
499
500 // p n pi+ pi+ pi- pi- pi- pi0
501 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.08, 0.18, 0.27, 0.30, 0.27, 0.24 },
504
505 // p n pi+ pi- pi- pi0 pi0 pi0
506 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.04, 0.12, 0.15, 0.18, 0.15, 0.15 },
509
510 // p n pi- pi0 pi0 pi0 pi0 pi0
511 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.03, 0.06, 0.09, 0.12, 0.09, 0.09 },
514
515 // p p pi+ pi+ pi- pi- pi- pi-
516 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.08, 0.18, 0.27, 0.30, 0.27, 0.24 },
519
520 // p p pi+ pi- pi- pi- pi0 pi0
521 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.04, 0.12, 0.15, 0.18, 0.15, 0.15 },
524
525 // p p pi- pi- pi0 pi0 pi0 pi0
526 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.03, 0.06, 0.09, 0.12, 0.09, 0.09 },
529 //
530 // multiplicity 9 (11 channels)
531 //
532 // n n pi+ pi+ pi+ pi- pi- pi- pi0
533 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.07, 0.11, 0.14, 0.15, 0.15, 0.15 },
536
537 // n n pi+ pi+ pi- pi- pi0 pi0 pi0
538 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.06, 0.09, 0.11, 0.12, 0.12, 0.12 },
541
542 // n n pi+ pi- pi0 pi0 pi0 pi0 pi0
543 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.04, 0.06, 0.07, 0.07, 0.07, 0.07 },
546
547 // n n pi0 pi0 pi0 pi0 pi0 pi0 pi0
548 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.03, 0.03, 0.04, 0.04, 0.04, 0.04 },
551
552 // p n pi+ pi+ pi+ pi- pi- pi- pi-
553 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.06, 0.15, 0.19, 0.22, 0.22, 0.22 },
556
557 // p n pi+ pi+ pi- pi- pi- pi0 pi0
558 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.03, 0.08, 0.20, 0.25, 0.29, 0.29, 0.29 },
561
562 // p n pi+ pi- pi- pi0 pi0 pi0 pi0
563 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.05, 0.12, 0.15, 0.17, 0.17, 0.17 },
566
567 // p n pi- pi0 pi0 pi0 pi0 pi0 pi0
568 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.03, 0.07, 0.09, 0.10, 0.10, 0.10 },
571
572 // p p pi+ pi+ pi- pi- pi- pi- pi0
573 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.06, 0.15, 0.19, 0.22, 0.22, 0.22 },
576
577 // p p pi+ pi- pi- pi- pi0 pi0 pi0
578 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.02, 0.05, 0.12, 0.15, 0.17, 0.17, 0.17 },
581
582 // p p pi+ pi- pi0 pi0 pi0 pi0 pi0
583 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
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.01, 0.03, 0.07, 0.09 ,0.10, 0.10, 0.10 }};
586}
587
588// Initialize n-n cross-section table
589
591G4CascadeNNChannelData::data(nn2bfs, nn3bfs, nn4bfs, nn5bfs, nn6bfs, nn7bfs,
592 nn8bfs, nn9bfs, nnCrossSections, nnTotXSec,
593 neu*neu, "NeutronNeutron");
594
595// Overload base class interpolator to use function for 0-10 MeV total, elastic
596
599 const G4double (&xsec)[30]) const {
600 if (ke < 0.01 && (xsec == nnTotXSec || xsec == nnCrossSections[0])) {
601 // Stepanov's function for ke < 10 MeV, up to zero-energy value
602 const G4double kemin = 4.0/nnTotXSec[0];
603 return (ke>0.001 ? (9.0692 - 0.0050574/ke)/ke + 6.9466 :
604 ke>kemin ? 4.0/ke : nnTotXSec[0]);
605 }
606 return G4PionNucSampler::findCrossSection(ke, xsec); // Call through to base
607}
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