15 #include <Geant4/G4ProcessManager.hh>
16 #include <Geant4/G4LambdaInelasticProcess.hh>
17 #include <Geant4/G4SigmaPlusInelasticProcess.hh>
18 #include <Geant4/G4SigmaMinusInelasticProcess.hh>
19 #include <Geant4/G4XiZeroInelasticProcess.hh>
20 #include <Geant4/G4XiMinusInelasticProcess.hh>
21 #include <Geant4/G4OmegaMinusInelasticProcess.hh>
23 #include <Geant4/G4HadronElasticProcess.hh>
24 #include <Geant4/G4HadronicAbsorptionBertini.hh>
26 #include <Geant4/G4CascadeInterface.hh>
27 #include <Geant4/G4TheoFSGenerator.hh>
28 #include <Geant4/G4FTFModel.hh>
29 #include <Geant4/G4ExcitedStringDecay.hh>
30 #include <Geant4/G4LundStringFragmentation.hh>
31 #include <Geant4/G4GeneratorPrecompoundInterface.hh>
32 #include <Geant4/G4HadronElastic.hh>
34 #include <Geant4/G4ChipsHyperonInelasticXS.hh>
35 #include <Geant4/G4SystemOfUnits.hh>
43 preCompoundModel(nullptr)
62 G4ProcessManager* procMan = 0;
65 G4HadronElastic* elModel =
new G4HadronElastic();
68 G4CascadeInterface* loInelModel =
new G4CascadeInterface;
69 loInelModel->SetMinEnergy(0.0);
70 loInelModel->SetMaxEnergy(6.0*
GeV);
73 ftfp =
new G4TheoFSGenerator(
"FTFP");
76 new G4ExcitedStringDecay(
fragModel =
new G4LundStringFragmentation);
86 G4ChipsHyperonInelasticXS* chipsInelastic =
new G4ChipsHyperonInelasticXS;
92 procMan = G4Lambda::Lambda()->GetProcessManager();
95 G4HadronElasticProcess* lamProcEl =
new G4HadronElasticProcess;
96 lamProcEl->RegisterMe(elModel);
97 procMan->AddDiscreteProcess(lamProcEl);
100 G4LambdaInelasticProcess* lamProcInel =
new G4LambdaInelasticProcess;
101 lamProcInel->RegisterMe(loInelModel);
102 lamProcInel->RegisterMe(
ftfp);
103 lamProcInel->AddDataSet(chipsInelastic);
104 procMan->AddDiscreteProcess(lamProcInel);
110 procMan = G4SigmaPlus::SigmaPlus()->GetProcessManager();
113 G4HadronElasticProcess* spProcEl =
new G4HadronElasticProcess;
114 spProcEl->RegisterMe(elModel);
115 procMan->AddDiscreteProcess(spProcEl);
118 G4SigmaPlusInelasticProcess* spProcInel =
new G4SigmaPlusInelasticProcess;
119 spProcInel->RegisterMe(loInelModel);
120 spProcInel->RegisterMe(
ftfp);
121 spProcInel->AddDataSet(chipsInelastic);
122 procMan->AddDiscreteProcess(spProcInel);
128 procMan = G4SigmaMinus::SigmaMinus()->GetProcessManager();
131 G4HadronElasticProcess* smProcEl =
new G4HadronElasticProcess;
132 smProcEl->RegisterMe(elModel);
133 procMan->AddDiscreteProcess(smProcEl);
136 G4SigmaMinusInelasticProcess* smProcInel =
new G4SigmaMinusInelasticProcess;
137 smProcInel->RegisterMe(loInelModel);
138 smProcInel->RegisterMe(
ftfp);
139 smProcInel->AddDataSet(chipsInelastic);
140 procMan->AddDiscreteProcess(smProcInel);
143 G4HadronicAbsorptionBertini* smAbsorb =
new G4HadronicAbsorptionBertini;
144 procMan->AddRestProcess(smAbsorb);
150 procMan = G4XiZero::XiZero()->GetProcessManager();
153 G4HadronElasticProcess* xzProcEl =
new G4HadronElasticProcess;
154 xzProcEl->RegisterMe(elModel);
155 procMan->AddDiscreteProcess(xzProcEl);
158 G4XiZeroInelasticProcess* xzProcInel =
new G4XiZeroInelasticProcess;
159 xzProcInel->RegisterMe(loInelModel);
160 xzProcInel->RegisterMe(
ftfp);
161 xzProcInel->AddDataSet(chipsInelastic);
162 procMan->AddDiscreteProcess(xzProcInel);
168 procMan = G4XiMinus::XiMinus()->GetProcessManager();
171 G4HadronElasticProcess* xmProcEl =
new G4HadronElasticProcess;
172 xmProcEl->RegisterMe(elModel);
173 procMan->AddDiscreteProcess(xmProcEl);
176 G4XiMinusInelasticProcess* xmProcInel =
new G4XiMinusInelasticProcess;
177 xmProcInel->RegisterMe(loInelModel);
178 xmProcInel->RegisterMe(
ftfp);
179 xmProcInel->AddDataSet(chipsInelastic);
180 procMan->AddDiscreteProcess(xmProcInel);
183 G4HadronicAbsorptionBertini* xmAbsorb =
new G4HadronicAbsorptionBertini;
184 procMan->AddRestProcess(xmAbsorb);
190 procMan = G4OmegaMinus::OmegaMinus()->GetProcessManager();
193 G4HadronElasticProcess* omProcEl =
new G4HadronElasticProcess;
194 omProcEl->RegisterMe(elModel);
195 procMan->AddDiscreteProcess(omProcEl);
198 G4OmegaMinusInelasticProcess* omProcInel =
new G4OmegaMinusInelasticProcess;
199 omProcInel->RegisterMe(loInelModel);
200 omProcInel->RegisterMe(
ftfp);
201 omProcInel->AddDataSet(chipsInelastic);
202 procMan->AddDiscreteProcess(omProcInel);
205 G4HadronicAbsorptionBertini* omAbsorb =
new G4HadronicAbsorptionBertini;
206 procMan->AddRestProcess(omAbsorb);