580{
581
585
586 const G4double elastic_elimitAntiNuc = 100.0*CLHEP::MeV;
592
593
594 const G4double theFTFMin0 = 0.0*CLHEP::GeV;
595 const G4double theFTFMin1 = 4.0*CLHEP::GeV;
597 const G4double theBERTMin0 = 0.0*CLHEP::GeV;
598 const G4double theBERTMin1 = 19.0*CLHEP::MeV;
599 const G4double theBERTMax = 5.0*CLHEP::GeV;
600 const G4double theHPMin = 0.0*CLHEP::GeV;
601 const G4double theHPMax = 20.0*CLHEP::MeV;
602 const G4double theIonBCMin = 0.0*CLHEP::GeV;
603 const G4double theIonBCMax = 5.0*CLHEP::GeV;
604
605
611
617
623
627
631
632
636
640
642 myParticleIterator->
reset();
643 while ((*(myParticleIterator))())
644 {
648
649 if (particleName == "pi+")
650 {
651
656
659 theInelasticProcess->
RegisterMe( theFTFModel1 );
660 theInelasticProcess->
RegisterMe( theBERTModel0 );
662 }
663
664 else if (particleName == "pi-")
665 {
666
671
674 theInelasticProcess->
RegisterMe( theFTFModel1 );
675 theInelasticProcess->
RegisterMe( theBERTModel0 );
677 }
678
679 else if (particleName == "kaon+")
680 {
681
683 theElasticProcess->
RegisterMe( elastic_lhep0 );
686
688
690 theInelasticProcess->
RegisterMe( theFTFModel1 );
691 theInelasticProcess->
RegisterMe( theBERTModel0 );
693 }
694
695 else if (particleName == "kaon0S")
696 {
697
699 theElasticProcess->
RegisterMe( elastic_lhep0 );
702
705 theInelasticProcess->
RegisterMe( theFTFModel1 );
706 theInelasticProcess->
RegisterMe( theBERTModel0 );
708 }
709
710 else if (particleName == "kaon0L")
711 {
712
714 theElasticProcess->
RegisterMe( elastic_lhep0 );
717
718
721 theInelasticProcess->
RegisterMe( theFTFModel1 );
722 theInelasticProcess->
RegisterMe( theBERTModel0 );
724 }
725
726 else if (particleName == "kaon-")
727 {
728
730 theElasticProcess->
RegisterMe( elastic_lhep0 );
733
736 theInelasticProcess->
RegisterMe( theFTFModel1 );
737 theInelasticProcess->
RegisterMe( theBERTModel0 );
739 }
740
741 else if (particleName == "proton")
742 {
743
747 theElasticProcess->
RegisterMe( elastic_chip );
749
752 theInelasticProcess->
RegisterMe( theFTFModel1 );
753 theInelasticProcess->
RegisterMe( theBERTModel0 );
755 }
756
757 else if (particleName == "anti_proton")
758 {
759
761 theElasticProcess->
AddDataSet( elastic_anucxs );
762 theElasticProcess->
RegisterMe( elastic_lhep2 );
763 theElasticProcess->
RegisterMe( elastic_anuc );
765
767 theInelasticProcess->
AddDataSet( theAntiNucleonData );
768 theInelasticProcess->
RegisterMe( theFTFModel0 );
770 }
771
772 else if (particleName == "neutron") {
773
777 elastic_neutronChipsModel->
SetMinEnergy( 19.0*CLHEP::MeV );
778 theElasticProcess->
RegisterMe( elastic_neutronChipsModel );
782 theElasticProcess->
RegisterMe( theElasticNeutronHP );
785
788 theInelasticProcess->
RegisterMe( theFTFModel1 );
789 theInelasticProcess->
RegisterMe( theBERTModel1 );
793 theInelasticProcess->
RegisterMe( theNeutronInelasticHPModel );
796
803 theCaptureProcess->
RegisterMe( theNeutronCaptureHPModel );
804 theCaptureProcess->
RegisterMe( theNeutronRadCapture);
808 }
809 else if (particleName == "anti_neutron")
810 {
811
813 theElasticProcess->
AddDataSet( elastic_anucxs );
814 theElasticProcess->
RegisterMe( elastic_lhep2 );
815 theElasticProcess->
RegisterMe( elastic_anuc );
817
819 theInelasticProcess->
AddDataSet( theAntiNucleonData );
820 theInelasticProcess->
RegisterMe( theFTFModel0 );
822 }
823
824 else if (particleName == "deuteron")
825 {
826
828 theElasticProcess->
RegisterMe( elastic_lhep0 );
829 theElasticProcess->
AddDataSet( theGGNuclNuclData );
831
833 theInelasticProcess->
AddDataSet( theGGNuclNuclData );
834 theInelasticProcess->
RegisterMe( theFTFModel1 );
837 }
838
839 else if (particleName == "triton")
840 {
841
843 theElasticProcess->
RegisterMe( elastic_lhep0 );
844 theElasticProcess->
AddDataSet( theGGNuclNuclData );
846
848 theInelasticProcess->
AddDataSet( theGGNuclNuclData );
849 theInelasticProcess->
RegisterMe( theFTFModel1 );
852 }
853
854 else if (particleName == "alpha")
855 {
856
858 theElasticProcess->
RegisterMe( elastic_lhep0 );
859 theElasticProcess->
AddDataSet( theGGNuclNuclData );
861
863 theInelasticProcess->
AddDataSet( theGGNuclNuclData );
864 theInelasticProcess->
RegisterMe( theFTFModel1 );
867 }
868 }
869
870
872}
static G4Alpha * Definition()
static G4AntiNeutron * Definition()
G4ComponentAntiNuclNuclearXS * GetComponentCrossSection()
static G4AntiProton * Definition()
static const char * Default_Name()
static const char * Default_Name()
static const char * Default_Name()
static const char * Default_Name()
static const char * Default_Name()
static const char * Default_Name()
static const char * Default_Name()
static const char * Default_Name()
static G4CrossSectionDataSetRegistry * Instance()
static G4Deuteron * Definition()
void SetMinEnergy(G4double anEnergy)
void SetMaxEnergy(const G4double anEnergy)
static G4HadronicParameters * Instance()
G4double GetMaxEnergy() const
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
void RegisterMe(G4HadronicInteraction *a)
static G4KaonMinus * Definition()
static G4KaonPlus * Definition()
static G4KaonZeroLong * Definition()
static G4KaonZeroShort * Definition()
static const char * Default_Name()
static G4Neutron * Neutron()
static G4Neutron * Definition()
static G4PionMinus * Definition()
static G4PionPlus * Definition()
static G4Proton * Definition()
static G4Proton * Proton()
virtual void ConstructProcess() override
void SetTransport(G4VIntraNuclearTransportModel *const value)
void SetHighEnergyGenerator(G4VHighEnergyGenerator *const value)
static G4Triton * Definition()
void SetFragmentationModel(G4VStringFragmentation *aModel)