46G4int G4UPiNuclearCrossSection::theZ[NZ] =
47{2,4,6,7,8,11,13,20,26,29,42,48,50,74,82,92};
48G4int G4UPiNuclearCrossSection::idxZ[93] = {0};
49G4double G4UPiNuclearCrossSection::theA[NZ] = {0.0};
50G4double G4UPiNuclearCrossSection::APower[93] = {0.0};
53G4PhysicsTable* G4UPiNuclearCrossSection::piPlusInelastic =
nullptr;
55G4PhysicsTable* G4UPiNuclearCrossSection::piMinusInelastic =
nullptr;
71 elow = 20.0*CLHEP::MeV;
80 piPlusElastic =
nullptr;
84 delete piPlusInelastic;
85 piPlusInelastic =
nullptr;
89 delete piMinusElastic;
90 piMinusElastic =
nullptr;
92 if(piMinusInelastic) {
94 delete piMinusInelastic;
95 piMinusInelastic =
nullptr;
107G4double G4UPiNuclearCrossSection::Interpolate(
112 G4int iz = std::min(
Z, 92);
113 G4int idx = idxZ[iz];
114 size_t jdx = (size_t)(std::max(ekin - elow, 0.0)*0.06);
117 if(idx < 0 || 2 == iz) {
118 res = ((*table)[std::abs(idx)])->Value(ekin, jdx);
121 G4int iz2 = theZ[idx];
122 G4double x2 = (((*table)[idx])->Value(ekin, jdx))*APower[iz]/APower[iz2];
124 G4int iz1 = theZ[idx-1];
125 G4double x1 = (((*table)[idx-1])->Value(ekin, jdx))*APower[iz]/APower[iz1];
127 res = w1*x2 + (1.0 - w1)*x1;
133void G4UPiNuclearCrossSection::AddDataSet(
const G4String& p,
141 for(
G4int i=0; i<
n; ++i) {
142 pvin->
PutValues(i,e[i]*GeV,in[i]*millibarn);
143 pvel->
PutValues(i,e[i]*GeV,std::max(0.0,(tot[i]-in[i])*millibarn));
161 G4cout <<
"### G4UPiNuclearCrossSection Elastic data for pi+" <<
G4endl;
163 G4cout <<
"### G4UPiNuclearCrossSection Inelastic data for pi+" <<
G4endl;
165 }
else if(&p == piMinus) {
166 G4cout <<
"### G4UPiNuclearCrossSection Elastic data for pi-" <<
G4endl;
168 G4cout <<
"### G4UPiNuclearCrossSection Inelastic data for pi-" <<
G4endl;
177 if(piPlusElastic) {
return; }
179 if(&p != piPlus && &p != piMinus) {
181 ed <<
"This cross section is applicable only to pions and not to "
183 G4Exception(
"G4UPiNuclearCrossSection::BuildPhysicsTable",
"had001",
189#ifdef G4MULTITHREADED
194#ifdef G4MULTITHREADED
199 if(!isMaster) {
return; }
203 for(
G4int i=0; i<NZ; ++i) {
206 for(
G4int i=1; i<93; ++i) {
210 for(
G4int i=3; i<93; ++i) {
228void G4UPiNuclearCrossSection::LoadData()
231 0.02, 0.04, 0.06, 0.08, 0.1, 0.12, 0.13, 0.14, 0.15, 0.16,
232 0.17, 0.18, 0.19, 0.2, 0.22,0.24, 0.26, 0.28, 0.3, 0.35,
233 0.4, 0.45, 0.5, 0.55, 0.6, 0.7, 0.8, 0.9, 1, 2,
234 3, 5, 10, 20, 50, 100, 500, 1000};
236 0.02, 0.04, 0.06, 0.08, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15,
237 0.16, 0.17, 0.18, 0.2, 0.22, 0.24, 0.26, 0.28, 0.3, 0.35,
238 0.4, 0.45, 0.5, 0.55, 0.575,0.6, 0.7, 0.8, 0.9, 1,
239 2, 3, 5, 10, 20, 50, 100, 500, 1000};
241 0.02, 0.04, 0.06, 0.08, 0.1, 0.12, 0.14, 0.16, 0.18, 0.2,
242 0.22, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, 0.8,
243 0.9, 1, 2, 3, 5, 10, 20, 50, 100, 500, 1000};
245 0.02, 0.04, 0.06, 0.08, 0.1, 0.12, 0.14, 0.16, 0.18, 0.2,
246 0.22, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.7,
247 0.8, 0.9, 1, 2, 3, 5, 10, 20, 50, 100, 500, 1000};
249 0.02, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.12, 0.14,
250 0.16, 0.18, 0.2, 0.22, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5,
251 0.6, 0.7, 0.8, 0.9, 1, 2, 3, 5, 10, 20, 50, 100, 500, 1000};
253 0.02, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.12, 0.14,
254 0.16, 0.18, 0.2, 0.22, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5,
255 0.55, 0.6, 0.7, 0.8, 0.9, 1, 2, 3, 5, 10, 20, 50, 100, 500, 1000};
258 40, 70, 108, 152, 208, 276, 300, 320, 329, 333,
259 332, 328, 322, 310, 288, 260, 240, 216, 196, 144,
260 125, 112, 108.5, 109, 110.5, 117, 123, 128.5, 135, 110,
261 96, 87, 85, 83.5, 83.5, 83.5, 83.5, 83.5};
263 18, 38, 62, 98, 136, 176, 190, 200, 209, 212,
264 212, 208, 204, 196, 176, 164, 150, 134, 124, 97.5,
265 90, 85,82.5, 83.5, 86.5, 93, 97.5,100, 102, 83,
266 77, 75, 74, 72.5, 72.5, 72.5, 72.5, 72.5};
267 static const G4double be_m_t[38] = {
268 150, 210, 294, 396, 520, 600, 623, 635, 642, 640,
269 630, 615, 600, 576, 540, 504, 470, 435, 400, 340,
270 294, 258, 236, 230, 233, 244, 257, 270, 276, 250,
271 230, 215, 205, 194, 188, 186, 186, 186};
272 static const G4double be_m_in[38] = {
273 90, 126, 177, 240, 320, 380, 400, 410, 414, 410,
274 400, 387, 371, 360, 333, 312, 285, 260, 237, 216,
275 198, 187, 182, 180, 182, 187, 193, 203, 207, 179,
276 172, 165, 159, 155, 144, 144, 144, 144};
277 static const G4double be_p_t[38] = {
278 96, 150, 222, 320, 430, 514, 545, 565, 574, 574,
279 564, 552, 535, 522, 490, 462, 432, 398, 367, 314,
280 276, 248, 232, 230, 233, 244, 257, 270, 276, 250,
281 230, 215, 205, 194, 188, 186, 186, 186};
282 static const G4double be_p_in[38] = {
283 60, 95, 142, 194, 262, 319, 345, 361, 364, 364,
284 354, 350, 330, 319, 298, 280, 258, 237, 216, 200,
285 189, 183, 182, 180, 182, 187, 193, 203, 207, 179,
286 172, 165, 159, 155, 144, 144, 144, 144};
289 204, 260, 366, 517, 630, 673, 694, 704, 710, 711,
290 706, 694, 676, 648, 616, 584, 548, 518, 489, 426,
291 376, 342, 323, 310, 312, 313, 319, 333, 342, 348,
292 310, 290, 268, 250, 245, 237, 234, 234, 234};
293 static const G4double c_m_in[39] = {
294 128, 160, 224, 315, 388, 416, 430, 438, 444, 445,
295 440, 432, 416, 400, 380, 354, 320, 304, 288, 264,
296 246, 240, 233, 232, 233, 234, 238, 246, 252, 256,
297 220, 210, 198, 187, 183, 176, 174, 174, 174};
299 140, 192, 294, 428, 594, 642, 662, 687, 685, 688,
300 684, 672, 656, 630, 598, 567, 533, 504, 474, 416,
301 369, 336, 319, 310, 312, 313, 319, 333, 342, 348,
302 310, 290, 268, 250, 245, 237, 234, 234, 234};
303 static const G4double c_p_in[39] = {
304 94, 132, 184, 260, 370, 398, 408, 420, 426, 428,
305 424, 416, 400, 386, 366, 340, 308, 294, 280, 257,
306 241, 236, 231, 232, 233, 234, 238, 246, 252, 256,
307 220, 210, 198, 187, 183, 176, 174, 174, 174};
309 246, 308, 424, 590, 729, 776, 800, 821, 822, 817,
310 800, 778, 768, 728, 690, 654, 615, 584, 556, 480,
311 430, 393, 373, 367, 368, 370, 375, 388, 390, 397,
312 364, 337, 310, 291, 275, 268, 268, 268, 268};
313 static const G4double n_m_in[39] = {
314 155, 188, 256, 360, 456, 492, 512, 526, 526, 520,
315 504, 491, 475, 450, 425, 396, 376, 360, 340, 300,
316 282, 270, 265, 265, 266, 268, 273, 280, 288, 288,
317 256, 237, 226, 218, 208, 202, 202, 202, 202};
319 150, 212, 328, 500, 680, 735, 762, 781, 782, 779,
320 770, 748, 740, 706, 672, 633, 600, 569, 541, 467,
321 419, 385, 368, 364, 366, 368, 375, 388, 390, 397,
322 364, 337, 310, 291, 275, 268, 268, 268, 268};
323 static const G4double n_p_in[39] = {
324 90, 140, 208, 300, 426, 467, 490, 504, 504, 500,
325 484, 474, 460, 437, 413, 381, 365, 350, 330, 292,
326 276, 267, 263, 264, 265, 267, 273, 280, 288, 288,
327 256, 237, 226, 218, 208, 202, 202, 202, 202};
330 280, 360, 500, 685, 812, 861, 870, 865, 835, 800,
331 755, 700, 600, 537, 493, 468, 441, 436, 443, 449,
332 460, 463, 432, 385, 350, 325, 312, 307, 303, 303, 303};
333 static const G4double o_m_in[31] = {
334 190, 207, 300, 420, 500, 540, 550, 542, 520, 490,
335 460, 423, 360, 339, 321, 314, 312, 314, 319, 324,
336 328, 330, 300, 275, 250, 240, 229, 225, 222, 222, 222};
338 170, 240, 390, 570, 740, 818, 830, 822, 800, 765,
339 725, 675, 585, 525, 483, 458, 444, 447, 453, 449,
340 460, 463, 432, 385, 350, 325, 312, 307, 303, 303, 303};
341 static const G4double o_p_in[31] = {
342 100, 145, 240, 340, 470, 518, 530, 522, 505, 477,
343 448, 412, 350, 330, 316, 310, 308, 311, 317, 324,
344 328, 330, 300, 275, 250, 240, 229, 225, 222, 222, 222};
345 static const G4double na_m_t[31] = {
346 450, 545, 705, 910, 1020, 1075, 1087, 1080, 1042, 987,
347 943, 885, 790, 700, 650, 610, 585, 575, 585, 595,
348 600, 610, 556, 524, 494, 458, 445, 429, 427, 427, 427};
349 static const G4double na_m_in[31] = {
350 275, 315, 413, 545, 620, 660, 670, 662, 630, 593,
351 570, 520, 465, 420, 410, 395, 390, 400, 410, 418,
352 420, 422, 372, 348, 330, 320, 310, 294, 292, 292, 292};
353 static const G4double na_p_t[31] = {
354 210, 320, 530, 795, 960, 1035, 1050, 1040, 1007, 957,
355 918, 865, 773, 685, 636, 598, 575, 565, 578, 590,
356 598, 610, 556, 524, 494, 458, 445, 429, 427, 427, 427};
357 static const G4double na_p_in[31] = {
358 115, 210, 340, 495, 585, 630, 645, 637, 605, 572,
359 550, 505, 455, 410, 401, 388, 383, 393, 405, 414,
360 418, 422, 372, 348, 330, 320, 310, 294, 292, 292, 292};
361 static const G4double al_m_t[31] = {
362 532, 637, 832, 1057, 1207, 1230, 1210, 1174, 1133, 1095,
363 1038, 970, 890, 807, 750, 710, 675, 665, 670, 673,
364 678, 682, 618, 574, 546, 520, 507, 495, 488, 488, 488};
365 static const G4double al_m_in[31] = {
366 300, 360, 495, 665, 750, 765, 750, 730, 700, 660,
367 615, 570, 520, 490, 470, 450, 448, 450, 450, 452,
368 456, 460, 408, 392, 376, 356, 347, 338, 332, 332, 332};
369 static const G4double al_p_t[31] = {
370 225, 350, 616, 945, 1122, 1175, 1157, 1128, 1088, 1045,
371 988, 935, 870, 787, 730, 690, 660, 652, 660, 668,
372 678, 682, 618, 574, 546, 520, 507, 495, 488, 488, 488};
373 static const G4double al_p_in[31] = {
374 120, 238, 390, 610, 712, 735, 720, 703, 655, 635,
375 590, 550, 505, 475, 455, 438, 440, 445, 445, 450,
376 456, 460, 408, 392, 376, 356, 347, 338, 332, 332, 332};
378 static const G4double ca_m_t[31] = {
379 800, 980, 1240, 1460, 1570, 1600, 1580, 1535, 1475, 1425,
380 1375,1295, 1200, 1083, 1000, 948, 915, 895, 900, 908,
381 915, 922, 856, 795, 740, 705, 682, 660, 660, 660, 660};
382 static const G4double ca_m_in[31] = {
383 470, 550, 620, 860, 955, 960, 920, 860, 820, 780,
384 740, 665, 637, 615, 600, 590, 580, 580, 600, 608,
385 610, 615, 550, 525, 510, 488, 470, 450, 450, 450, 450};
386 static const G4double ca_p_t[31] = {
387 275, 445, 790, 1195, 1440, 1485, 1475, 1435, 1385, 1335,
388 1295,1245,1160, 1050, 970, 923, 895, 877, 887, 897,
389 904, 913, 855, 795, 740, 705, 682, 660, 660, 660, 660};
390 static const G4double ca_p_in[31] = {
391 160, 315, 500, 745, 870, 905, 900, 860, 810, 770,
392 740, 710, 640, 617, 595, 585, 575, 575, 590, 600,
393 602, 608, 550, 525, 510, 488, 470, 450, 450, 450, 450};
396 static const G4double fe_m_t[32] = {
397 1175, 1363, 1670, 1950, 2050, 2040, 1975, 1886, 1834, 1773,
398 1720, 1635, 1474, 1380, 1269, 1225, 1182, 1162, 1159, 1162,
399 1178, 1190, 1197, 1102, 1135, 975, 945, 925, 905, 905,
401 static const G4double fe_m_in[32] = {
402 625, 725, 910, 1180, 1275, 1250, 1200, 1150, 1100, 1040,
403 995, 925, 825, 810, 780, 760, 745, 740, 740, 740,
404 750, 760, 765, 690, 660, 635, 615, 600, 585, 585,
406 static const G4double fe_p_t[32] = {
407 330, 575, 1010, 1500, 1837, 1875, 1820, 1751, 1691, 1636,
408 1690, 1450, 1396, 1305, 1219, 1190, 1148, 1138, 1134, 1144,
409 1163, 1175, 1183, 1198, 1135, 975, 945, 925, 905, 905,
411 static const G4double fe_p_in[32] = {
412 210, 410, 707, 1010, 1125, 1150, 1100, 1070, 1010, 960,
413 920, 776, 780, 760, 750, 740, 720, 725, 725, 730,
414 740, 750, 755, 690, 660, 635, 615, 600, 585, 585,
416 static const G4double cu_m_t[32] = {
417 1400, 1600, 1875, 2088, 2200, 2220, 2175, 2125, 2075, 2012,
418 1950, 1855, 1670, 1530, 1430, 1370, 1315, 1315, 1315, 1330,
419 1345, 1360, 1365, 1250, 1185, 1128, 1070, 1035, 1010, 1010,
421 static const G4double cu_m_in[32] = {
422 725, 840, 1020, 1200, 1295, 1300, 1267, 1240, 1213, 1175,
423 1125, 1042, 950, 900, 860, 840, 830, 832, 835, 840,
424 850, 860, 865, 785, 735, 705, 680, 650, 630, 630,
426 static const G4double cu_p_t[32] = {
427 355, 605, 1120, 1630, 1940, 2010, 2010, 1980, 1925, 1895,
428 1830, 1730, 1585, 1490, 1400, 1340, 1290, 1290, 1290, 1310,
429 1330, 1345, 1350, 1240, 1185, 1128, 1070, 1035, 1010, 1010,
431 static const G4double cu_p_in[32] = {
432 230, 425, 780, 1025, 1155, 1190, 1190, 1180, 1125, 1100,
433 1050, 1000, 900, 870, 835, 815, 810, 812, 815, 825,
434 840, 850, 855, 780, 735, 705, 680, 650, 630, 630,
437 static const G4double mo_m_t[34] = {
438 2430, 2610, 2710, 2790, 2880, 2940, 2965, 2970, 2970, 2920,
439 2840, 2720, 2570, 2500, 2365, 2200, 2050, 1926, 1825, 1768,
440 1749, 1750, 1778, 1789, 1808, 1690, 1645, 1530, 1492, 1450,
441 1425, 1425, 1425, 1425};
442 static const G4double mo_m_in[34] = {
443 925, 1125, 1250, 1375, 1500, 1600, 1680, 1750, 1770, 1730,
444 1660, 1580, 1500, 1450, 1330, 1250, 1190, 1140, 1100, 1075,
445 1075, 1070, 1088, 1095, 1110, 1035, 1005, 940, 917, 880,
447 static const G4double mo_p_t[34] = {
448 410, 730, 1110, 1530, 1920, 2200, 2385, 2520, 2600, 2630,
449 2575, 2470, 2320, 2285, 2185, 2053, 1945, 1852, 1776, 1719,
450 1710, 1716, 1746, 1759, 1778, 1675, 1645, 1530, 1492, 1450,
451 1425, 1425, 1425, 1425};
452 static const G4double mo_p_in[34] = {
453 270, 540, 825, 975, 1140, 1285, 1400, 1480, 1555, 1580,
454 1525, 1470, 1360, 1340, 1255, 1160, 1120, 1085, 1060, 1045,
455 1045, 1045, 1065, 1075, 1090, 1025, 1005, 940, 917, 880,
457 static const G4double cd_m_t[34] = {
458 3060, 3125, 3170, 3220, 3255, 3280, 3290, 3260, 3270, 3200,
459 3120, 3080, 3090, 2920, 2810, 2640, 2362, 2230, 2115, 2050,
460 2020, 2025, 2040, 2070, 2100, 1900, 1795, 1740, 1675, 1645,
461 1625, 1620, 1620, 1620};
462 static const G4double cd_m_in[34]= {
463 1025, 1275, 1440, 1625, 1740, 1800, 1880, 1920, 1980, 1920,
464 1850, 1810, 1720, 1650, 1560, 1450, 1330, 1290, 1245, 1210,
465 1200, 1200, 1205, 1205, 1230, 1130, 1085, 1060, 1000, 985,
467 static const G4double cd_p_t[34] = {
468 455, 780, 1170, 1700, 2120, 2400, 2600, 2720, 2820, 2840,
469 2800, 2760, 2720, 2640, 2560, 2450, 2252, 2130, 2035, 1985,
470 1970, 1975, 2005, 2035, 2070, 1880, 1795, 1740, 1675, 1645,
471 1625, 1620, 1620, 1620};
472 static const G4double cd_p_in[34] = {
473 310, 580, 880, 1060, 1270, 1400, 1530, 1610, 1660, 1680,
474 1640, 1600, 1560, 1500, 1430, 1330, 1280, 1230, 1200, 1180,
475 1170, 1175, 1180, 1180, 1210, 1120, 1085, 1060, 1000, 985,
478 static const G4double sn_m_t[35] = {
479 3000, 3180, 3250, 3300, 3300, 3410, 3470, 3450, 3410, 3350,
480 3280, 3200, 3120, 3050, 2900, 2630, 2500, 2325, 2190, 2100,
481 2060, 2055, 2055, 2055, 2067, 2085, 2000, 1900, 1835, 1770,
482 1720, 1700, 1695, 1695, 1695};
483 static const G4double sn_m_in[35] = {
484 1050, 1350, 1520, 1650, 1800, 1980, 2070, 2120, 2090, 2050,
485 1980, 1920, 1830, 1770, 1670, 1500, 1435, 1350, 1300, 1230,
486 1220, 1235, 1235, 1235, 1237, 1240, 1160, 1120, 1090, 1065,
487 1040, 1020, 1015, 1015, 1015};
488 static const G4double sn_p_t[35] = {
489 465, 800, 1200, 1760, 2170, 2480, 2730, 2885, 2970, 2980,
490 2970, 2890, 2840, 2790, 2620, 2450, 2335, 2205, 2080, 2020,
491 2010, 1990, 1990, 2015, 2030, 2045, 1980, 1890, 1835, 1770,
492 1720, 1700, 1695, 1695, 1695};
493 static const G4double sn_p_in[35] = {
494 315, 590, 880, 1220, 1460, 1580, 1700, 1770, 1810, 1810,
495 1800, 1730, 1680, 1630, 1530, 1400, 1335, 1270, 1210, 1180,
496 1190, 1190, 1190, 1205, 1210, 1210, 1150, 1115, 1090, 1065,
497 1040, 1020, 1015, 1015, 1015};
499 5200, 5115, 5025, 4975, 4900, 4850, 4780, 4725, 4600, 4490,
500 4355, 4255, 4125, 4040, 3830, 3580, 3330, 3110, 2955, 2860,
501 2852, 2845, 2885, 2900, 2915, 2940, 2800, 2660, 2570, 2490,
502 2460, 2425, 2420, 2420, 2420};
503 static const G4double w_m_in[35] = {
504 1450, 1850, 2100, 2350, 2550, 2700, 2825, 2900, 2850, 2750,
505 2630, 2525, 2400, 2300, 2200, 2070, 1880, 1770, 1715, 1680,
506 1680, 1680, 1685, 1690, 1700, 1720, 1635, 1560, 1530, 1460,
507 1440, 1410, 1410, 1410, 1410};
509 480, 900, 1500, 2350, 3020, 3420, 3650, 3775, 3875, 3830,
510 3750, 3700, 3630, 3550, 3550, 3290, 3070, 2890, 2840, 2730,
511 2725, 2720, 2770, 2805, 2828, 2865, 2770, 2640, 2570, 2490,
512 2460, 2425, 2420, 2420, 2420};
513 static const G4double w_p_in[35] = {
514 325, 680, 990, 1500, 1850, 2150, 2250, 2300, 2350, 2330,
515 2280, 2230, 2200, 2120, 2130, 1900, 1780, 1670, 1635, 1600,
516 1602, 1605, 1610, 1615, 1630, 1660, 1620, 1550, 1530, 1460,
517 1440, 1410, 1410, 1410, 1410};
519 static const G4double pb_m_t[35] = {
520 5890, 5700, 5610, 5580, 5550, 5480, 5400, 5300, 5100, 4930,
521 4750, 4600, 4400, 4280, 4170, 3915, 3650, 3470, 3260, 3150,
522 3120, 3070, 3085, 3100, 3120, 3160, 3070, 2930, 2820, 2750,
523 2710, 2655, 2640, 2640, 2640};
524 static const G4double pb_m_in[35] = {
525 1575, 2025, 2300, 2575, 2850, 3000, 3115, 3180, 3080, 2940,
526 2800, 2670, 2550, 2450, 2370, 2220, 2110, 2000, 1920, 1880,
527 1850, 1800, 1805, 1810, 1820, 1840, 1800, 1720, 1640, 1620,
528 1570, 1530, 1530, 1530, 1530};
529 static const G4double pb_p_t[35] = {
530 515, 940, 1500, 2400, 3270, 3750, 4050, 4140, 4260, 4200,
531 4080, 3990, 3990, 3810, 3730, 3520, 3370, 3186, 3110, 3010,
532 2990, 2985, 3005, 3020, 3040, 3080, 3020, 2905, 2790, 2750,
533 2710, 2655, 2640, 2640, 2640};
534 static const G4double pb_p_in[35] = {
535 348, 707, 1040, 1650, 2100, 2400, 2580, 2640, 2650, 2520,
536 2410, 2300, 2250, 2190, 2130, 2000, 1930, 1870, 1830, 1790,
537 1770, 1765, 1775, 1780, 1790, 1800, 1775, 1710, 1620, 1620,
538 1570, 1530, 1530, 1530, 1530};
540 7080, 6830, 6650, 6530, 6400, 6280, 6100, 5840, 5660, 5520,
541 5330, 5160, 4990, 4810, 4630, 4323, 4130, 3870, 3700, 3550,
542 3490, 3465, 3467, 3475, 3495, 3515, 3440, 3360, 3150, 3040,
543 2985, 2955, 2940, 2940, 2940};
544 static const G4double u_m_in[35] = {
545 1740, 2220, 2500, 2820, 3080, 3300, 3420, 3500, 3420, 3330,
546 3200, 3060, 2940, 2850, 2710, 2470, 2380, 2250, 2160, 2080,
547 2040, 2045, 2047, 2050, 2055, 2060, 2010, 1980, 1830, 1780,
548 1735, 1710, 1700, 1700, 1700};
550 485, 960, 1580, 2700, 3550, 4050, 4320, 4420, 4620, 4660,
551 4580, 4470, 4350, 4295, 4187, 3938, 3755, 3573, 3450, 3342,
552 3310, 3295, 3310, 3330, 3375, 3405, 3350, 3338, 3135, 3040,
553 2985, 2955, 2940, 2940, 2940};
554 static const G4double u_p_in[35] = {
555 334, 720, 1020, 1560, 2100, 2300, 2550, 2700, 2880, 2880,
556 2760, 2660, 2550, 2510, 2430, 2270, 2130, 2060, 2000, 1970,
557 1950, 1950, 1960, 1960, 1970, 1980, 1950, 1978, 1830, 1780,
558 1735, 1710, 1700, 1700, 1700};
560 AddDataSet(
"pi-",he_t, he_in, e1, 38);
561 AddDataSet(
"pi+",he_t, he_in, e1, 38);
562 AddDataSet(
"pi-",be_m_t, be_m_in, e1, 38);
563 AddDataSet(
"pi+",be_p_t, be_p_in, e1, 38);
564 AddDataSet(
"pi-",c_m_t, c_m_in, e2, 39);
565 AddDataSet(
"pi+",c_p_t, c_p_in, e2, 39);
566 AddDataSet(
"pi-",n_m_t, n_m_in, e2, 39);
567 AddDataSet(
"pi+",n_p_t, n_p_in, e2, 39);
568 AddDataSet(
"pi-",o_m_t, o_m_in, e3, 31);
569 AddDataSet(
"pi+",o_p_t, o_p_in, e3, 31);
570 AddDataSet(
"pi-",na_m_t, na_m_in, e3, 31);
571 AddDataSet(
"pi+",na_p_t, na_p_in, e3, 31);
572 AddDataSet(
"pi-",al_m_t, al_m_in, e3, 31);
573 AddDataSet(
"pi+",al_p_t, al_p_in, e3, 31);
574 AddDataSet(
"pi-",ca_m_t, ca_m_in, e3, 31);
575 AddDataSet(
"pi+",ca_p_t, ca_p_in, e3, 31);
576 AddDataSet(
"pi-",fe_m_t, fe_m_in, e4, 32);
577 AddDataSet(
"pi+",fe_p_t, fe_p_in, e4, 32);
578 AddDataSet(
"pi-",cu_m_t, cu_m_in, e4, 32);
579 AddDataSet(
"pi+",cu_p_t, cu_p_in, e4, 32);
580 AddDataSet(
"pi-",mo_m_t, mo_m_in, e5, 34);
581 AddDataSet(
"pi+",mo_p_t, mo_p_in, e5, 34);
582 AddDataSet(
"pi-",cd_m_t, cd_m_in, e5, 34);
583 AddDataSet(
"pi+",cd_p_t, cd_p_in, e5, 34);
584 AddDataSet(
"pi-",sn_m_t, sn_m_in, e6, 35);
585 AddDataSet(
"pi+",sn_p_t, sn_p_in, e6, 35);
586 AddDataSet(
"pi-",w_m_t, w_m_in, e6, 35);
587 AddDataSet(
"pi+",w_p_t, w_p_in, e6, 35);
588 AddDataSet(
"pi-",pb_m_t, pb_m_in, e6, 35);
589 AddDataSet(
"pi+",pb_p_t, pb_p_in, e6, 35);
590 AddDataSet(
"pi-",u_m_t, u_m_in, e6, 35);
591 AddDataSet(
"pi+",u_p_t, u_p_in, e6, 35);
596 outFile <<
"G4UPiNuclearCrossSection calculates the total, elastic and\n"
597 <<
"inelastic cross sections for pion scattering from nuclei\n"
598 <<
"heavier than hydrogen. It is based on the Barashenkov\n"
599 <<
"parameterization and is valid for all incident energies.\n";
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
#define G4MUTEX_INITIALIZER
#define G4MUTEXLOCK(mutex)
#define G4MUTEXUNLOCK(mutex)
G4GLOB_DLL std::ostream G4cout
static G4NistManager * Instance()
G4double GetAtomicMassAmu(const G4String &symb) const
const G4String & GetParticleName() const
void PutValues(const std::size_t index, const G4double energy, const G4double value)
void push_back(G4PhysicsVector *)
void FillSecondDerivatives(const G4SplineType=G4SplineType::Base, const G4double dir1=0.0, const G4double dir2=0.0)
static G4PionMinus * PionMinus()
static G4PionPlus * PionPlus()
static G4Pow * GetInstance()
G4double powA(G4double A, G4double y) const
~G4UPiNuclearCrossSection() override
G4UPiNuclearCrossSection()
G4bool IsElementApplicable(const G4DynamicParticle *aParticle, G4int Z, const G4Material *) final
void BuildPhysicsTable(const G4ParticleDefinition &) final
void CrossSectionDescription(std::ostream &) const final
void DumpPhysicsTable(const G4ParticleDefinition &) final