598{
599
603
604 const G4double elastic_elimitAntiNuc = 100.0*CLHEP::MeV;
610
611
612 const G4double theFTFMin0 = 0.0*CLHEP::GeV;
613 const G4double theFTFMin1 = 4.0*CLHEP::GeV;
615 const G4double theBERTMin0 = 0.0*CLHEP::GeV;
616 const G4double theBERTMin1 = 19.0*CLHEP::MeV;
617 const G4double theBERTMax = 5.0*CLHEP::GeV;
618 const G4double theHPMin = 0.0*CLHEP::GeV;
619 const G4double theHPMax = 20.0*CLHEP::MeV;
620 const G4double theIonBCMin = 0.0*CLHEP::GeV;
621 const G4double theIonBCMax = 5.0*CLHEP::GeV;
622
623
629
635
641
645
649
650
654
658
660 myParticleIterator->
reset();
661 while ((*(myParticleIterator))())
662 {
666
667 if (particleName == "pi+")
668 {
669
674
677 theInelasticProcess->
RegisterMe( theFTFModel1 );
678 theInelasticProcess->
RegisterMe( theBERTModel0 );
680 }
681
682 else if (particleName == "pi-")
683 {
684
689
692 theInelasticProcess->
RegisterMe( theFTFModel1 );
693 theInelasticProcess->
RegisterMe( theBERTModel0 );
695 }
696
697 else if (particleName == "kaon+")
698 {
699
701 theElasticProcess->
RegisterMe( elastic_lhep0 );
704
707 theInelasticProcess->
RegisterMe( theFTFModel1 );
708 theInelasticProcess->
RegisterMe( theBERTModel0 );
710 }
711
712 else if (particleName == "kaon0S")
713 {
714
716 theElasticProcess->
RegisterMe( elastic_lhep0 );
719
722 theInelasticProcess->
RegisterMe( theFTFModel1 );
723 theInelasticProcess->
RegisterMe( theBERTModel0 );
725 }
726
727 else if (particleName == "kaon0L")
728 {
729
731 theElasticProcess->
RegisterMe( elastic_lhep0 );
734
737 theInelasticProcess->
RegisterMe( theFTFModel1 );
738 theInelasticProcess->
RegisterMe( theBERTModel0 );
740 }
741
742 else if (particleName == "kaon-")
743 {
744
746 theElasticProcess->
RegisterMe( elastic_lhep0 );
749
752 theInelasticProcess->
RegisterMe( theFTFModel1 );
753 theInelasticProcess->
RegisterMe( theBERTModel0 );
755 }
756
757 else if (particleName == "proton")
758 {
759
763 theElasticProcess->
RegisterMe( elastic_chip );
765
768 theInelasticProcess->
RegisterMe( theFTFModel1 );
769 theInelasticProcess->
RegisterMe( theBERTModel0 );
771 }
772
773 else if (particleName == "anti_proton")
774 {
775
777 theElasticProcess->
AddDataSet( elastic_anucxs );
778 theElasticProcess->
RegisterMe( elastic_lhep2 );
779 theElasticProcess->
RegisterMe( elastic_anuc );
781
783 theInelasticProcess->
AddDataSet( theAntiNucleonData );
784 theInelasticProcess->
RegisterMe( theFTFModel0 );
786 }
787
788 else if (particleName == "neutron") {
789
793 elastic_neutronChipsModel->
SetMinEnergy( 19.0*CLHEP::MeV );
794 theElasticProcess->
RegisterMe( elastic_neutronChipsModel );
798 theElasticProcess->
RegisterMe( theElasticNeutronHP );
801
804 theInelasticProcess->
RegisterMe( theFTFModel1 );
805 theInelasticProcess->
RegisterMe( theBERTModel1 );
809 theInelasticProcess->
RegisterMe( theNeutronInelasticHPModel );
812
819 theCaptureProcess->
RegisterMe( theNeutronCaptureHPModel );
820 theCaptureProcess->
RegisterMe( theNeutronRadCapture);
824 }
825 else if (particleName == "anti_neutron")
826 {
827
829 theElasticProcess->
AddDataSet( elastic_anucxs );
830 theElasticProcess->
RegisterMe( elastic_lhep2 );
831 theElasticProcess->
RegisterMe( elastic_anuc );
833
835 theInelasticProcess->
AddDataSet( theAntiNucleonData );
836 theInelasticProcess->
RegisterMe( theFTFModel0 );
838 }
839
840 else if (particleName == "deuteron")
841 {
842
844 theElasticProcess->
RegisterMe( elastic_lhep0 );
845 theElasticProcess->
AddDataSet( theGGNuclNuclData );
847
849 theInelasticProcess->
AddDataSet( theGGNuclNuclData );
850 theInelasticProcess->
RegisterMe( theFTFModel1 );
853 }
854
855 else if (particleName == "triton")
856 {
857
859 theElasticProcess->
RegisterMe( elastic_lhep0 );
860 theElasticProcess->
AddDataSet( theGGNuclNuclData );
862
864 theInelasticProcess->
AddDataSet( theGGNuclNuclData );
865 theInelasticProcess->
RegisterMe( theFTFModel1 );
868 }
869
870 else if (particleName == "alpha")
871 {
872
874 theElasticProcess->
RegisterMe( elastic_lhep0 );
875 theElasticProcess->
AddDataSet( theGGNuclNuclData );
877
879 theInelasticProcess->
AddDataSet( theGGNuclNuclData );
880 theInelasticProcess->
RegisterMe( theFTFModel1 );
883 }
884 }
885
886
888}
G4ComponentAntiNuclNuclearXS * GetComponentCrossSection()
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()
void SetMinEnergy(G4double anEnergy)
void SetMaxEnergy(const G4double anEnergy)
static G4HadronicParameters * Instance()
G4double GetMaxEnergy() const
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
void RegisterMe(G4HadronicInteraction *a)
static const char * Default_Name()
static G4Neutron * Neutron()
static G4PionMinus * Definition()
static G4PionPlus * Definition()
static G4Proton * Proton()
virtual void ConstructProcess() override
void SetTransport(G4VIntraNuclearTransportModel *const value)
void SetHighEnergyGenerator(G4VHighEnergyGenerator *const value)
void SetFragmentationModel(G4VStringFragmentation *aModel)