15 #include "G4ProcessManager.hh"
16 #include "G4Version.hh"
17 #if G4VERSION_NUMBER < 1100
18 #include "G4ProtonInelasticProcess.hh"
20 #include "G4HadronInelasticProcess.hh"
22 #include "G4HadronElasticProcess.hh"
24 #include "G4CascadeInterface.hh"
25 #include "G4TheoFSGenerator.hh"
26 #include "G4FTFModel.hh"
27 #include "G4ExcitedStringDecay.hh"
28 #include "G4LundStringFragmentation.hh"
29 #include "G4GeneratorPrecompoundInterface.hh"
30 #include "G4ChipsElasticModel.hh"
32 #include "G4BGGNucleonInelasticXS.hh"
33 #include "G4ChipsProtonElasticXS.hh"
35 #include "G4SystemOfUnits.hh"
37 #if G4VERSION_NUMBER < 1100
50 : G4VPhysicsConstructor(
"eASTProton")
60 G4ChipsElasticModel* elMod =
new G4ChipsElasticModel();
63 G4CascadeInterface* loInelModel =
new G4CascadeInterface;
64 loInelModel->SetMinEnergy(0.0);
65 loInelModel->SetMaxEnergy(12.0*
GeV);
68 ftfp =
new G4TheoFSGenerator(
"FTFP");
71 new G4ExcitedStringDecay(
fragModel =
new G4LundStringFragmentation);
81 G4BGGNucleonInelasticXS* inelCS =
new G4BGGNucleonInelasticXS(G4Proton::Proton() );
82 G4ChipsProtonElasticXS* elCS =
new G4ChipsProtonElasticXS;
84 G4ProcessManager* procMan = G4Proton::Proton()->GetProcessManager();
87 G4HadronElasticProcess* pProcEl =
new G4HadronElasticProcess;
88 pProcEl->RegisterMe(elMod);
89 pProcEl->AddDataSet(elCS);
90 procMan->AddDiscreteProcess(pProcEl);
93 #if G4VERSION_NUMBER < 1100
94 G4ProtonInelasticProcess* pProcInel =
new G4ProtonInelasticProcess;
96 auto* pProcInel =
new G4HadronInelasticProcess(
"ProtonInelasticProcess",
99 pProcInel->RegisterMe(loInelModel);
100 pProcInel->RegisterMe(
ftfp);
101 pProcInel->AddDataSet(inelCS);
102 procMan->AddDiscreteProcess(pProcInel);