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