15 #include "G4ProcessManager.hh"
16 #include "G4Version.hh"
17 #if G4VERSION_NUMBER < 1100
18 #include "G4NeutronInelasticProcess.hh"
19 #include "G4HadronCaptureProcess.hh"
21 #include "G4HadronInelasticProcess.hh"
22 #include "G4NeutronCaptureProcess.hh"
24 #include "G4HadronElasticProcess.hh"
25 #include "G4NeutronKiller.hh"
27 #include "G4CascadeInterface.hh"
28 #include "G4TheoFSGenerator.hh"
29 #include "G4FTFModel.hh"
30 #include "G4ExcitedStringDecay.hh"
31 #include "G4LundStringFragmentation.hh"
32 #include "G4GeneratorPrecompoundInterface.hh"
33 #include "G4ChipsElasticModel.hh"
34 #include "G4NeutronRadCapture.hh"
36 #include "G4BGGNucleonInelasticXS.hh"
37 #include "G4NeutronElasticXS.hh"
38 #include "G4NeutronCaptureXS.hh"
40 #include "G4SystemOfUnits.hh"
42 #if G4VERSION_NUMBER < 1100
56 : G4VPhysicsConstructor(
"eASTNeutron")
70 G4ChipsElasticModel* elMod =
new G4ChipsElasticModel();
73 G4CascadeInterface* loInelModel =
new G4CascadeInterface;
74 loInelModel->SetMinEnergy(0.0);
75 loInelModel->SetMaxEnergy(12.0*
GeV);
78 G4NeutronRadCapture* capModel =
new G4NeutronRadCapture();
81 ftfp =
new G4TheoFSGenerator(
"FTFP");
84 new G4ExcitedStringDecay(
fragModel =
new G4LundStringFragmentation);
94 G4BGGNucleonInelasticXS* inelCS =
new G4BGGNucleonInelasticXS(G4Neutron::Neutron() );
95 G4NeutronElasticXS* elCS =
new G4NeutronElasticXS;
96 G4NeutronCaptureXS* capCS =
new G4NeutronCaptureXS;
98 G4ProcessManager* procMan = G4Neutron::Neutron()->GetProcessManager();
101 G4HadronElasticProcess* nProcEl =
new G4HadronElasticProcess;
102 nProcEl->RegisterMe(elMod);
103 nProcEl->AddDataSet(elCS);
104 procMan->AddDiscreteProcess(nProcEl);
107 #if G4VERSION_NUMBER < 1100
108 G4NeutronInelasticProcess* nProcInel =
new G4NeutronInelasticProcess;
110 auto* nProcInel =
new G4HadronInelasticProcess(
"NeutronInelasticProcess",
111 G4Neutron::Neutron() );
113 nProcInel->RegisterMe(loInelModel);
114 nProcInel->RegisterMe(
ftfp);
115 nProcInel->AddDataSet(inelCS);
116 procMan->AddDiscreteProcess(nProcInel);
119 #if G4VERSION_NUMBER < 1100
120 G4HadronCaptureProcess* nProcCap =
new G4HadronCaptureProcess(
"nCapture");
122 auto* nProcCap =
new G4NeutronCaptureProcess(
"nCapture");
124 nProcCap->RegisterMe(capModel);
125 nProcCap->AddDataSet(capCS);
126 procMan->AddDiscreteProcess(nProcCap);
129 G4NeutronKiller* nKiller =
new G4NeutronKiller();
130 nKiller->SetKinEnergyLimit(0.0*
MeV);
131 nKiller->SetTimeLimit(10.*microsecond);
132 procMan->AddDiscreteProcess(nKiller);