278{
279
282
283
285 theHandler->SetMinEForMultiFrag(3*MeV);
286
287
289
290
293 theCascade->SetDeExcitation(thePreEquilib);
294
295
297 bertini->SetMaxEnergy(22*MeV);
298
299
302 theTheoModel->SetTransport(theCascade);
303 theTheoModel->SetHighEnergyGenerator(theStringModel);
304 theTheoModel->SetMinEnergy(19*GeV);
305 theTheoModel->SetMaxEnergy( G4HadronicParameters::Instance()->GetMaxEnergy() );
306
310 theStringModel->SetFragmentationModel(theStringDecay);
311
312
317 antiBStringModel->SetFragmentationModel(stringDecay);
318
323 antiBCascade->SetDeExcitation(preEquilib);
324
325 antiBHighEnergyModel->SetTransport(antiBCascade);
326 antiBHighEnergyModel->SetHighEnergyGenerator(antiBStringModel);
327 antiBHighEnergyModel->SetMinEnergy(0.0);
328 antiBHighEnergyModel->SetMaxEnergy(20*TeV);
329
330
332 binaryCascade->SetMinEnergy(0.0);
333 binaryCascade->SetMaxEnergy(110*MeV);
334
336 qmd->SetMinEnergy(100*MeV);
337 qmd->SetMaxEnergy(10*GeV);
338
340
344
345
347 theElasticProcess->AddDataSet(theGGHNEl);
349 theElasticProcess->RegisterMe(theElasticModel);
350
351 auto particleIterator=GetParticleIterator();
352 particleIterator->reset();
353 while ((*particleIterator)()) {
356 G4String particleName = particle->GetParticleName();
357
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);
382 }
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);
391 }
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);
400 }
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);
409 }
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);
418 }
419 else if (particleName == "anti_proton") {
420 pmanager->AddDiscreteProcess(theElasticProcess);
423 theInelasticProcess->AddDataSet(theGGHNInel);
424 theInelasticProcess->RegisterMe(antiBHighEnergyModel);
425 pmanager->AddDiscreteProcess(theInelasticProcess);
426
427 } else if (particleName == "neutron") {
428
429 pmanager->AddDiscreteProcess(theElasticProcess);
430
431
435 theInelasticProcess->RegisterMe(bertini);
436 theInelasticProcess->RegisterMe(theTheoModel);
437 pmanager->AddDiscreteProcess(theInelasticProcess);
438
439
442 theFissionProcess->RegisterMe(theFissionModel);
443 pmanager->AddDiscreteProcess(theFissionProcess);
444
445
448 theCaptureProcess->RegisterMe(theCaptureModel);
449 pmanager->AddDiscreteProcess(theCaptureProcess);
450
451 } else if (particleName == "anti_neutron") {
452 pmanager->AddDiscreteProcess(theElasticProcess);
455 theInelasticProcess->AddDataSet(theGGHNInel);
456 theInelasticProcess->RegisterMe(antiBHighEnergyModel);
457 pmanager->AddDiscreteProcess(theInelasticProcess);
458
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);
467 }
468 else if (particleName == "anti_lambda") {
469 pmanager->AddDiscreteProcess(theElasticProcess);
472 theInelasticProcess->AddDataSet(theGGHNInel);
473 theInelasticProcess->RegisterMe(antiBHighEnergyModel);
474 pmanager->AddDiscreteProcess(theInelasticProcess);
475 }
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);
484 }
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);
493 }
494 else if (particleName == "anti_sigma+") {
495 pmanager->AddDiscreteProcess(theElasticProcess);
498 theInelasticProcess->AddDataSet(theGGHNInel);
499 theInelasticProcess->RegisterMe(antiBHighEnergyModel);
500 pmanager->AddDiscreteProcess(theInelasticProcess);
501 }
502 else if (particleName == "anti_sigma-") {
503 pmanager->AddDiscreteProcess(theElasticProcess);
506 theInelasticProcess->AddDataSet(theGGHNInel);
507 theInelasticProcess->RegisterMe(antiBHighEnergyModel);
508 pmanager->AddDiscreteProcess(theInelasticProcess);
509 }
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);
518 }
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);
527 }
528 else if (particleName == "anti_xi0") {
529 pmanager->AddDiscreteProcess(theElasticProcess);
532 theInelasticProcess->AddDataSet(theGGHNInel);
533 theInelasticProcess->RegisterMe(antiBHighEnergyModel);
534 pmanager->AddDiscreteProcess(theInelasticProcess);
535 }
536 else if (particleName == "anti_xi-") {
537 pmanager->AddDiscreteProcess(theElasticProcess);
540 theInelasticProcess->AddDataSet(theGGHNInel);
541 theInelasticProcess->RegisterMe(antiBHighEnergyModel);
542 pmanager->AddDiscreteProcess(theInelasticProcess);
543 }
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);
552 }
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);
561 }
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);
570
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);
579
580 } else if (particleName == "anti_omega-") {
581 pmanager->AddDiscreteProcess(theElasticProcess);
584 theInelasticProcess->AddDataSet(theGGHNInel);
585 theInelasticProcess->RegisterMe(antiBHighEnergyModel);
586 pmanager->AddDiscreteProcess(theInelasticProcess);
587 }
588 }
589}