15 #include <Geant4/G4ProcessManager.hh>
16 #include <Geant4/G4ProtonInelasticProcess.hh>
17 #include <Geant4/G4HadronElasticProcess.hh>
19 #include <Geant4/G4CascadeInterface.hh>
20 #include <Geant4/G4TheoFSGenerator.hh>
21 #include <Geant4/G4FTFModel.hh>
22 #include <Geant4/G4ExcitedStringDecay.hh>
23 #include <Geant4/G4LundStringFragmentation.hh>
24 #include <Geant4/G4GeneratorPrecompoundInterface.hh>
25 #include <Geant4/G4ChipsElasticModel.hh>
27 #include <Geant4/G4BGGNucleonInelasticXS.hh>
28 #include <Geant4/G4ChipsProtonElasticXS.hh>
30 #include <Geant4/G4SystemOfUnits.hh>
38 preCompoundModel(nullptr)
54 G4ChipsElasticModel* elMod =
new G4ChipsElasticModel();
57 G4CascadeInterface* loInelModel =
new G4CascadeInterface;
58 loInelModel->SetMinEnergy(0.0);
59 loInelModel->SetMaxEnergy(12.0*
GeV);
62 ftfp =
new G4TheoFSGenerator(
"FTFP");
65 new G4ExcitedStringDecay(
fragModel =
new G4LundStringFragmentation);
75 G4BGGNucleonInelasticXS* inelCS =
new G4BGGNucleonInelasticXS(G4Proton::Proton() );
76 G4ChipsProtonElasticXS* elCS =
new G4ChipsProtonElasticXS;
78 G4ProcessManager* procMan = G4Proton::Proton()->GetProcessManager();
81 G4HadronElasticProcess* pProcEl =
new G4HadronElasticProcess;
82 pProcEl->RegisterMe(elMod);
83 pProcEl->AddDataSet(elCS);
84 procMan->AddDiscreteProcess(pProcEl);
87 G4ProtonInelasticProcess* pProcInel =
new G4ProtonInelasticProcess;
88 pProcInel->RegisterMe(loInelModel);
89 pProcInel->RegisterMe(
ftfp);
90 pProcInel->AddDataSet(inelCS);
91 procMan->AddDiscreteProcess(pProcInel);