25#include "BgsPhysicsList.hh"
32#include "BgsGenocide.hh"
33#include "BgsGentleGenocide.hh"
38#include "G4ParticleDefinition.hh"
39#include "G4ParticleWithCuts.hh"
40#include "G4ProcessManager.hh"
41#include "G4ProcessVector.hh"
42#include "G4ParticleTypes.hh"
43#include "G4ParticleTable.hh"
44#include "G4FastSimulationManagerProcess.hh"
45#include "G4ComptonScattering.hh"
46#include "G4GammaConversion.hh"
47#include "G4PhotoElectricEffect.hh"
48#include "G4VMultipleScattering.hh"
49#include "G4MultipleScattering.hh"
50#include "G4eIonisation.hh"
51#include "G4eBremsstrahlung.hh"
52#include "G4eplusAnnihilation.hh"
53#include "G4MuIonisation.hh"
54#include "G4MuBremsstrahlung.hh"
55#include "G4MuPairProduction.hh"
56#include "G4hIonisation.hh"
58#include "G4Material.hh"
59#include "G4ProductionCuts.hh"
60#include "G4ProductionCutsTable.hh"
61#include "G4MaterialCutsCouple.hh"
65#include "G4GammaNuclearReaction.hh"
66#include "G4ElectroNuclearReaction.hh"
67#include "G4TheoFSGenerator.hh"
68#include "G4GeneratorPrecompoundInterface.hh"
69#include "G4QGSModel.hh"
70#include "G4GammaParticipants.hh"
71#include "G4QGSMFragmentation.hh"
72#include "G4ExcitedStringDecay.hh"
73#include "G4PhotoNuclearProcess.hh"
74#include "G4ElectronNuclearProcess.hh"
75#include "G4PositronNuclearProcess.hh"
79#include "G4HadronElasticProcess.hh"
80#include "G4HadronCaptureProcess.hh"
81#include "G4HadronFissionProcess.hh"
82#include "G4PionPlusInelasticProcess.hh"
83#include "G4PionMinusInelasticProcess.hh"
84#include "G4KaonPlusInelasticProcess.hh"
85#include "G4KaonMinusInelasticProcess.hh"
86#include "G4KaonZeroLInelasticProcess.hh"
87#include "G4KaonZeroSInelasticProcess.hh"
88#include "G4ProtonInelasticProcess.hh"
89#include "G4AntiProtonInelasticProcess.hh"
90#include "G4NeutronInelasticProcess.hh"
91#include "G4AntiNeutronInelasticProcess.hh"
92#include "G4LambdaInelasticProcess.hh"
93#include "G4AntiLambdaInelasticProcess.hh"
94#include "G4DeuteronInelasticProcess.hh"
95#include "G4TritonInelasticProcess.hh"
96#include "G4AlphaInelasticProcess.hh"
97#include "G4ShortLivedConstructor.hh"
102#include "G4LElastic.hh"
103#include "G4LEAntiProtonInelastic.hh"
104#include "G4LEAntiNeutronInelastic.hh"
105#include "G4LEAntiLambdaInelastic.hh"
106#include "G4LEDeuteronInelastic.hh"
107#include "G4LETritonInelastic.hh"
108#include "G4LEAlphaInelastic.hh"
110#include "G4NeutronHPElastic.hh"
111#include "G4NeutronHPElasticData.hh"
112#include "G4NeutronHPInelastic.hh"
113#include "G4NeutronHPInelasticData.hh"
114#include "G4NeutronHPFission.hh"
115#include "G4NeutronHPFissionData.hh"
116#include "G4NeutronHPCapture.hh"
117#include "G4NeutronHPCaptureData.hh"
118#include "G4LFission.hh"
119#include "G4LCapture.hh"
121#include "G4CascadeInterface.hh"
122#include "CLHEP/Random/RanecuEngine.h"
126#include "G4PiNuclearCrossSection.hh"
139 bertini_model =
new G4CascadeInterface;
192 G4ShortLivedConstructor shortLived;
193 shortLived.ConstructParticle();
200 G4Geantino::GeantinoDefinition();
201 G4ChargedGeantino::ChargedGeantinoDefinition();
204 G4Gamma::GammaDefinition();
207 G4OpticalPhoton::OpticalPhotonDefinition();
214 G4Electron::ElectronDefinition();
215 G4Positron::PositronDefinition();
216 G4MuonPlus::MuonPlusDefinition();
217 G4MuonMinus::MuonMinusDefinition();
218 G4TauPlus::TauPlusDefinition();
219 G4TauMinus::TauMinusDefinition();
221 G4NeutrinoE::NeutrinoEDefinition();
222 G4AntiNeutrinoE::AntiNeutrinoEDefinition();
223 G4NeutrinoMu::NeutrinoMuDefinition();
224 G4AntiNeutrinoMu::AntiNeutrinoMuDefinition();
225 G4NeutrinoTau::NeutrinoTauDefinition();
226 G4AntiNeutrinoTau::AntiNeutrinoTauDefinition();
233 G4PionPlus ::PionPlusDefinition();
234 G4PionMinus ::PionMinusDefinition();
235 G4PionZero ::PionZeroDefinition();
236 G4Eta ::EtaDefinition();
237 G4EtaPrime ::EtaPrimeDefinition();
239 G4KaonPlus ::KaonPlusDefinition();
240 G4KaonMinus ::KaonMinusDefinition();
241 G4KaonZero ::KaonZeroDefinition();
242 G4AntiKaonZero ::AntiKaonZeroDefinition();
243 G4KaonZeroLong ::KaonZeroLongDefinition();
244 G4KaonZeroShort::KaonZeroShortDefinition();
251 G4Proton ::ProtonDefinition();
252 G4AntiProton ::AntiProtonDefinition();
253 G4Neutron ::NeutronDefinition();
254 G4AntiNeutron ::AntiNeutronDefinition();
255 G4Lambda ::LambdaDefinition();
256 G4AntiLambda ::AntiLambdaDefinition();
257 G4SigmaPlus ::SigmaPlusDefinition();
258 G4SigmaZero ::SigmaZeroDefinition();
259 G4SigmaMinus ::SigmaMinusDefinition();
260 G4AntiSigmaPlus ::AntiSigmaPlusDefinition();
261 G4AntiSigmaZero ::AntiSigmaZeroDefinition();
262 G4AntiSigmaMinus::AntiSigmaMinusDefinition();
263 G4XiZero ::XiZeroDefinition();
264 G4XiMinus ::XiMinusDefinition();
265 G4AntiXiZero ::AntiXiZeroDefinition();
266 G4AntiXiMinus ::AntiXiMinusDefinition();
267 G4OmegaMinus ::OmegaMinusDefinition();
268 G4AntiOmegaMinus::AntiOmegaMinusDefinition();
269 G4Deuteron ::DeuteronDefinition();
270 G4Triton ::TritonDefinition();
271 G4He3 ::He3Definition();
272 G4Alpha ::AlphaDefinition();
278 G4GenericIon::GenericIonDefinition();
310 std::cout <<
"+^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^+ " <<
312 std::cout <<
"+v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v+ " <<
314 std::cout <<
" +--- ---+ " <<
316 std::cout <<
" +--- G4Transportation ---+ " <<
318 std::cout <<
" +--- USED !! ---+ " <<
320 std::cout <<
" +--- ---+ " <<
322 std::cout <<
"+^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^+ " <<
324 std::cout <<
"+v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v+ " <<
379 theParticleIterator->reset();
380 while( (*theParticleIterator)() ){
381 G4ParticleDefinition* particle = theParticleIterator->value();
382 G4ProcessManager* pmanager = particle->GetProcessManager();
383 G4String particleName = particle->GetParticleName();
385 if (particleName ==
"gamma") {
389 pmanager->AddDiscreteProcess(
new G4PhotoElectricEffect());
390 pmanager->AddDiscreteProcess(
new G4ComptonScattering());
391 pmanager->AddDiscreteProcess(
new G4GammaConversion());
393 }
else if (particleName ==
"e-") {
397 G4MultipleScattering* ms =
new G4MultipleScattering();
399 ms->SetRangeFactor(0.02);
403 G4eIonisation *ionizationProcess =
new G4eIonisation();
406 pmanager->AddProcess( ms, -1, 1,1);
407 pmanager->AddProcess( ionizationProcess, -1, 2,2);
408 pmanager->AddProcess(
new G4eBremsstrahlung(), -1,-1,3);
410 }
else if (particleName ==
"e+") {
415 G4MultipleScattering* ms =
new G4MultipleScattering();
417 ms->SetRangeFactor(0.02);
421 G4eIonisation *ionizationProcess =
new G4eIonisation();
424 pmanager->AddProcess( ms, -1, 1,1);
425 pmanager->AddProcess( ionizationProcess, -1, 2,2);
426 pmanager->AddProcess(
new G4eBremsstrahlung(), -1,-1,3);
427 pmanager->AddProcess(
new G4eplusAnnihilation(), 0,-1,4);
429 }
else if( particleName ==
"mu+" ||
430 particleName ==
"mu-" ) {
435 G4MultipleScattering* ms =
new G4MultipleScattering();
437 ms->SetRangeFactor(0.02);
441 G4MuIonisation *ionizationProcess =
new G4MuIonisation();
444 pmanager->AddProcess( ms, -1, 1,1);
445 pmanager->AddProcess( ionizationProcess, -1, 2,2);
446 pmanager->AddProcess(
new G4MuBremsstrahlung(), -1,-1,3);
447 pmanager->AddProcess(
new G4MuPairProduction(), -1,-1,4);
449 }
else if ((!particle->IsShortLived()) &&
450 (particle->GetPDGCharge() != 0.0) &&
451 (particle->GetParticleName() !=
"chargedgeantino")) {
454 if (particle->GetParticleName() ==
"GenericIon") {
456 std::cerr <<
"*********************************************************************" <<std::endl;
457 std::cerr <<
"*** Disabling G4MultipleScattering process for particle " <<particle->GetParticleName() << std::endl;
458 std::cerr <<
"*********************************************************************" <<std::endl;
461 G4MultipleScattering* ms =
new G4MultipleScattering();
463 ms->SetRangeFactor(0.02);
466 pmanager->AddProcess( ms, -1,AP,AP);
469 G4hIonisation *ionizationProcess =
new G4hIonisation();
472 pmanager->AddProcess( ionizationProcess, -1,AP,AP);
542 G4Decay* theDecayProcess =
new G4Decay();
543 theParticleIterator->reset();
544 while( (*theParticleIterator)() ){
545 G4ParticleDefinition* particle = theParticleIterator->value();
546 G4ProcessManager* pmanager = particle->GetProcessManager();
547 if (theDecayProcess->IsApplicable(*particle)) {
548 pmanager ->AddProcess( theDecayProcess );
550 pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep);
551 pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest);
618 G4GammaNuclearReaction* lowEGammaModel =
new G4GammaNuclearReaction();
619 lowEGammaModel->SetMaxEnergy(3.5*GeV);
620 G4PhotoNuclearProcess* thePhotoNuclearProcess =
new
621G4PhotoNuclearProcess();
622 thePhotoNuclearProcess->RegisterMe(lowEGammaModel);
637 G4TheoFSGenerator* highEGammaModel =
new G4TheoFSGenerator();
638 G4GeneratorPrecompoundInterface* preComModel =
639 new G4GeneratorPrecompoundInterface();
640 highEGammaModel->SetTransport(preComModel);
642 G4QGSModel<G4GammaParticipants>* theStringModel =
643 new G4QGSModel<G4GammaParticipants>;
644 G4QGSMFragmentation* fragModel =
new G4QGSMFragmentation();
645 G4ExcitedStringDecay* stringDecay =
646 new G4ExcitedStringDecay(fragModel);
647 theStringModel->SetFragmentationModel(stringDecay);
649 highEGammaModel->SetHighEnergyGenerator(theStringModel);
650 highEGammaModel->SetMinEnergy(3.*GeV);
651 highEGammaModel->SetMaxEnergy(20.*GeV);
653 thePhotoNuclearProcess->RegisterMe(highEGammaModel);
655 G4ProcessManager* gamMan = G4Gamma::Gamma()->GetProcessManager();
657 gamMan->AddDiscreteProcess(thePhotoNuclearProcess);
661 G4ElectroNuclearReaction* theElectronReaction =
662 new G4ElectroNuclearReaction();
663 G4ElectronNuclearProcess* theElectronNuclearProcess =
664 new G4ElectronNuclearProcess();
665 theElectronNuclearProcess->RegisterMe(theElectronReaction);
667 G4ProcessManager* electronMan =
668G4Electron::Electron()->GetProcessManager();
670 electronMan->AddProcess(theElectronNuclearProcess, -1, -1, 4);
689 G4PositronNuclearProcess* thePositronNuclearProcess =
690 new G4PositronNuclearProcess();
691 thePositronNuclearProcess->RegisterMe(theElectronReaction);
693 G4ProcessManager* positronMan =
694G4Positron::Positron()->GetProcessManager();
695 positronMan->AddProcess(thePositronNuclearProcess, -1, -1, 5);
716 G4PiNuclearCrossSection* piNucCS =
new G4PiNuclearCrossSection();
718 theParticleIterator->reset();
719 while( (*theParticleIterator)() ){
720 G4ParticleDefinition* particle = theParticleIterator->value();
721 G4ProcessManager* pmanager = particle->GetProcessManager();
722 G4String particleName = particle->GetParticleName();
726 if (particleName ==
"pi+") {
729 G4HadronElasticProcess *process =
new G4HadronElasticProcess();
730 G4LElastic *model =
new G4LElastic();
731 process->RegisterMe(model);
732 pmanager->AddDiscreteProcess(process);
736 G4PionPlusInelasticProcess *inel_process =
new
737G4PionPlusInelasticProcess();
738 inel_process->AddDataSet(piNucCS);
739 inel_process->RegisterMe(bertini_model);
740 pmanager->AddDiscreteProcess(inel_process);
746 }
else if (particleName ==
"pi-") {
749 G4HadronElasticProcess *process =
new G4HadronElasticProcess();
750 G4LElastic *model =
new G4LElastic();
751 process->RegisterMe(model);
752 pmanager->AddDiscreteProcess(process);
756 G4PionMinusInelasticProcess *inel_process =
new
757G4PionMinusInelasticProcess();
758 inel_process->AddDataSet(piNucCS);
759 inel_process->RegisterMe(bertini_model);
760 pmanager->AddDiscreteProcess(inel_process);
766 }
else if (particleName ==
"kaon+") {
769 G4HadronElasticProcess *process =
new G4HadronElasticProcess();
770 G4LElastic *model =
new G4LElastic();
771 process->RegisterMe(model);
772 pmanager->AddDiscreteProcess(process);
776 G4KaonPlusInelasticProcess* inel_process =
new
777G4KaonPlusInelasticProcess();
778 inel_process->RegisterMe(bertini_model);
779 pmanager->AddDiscreteProcess(inel_process);
785 }
else if (particleName ==
"kaon-") {
788 G4HadronElasticProcess *process =
new G4HadronElasticProcess();
789 G4LElastic *model =
new G4LElastic();
790 process->RegisterMe(model);
791 pmanager->AddDiscreteProcess(process);
795 G4KaonMinusInelasticProcess* inel_process =
new
796G4KaonMinusInelasticProcess();
797 inel_process->RegisterMe(bertini_model);
798 pmanager->AddDiscreteProcess(inel_process);
804 }
else if (particleName ==
"kaon0L") {
807 G4HadronElasticProcess *process =
new G4HadronElasticProcess();
808 G4LElastic *model =
new G4LElastic();
809 process->RegisterMe(model);
810 pmanager->AddDiscreteProcess(process);
814 G4KaonZeroLInelasticProcess* inel_process =
new
815G4KaonZeroLInelasticProcess();
816 inel_process->RegisterMe(bertini_model);
817 pmanager->AddDiscreteProcess(inel_process);
823 }
else if (particleName ==
"kaon0S") {
826 G4HadronElasticProcess *process =
new G4HadronElasticProcess();
827 G4LElastic *model =
new G4LElastic();
828 process->RegisterMe(model);
829 pmanager->AddDiscreteProcess(process);
833 G4KaonZeroSInelasticProcess* inel_process =
834 new G4KaonZeroSInelasticProcess();
835 inel_process->RegisterMe(bertini_model);
836 pmanager->AddDiscreteProcess(inel_process);
842 }
else if (particleName ==
"proton") {
845 G4HadronElasticProcess *process =
new G4HadronElasticProcess();
846 G4LElastic *model =
new G4LElastic();
847 process->RegisterMe(model);
848 pmanager->AddDiscreteProcess(process);
852 G4ProtonInelasticProcess *inel_process =
new
853G4ProtonInelasticProcess();
854 inel_process->RegisterMe(bertini_model);
855 pmanager->AddDiscreteProcess(inel_process);
861 }
else if (particleName ==
"anti_proton") {
864 G4HadronElasticProcess *process =
new G4HadronElasticProcess();
865 G4LElastic *model =
new G4LElastic();
866 process->RegisterMe(model);
867 pmanager->AddDiscreteProcess(process);
871 G4AntiProtonInelasticProcess *inel_process =
872 new G4AntiProtonInelasticProcess();
873 G4LEAntiProtonInelastic *inel_model =
new G4LEAntiProtonInelastic();
874 inel_process->RegisterMe(inel_model);
875 pmanager->AddDiscreteProcess(inel_process);
881 }
else if (particleName ==
"neutron") {
885 G4cout <<
"High precision neutron models chosen" << G4endl;
887 putenv(
"G4NEUTRONHPDATA=/afs/ihep.ac.cn/bes3/offline/sw/packages/geant4/4.9.0/slc4_ia32_gcc346/geant4.9.0.p01/data/G4NDL3.11/");
890 G4HadronElasticProcess* el_process =
new G4HadronElasticProcess();
893 G4NeutronHPElastic* hpel_model =
new G4NeutronHPElastic();
894 G4NeutronHPElasticData* el_data =
new G4NeutronHPElasticData();
895 el_process->AddDataSet(el_data);
896 el_process->RegisterMe(hpel_model);
899 G4LElastic* el_model =
new G4LElastic();
900 el_model->SetMinEnergy(19.9*MeV);
901 el_process->RegisterMe(el_model);
903 pmanager->AddDiscreteProcess(el_process);
908 G4NeutronInelasticProcess* inel_process =
909 new G4NeutronInelasticProcess();
912 G4NeutronHPInelastic* hpinel_model =
new G4NeutronHPInelastic();
913 G4NeutronHPInelasticData* hpinel_data =
new
914G4NeutronHPInelasticData();
915 inel_process->AddDataSet(hpinel_data);
916 inel_process->RegisterMe(hpinel_model);
919 G4CascadeInterface* neutron_bertini =
new G4CascadeInterface;
920 neutron_bertini->SetMinEnergy(19.9*MeV);
921 inel_process->RegisterMe(neutron_bertini);
923 pmanager->AddDiscreteProcess(inel_process);
928 G4HadronCaptureProcess* cap_process =
new G4HadronCaptureProcess();
931 G4NeutronHPCapture* hpcap_model =
new G4NeutronHPCapture();
932 G4NeutronHPCaptureData* hpcap_data =
new G4NeutronHPCaptureData();
933 cap_process->AddDataSet(hpcap_data);
934 cap_process->RegisterMe(hpcap_model);
938 G4LCapture* cap_model =
new G4LCapture();
939 cap_model->SetMinEnergy(19.9*MeV);
940 cap_process->RegisterMe(cap_model);
942 pmanager->AddDiscreteProcess(cap_process);
948 G4HadronFissionProcess* fis_process =
new G4HadronFissionProcess();
951 G4NeutronHPFission* hpfis_model =
new G4NeutronHPFission();
952 G4NeutronHPFissionData* hpfis_data =
new G4NeutronHPFissionData();
953 fis_process->AddDataSet(hpfis_data);
954 fis_process->RegisterMe(hpfis_model);
958 G4LFission* fis_model =
new G4LFission();
959 fis_model->SetMinEnergy(19.9*MeV);
960 fis_process->RegisterMe(fis_model);
962 pmanager->AddDiscreteProcess(fis_process);
970 G4HadronElasticProcess *process =
new G4HadronElasticProcess();
971 G4LElastic *model =
new G4LElastic();
972 process->RegisterMe(model);
973 pmanager->AddDiscreteProcess(process);
976 G4NeutronInelasticProcess *inel_process =
977 new G4NeutronInelasticProcess();
978 inel_process->RegisterMe(bertini_model);
979 pmanager->AddDiscreteProcess(inel_process);
986 }
else if (particleName ==
"anti_neutron") {
989 G4HadronElasticProcess *process =
new G4HadronElasticProcess();
990 G4LElastic *model =
new G4LElastic();
991 process->RegisterMe(model);
992 pmanager->AddDiscreteProcess(process);
996 G4AntiNeutronInelasticProcess *inel_process =
997 new G4AntiNeutronInelasticProcess();
998 G4LEAntiNeutronInelastic *inel_model =
new G4LEAntiNeutronInelastic();
999 inel_process->RegisterMe(inel_model);
1000 pmanager->AddDiscreteProcess(inel_process);
1006 }
else if (particleName ==
"lambda") {
1009 G4HadronElasticProcess *process =
new G4HadronElasticProcess();
1010 G4LElastic *model =
new G4LElastic();
1011 process->RegisterMe(model);
1012 pmanager->AddDiscreteProcess(process);
1016 G4LambdaInelasticProcess* inel_process =
new
1017G4LambdaInelasticProcess();
1018 inel_process->RegisterMe(bertini_model);
1019 pmanager->AddDiscreteProcess(inel_process);
1025 }
else if (particleName ==
"anti_lambda") {
1028 G4HadronElasticProcess *process =
new G4HadronElasticProcess();
1029 G4LElastic *model =
new G4LElastic();
1030 process->RegisterMe(model);
1031 pmanager->AddDiscreteProcess(process);
1035 G4AntiLambdaInelasticProcess *inel_process =
1036 new G4AntiLambdaInelasticProcess();
1037 G4LEAntiLambdaInelastic *inel_model =
new G4LEAntiLambdaInelastic();
1038 inel_process->RegisterMe(inel_model);
1039 pmanager->AddDiscreteProcess(inel_process);
1045 }
else if (particleName ==
"deuteron") {
1048 G4HadronElasticProcess *process =
new G4HadronElasticProcess();
1049 G4LElastic *model =
new G4LElastic();
1050 process->RegisterMe(model);
1051 pmanager->AddDiscreteProcess(process);
1055 G4DeuteronInelasticProcess *inel_process =
1056 new G4DeuteronInelasticProcess();
1057 G4LEDeuteronInelastic *inel_model =
new G4LEDeuteronInelastic();
1058 inel_process->RegisterMe(inel_model);
1059 pmanager->AddDiscreteProcess(inel_process);
1065 }
else if (particleName ==
"triton") {
1068 G4HadronElasticProcess *process =
new G4HadronElasticProcess();
1069 G4LElastic *model =
new G4LElastic();
1070 process->RegisterMe(model);
1071 pmanager->AddDiscreteProcess(process);
1075 G4TritonInelasticProcess *inel_process =
1076 new G4TritonInelasticProcess();
1077 G4LETritonInelastic *inel_model =
new G4LETritonInelastic();
1078 inel_process->RegisterMe(inel_model);
1079 pmanager->AddDiscreteProcess(inel_process);
1085 }
else if (particleName ==
"alpha") {
1088 G4HadronElasticProcess *process =
new G4HadronElasticProcess();
1089 G4LElastic *model =
new G4LElastic();
1090 process->RegisterMe(model);
1091 pmanager->AddDiscreteProcess(process);
1095 G4AlphaInelasticProcess *inel_process =
new G4AlphaInelasticProcess();
1096 G4LEAlphaInelastic *inel_model =
new G4LEAlphaInelastic();
1097 inel_process->RegisterMe(inel_model);
1098 pmanager->AddDiscreteProcess(inel_process);
1113 theParticleIterator->reset();
1114 while( (*theParticleIterator)() ){
1115 G4ParticleDefinition* particle = theParticleIterator->value();
1116 G4ProcessManager* pmanager = particle->GetProcessManager();
1117 G4String particleName = particle->GetParticleName();
1119 if (particleName ==
"nu_e" ||
1120 particleName ==
"nu_mu" ||
1121 particleName ==
"nu_tau" ||
1122 particleName ==
"anti_nu_e" ||
1123 particleName ==
"anti_nu_mu" ||
1124 particleName ==
"anti_nu_tau" ||
1128 particleName ==
"kaon0" ||
1129 particleName ==
"anti_kaon0" ) {
1131 pmanager->AddProcess(genocide, -1, -1, 5);
1150 theParticleIterator->reset();
1151 while( (*theParticleIterator)() ){
1152 G4ParticleDefinition* particle = theParticleIterator->value();
1153 G4ProcessManager* pmanager = particle->GetProcessManager();
1154 G4String particleName = particle->GetParticleName();
1156 if ( particleName ==
"triton" ||
1157 particleName ==
"alpha" ||
1158 particleName ==
"proton" ||
1159 particleName ==
"deuteron" ) {
1161 pmanager->AddProcess(genocide, -1, -1, 5);
1177 theParticleIterator->reset();
1178 while( (*theParticleIterator)() ){
1179 G4ParticleDefinition* particle = theParticleIterator->value();
1180 G4ProcessManager* pmanager = particle->GetProcessManager();
1181 G4String particleName = particle->GetParticleName();
1183 if ( particleName ==
"neutron" ) {
1185 pmanager->AddProcess(genocide, -1, -1, 1);
1200 SetDefaultCutValue(0.7*mm);
1201 SetCutsWithDefault();
virtual ~BgsPhysicsList()
void ConstructNeutronFix()
void ConstructNeutrinoGenocide()
void SetStatusEmProcess()