285 theHandler->SetMinEForMultiFrag(3*MeV);
293 theCascade->SetDeExcitation(thePreEquilib);
297 bertini->SetMaxEnergy(22*MeV);
302 theTheoModel->SetTransport(theCascade);
303 theTheoModel->SetHighEnergyGenerator(theStringModel);
304 theTheoModel->SetMinEnergy(19*GeV);
305 theTheoModel->SetMaxEnergy( G4HadronicParameters::Instance()->GetMaxEnergy() );
310 theStringModel->SetFragmentationModel(theStringDecay);
317 antiBStringModel->SetFragmentationModel(stringDecay);
323 antiBCascade->SetDeExcitation(preEquilib);
325 antiBHighEnergyModel->SetTransport(antiBCascade);
326 antiBHighEnergyModel->SetHighEnergyGenerator(antiBStringModel);
327 antiBHighEnergyModel->SetMinEnergy(0.0);
328 antiBHighEnergyModel->SetMaxEnergy(20*TeV);
332 binaryCascade->SetMinEnergy(0.0);
333 binaryCascade->SetMaxEnergy(110*MeV);
336 qmd->SetMinEnergy(100*MeV);
337 qmd->SetMaxEnergy(10*GeV);
347 theElasticProcess->AddDataSet(theGGHNEl);
349 theElasticProcess->RegisterMe(theElasticModel);
351 auto particleIterator=GetParticleIterator();
352 particleIterator->reset();
353 while ((*particleIterator)()) {
356 G4String particleName = particle->GetParticleName();
358 if (particleName ==
"pi+") {
359 pmanager->AddDiscreteProcess(theElasticProcess);
362 theInelasticProcess->AddDataSet(theGGHNInel);
363 theInelasticProcess->RegisterMe(bertini);
364 theInelasticProcess->RegisterMe(theTheoModel);
365 pmanager->AddDiscreteProcess(theInelasticProcess);
366 }
else if (particleName ==
"pi-") {
367 pmanager->AddDiscreteProcess(theElasticProcess);
370 theInelasticProcess->AddDataSet(theGGHNInel);
371 theInelasticProcess->RegisterMe(bertini);
372 theInelasticProcess->RegisterMe(theTheoModel);
373 pmanager->AddDiscreteProcess(theInelasticProcess);
374 }
else if (particleName ==
"kaon+") {
375 pmanager->AddDiscreteProcess(theElasticProcess);
378 theInelasticProcess->AddDataSet(theGGHNInel);
379 theInelasticProcess->RegisterMe(bertini);
380 theInelasticProcess->RegisterMe(theTheoModel);
381 pmanager->AddDiscreteProcess(theInelasticProcess);
383 else if (particleName ==
"kaon0S") {
384 pmanager->AddDiscreteProcess(theElasticProcess);
387 theInelasticProcess->AddDataSet(theGGHNInel);
388 theInelasticProcess->RegisterMe(bertini);
389 theInelasticProcess->RegisterMe(theTheoModel);
390 pmanager->AddDiscreteProcess(theInelasticProcess);
392 else if (particleName ==
"kaon0L") {
393 pmanager->AddDiscreteProcess(theElasticProcess);
396 theInelasticProcess->AddDataSet(theGGHNInel);
397 theInelasticProcess->RegisterMe(bertini);
398 theInelasticProcess->RegisterMe(theTheoModel);
399 pmanager->AddDiscreteProcess(theInelasticProcess);
401 else if (particleName ==
"kaon-") {
402 pmanager->AddDiscreteProcess(theElasticProcess);
405 theInelasticProcess->AddDataSet(theGGHNInel);
406 theInelasticProcess->RegisterMe(bertini);
407 theInelasticProcess->RegisterMe(theTheoModel);
408 pmanager->AddDiscreteProcess(theInelasticProcess);
410 else if (particleName ==
"proton") {
411 pmanager->AddDiscreteProcess(theElasticProcess);
414 theInelasticProcess->AddDataSet(theGGHNInel);
415 theInelasticProcess->RegisterMe(bertini);
416 theInelasticProcess->RegisterMe(theTheoModel);
417 pmanager->AddDiscreteProcess(theInelasticProcess);
419 else if (particleName ==
"anti_proton") {
420 pmanager->AddDiscreteProcess(theElasticProcess);
423 theInelasticProcess->AddDataSet(theGGHNInel);
424 theInelasticProcess->RegisterMe(antiBHighEnergyModel);
425 pmanager->AddDiscreteProcess(theInelasticProcess);
427 }
else if (particleName ==
"neutron") {
429 pmanager->AddDiscreteProcess(theElasticProcess);
435 theInelasticProcess->RegisterMe(bertini);
436 theInelasticProcess->RegisterMe(theTheoModel);
437 pmanager->AddDiscreteProcess(theInelasticProcess);
442 theFissionProcess->RegisterMe(theFissionModel);
443 pmanager->AddDiscreteProcess(theFissionProcess);
448 theCaptureProcess->RegisterMe(theCaptureModel);
449 pmanager->AddDiscreteProcess(theCaptureProcess);
451 }
else if (particleName ==
"anti_neutron") {
452 pmanager->AddDiscreteProcess(theElasticProcess);
455 theInelasticProcess->AddDataSet(theGGHNInel);
456 theInelasticProcess->RegisterMe(antiBHighEnergyModel);
457 pmanager->AddDiscreteProcess(theInelasticProcess);
459 }
else if (particleName ==
"lambda") {
460 pmanager->AddDiscreteProcess(theElasticProcess);
463 theInelasticProcess->AddDataSet(theGGHNInel);
464 theInelasticProcess->RegisterMe(bertini);
465 theInelasticProcess->RegisterMe(theTheoModel);
466 pmanager->AddDiscreteProcess(theInelasticProcess);
468 else if (particleName ==
"anti_lambda") {
469 pmanager->AddDiscreteProcess(theElasticProcess);
472 theInelasticProcess->AddDataSet(theGGHNInel);
473 theInelasticProcess->RegisterMe(antiBHighEnergyModel);
474 pmanager->AddDiscreteProcess(theInelasticProcess);
476 else if (particleName ==
"sigma+") {
477 pmanager->AddDiscreteProcess(theElasticProcess);
480 theInelasticProcess->AddDataSet(theGGHNInel);
481 theInelasticProcess->RegisterMe(bertini);
482 theInelasticProcess->RegisterMe(theTheoModel);
483 pmanager->AddDiscreteProcess(theInelasticProcess);
485 else if (particleName ==
"sigma-") {
486 pmanager->AddDiscreteProcess(theElasticProcess);
489 theInelasticProcess->AddDataSet(theGGHNInel);
490 theInelasticProcess->RegisterMe(bertini);
491 theInelasticProcess->RegisterMe(theTheoModel);
492 pmanager->AddDiscreteProcess(theInelasticProcess);
494 else if (particleName ==
"anti_sigma+") {
495 pmanager->AddDiscreteProcess(theElasticProcess);
498 theInelasticProcess->AddDataSet(theGGHNInel);
499 theInelasticProcess->RegisterMe(antiBHighEnergyModel);
500 pmanager->AddDiscreteProcess(theInelasticProcess);
502 else if (particleName ==
"anti_sigma-") {
503 pmanager->AddDiscreteProcess(theElasticProcess);
506 theInelasticProcess->AddDataSet(theGGHNInel);
507 theInelasticProcess->RegisterMe(antiBHighEnergyModel);
508 pmanager->AddDiscreteProcess(theInelasticProcess);
510 else if (particleName ==
"xi0") {
511 pmanager->AddDiscreteProcess(theElasticProcess);
514 theInelasticProcess->AddDataSet(theGGHNInel);
515 theInelasticProcess->RegisterMe(bertini);
516 theInelasticProcess->RegisterMe(theTheoModel);
517 pmanager->AddDiscreteProcess(theInelasticProcess);
519 else if (particleName ==
"xi-") {
520 pmanager->AddDiscreteProcess(theElasticProcess);
523 theInelasticProcess->AddDataSet(theGGHNInel);
524 theInelasticProcess->RegisterMe(bertini);
525 theInelasticProcess->RegisterMe(theTheoModel);
526 pmanager->AddDiscreteProcess(theInelasticProcess);
528 else if (particleName ==
"anti_xi0") {
529 pmanager->AddDiscreteProcess(theElasticProcess);
532 theInelasticProcess->AddDataSet(theGGHNInel);
533 theInelasticProcess->RegisterMe(antiBHighEnergyModel);
534 pmanager->AddDiscreteProcess(theInelasticProcess);
536 else if (particleName ==
"anti_xi-") {
537 pmanager->AddDiscreteProcess(theElasticProcess);
540 theInelasticProcess->AddDataSet(theGGHNInel);
541 theInelasticProcess->RegisterMe(antiBHighEnergyModel);
542 pmanager->AddDiscreteProcess(theInelasticProcess);
544 else if (particleName ==
"deuteron") {
545 pmanager->AddDiscreteProcess(theElasticProcess);
548 theInelasticProcess->RegisterMe(binaryCascade);
549 theInelasticProcess->RegisterMe(qmd);
550 theInelasticProcess->AddDataSet(ionXS);
551 pmanager->AddDiscreteProcess(theInelasticProcess);
553 else if (particleName ==
"triton") {
554 pmanager->AddDiscreteProcess(theElasticProcess);
557 theInelasticProcess->RegisterMe(binaryCascade);
558 theInelasticProcess->RegisterMe(qmd);
559 theInelasticProcess->AddDataSet(ionXS);
560 pmanager->AddDiscreteProcess(theInelasticProcess);
562 else if (particleName ==
"alpha") {
563 pmanager->AddDiscreteProcess(theElasticProcess);
566 theInelasticProcess->RegisterMe(binaryCascade);
567 theInelasticProcess->RegisterMe(qmd);
568 theInelasticProcess->AddDataSet(ionXS);
569 pmanager->AddDiscreteProcess(theInelasticProcess);
571 }
else if (particleName ==
"omega-") {
572 pmanager->AddDiscreteProcess(theElasticProcess);
575 theInelasticProcess->AddDataSet(theGGHNInel);
576 theInelasticProcess->RegisterMe(bertini);
577 theInelasticProcess->RegisterMe(theTheoModel);
578 pmanager->AddDiscreteProcess(theInelasticProcess);
580 }
else if (particleName ==
"anti_omega-") {
581 pmanager->AddDiscreteProcess(theElasticProcess);
584 theInelasticProcess->AddDataSet(theGGHNInel);
585 theInelasticProcess->RegisterMe(antiBHighEnergyModel);
586 pmanager->AddDiscreteProcess(theInelasticProcess);