16 #include "G4ProcessManager.hh"
17 #include "G4Version.hh"
18 #if G4VERSION_NUMBER < 1100
19 #include "G4LambdaInelasticProcess.hh"
20 #include "G4SigmaPlusInelasticProcess.hh"
21 #include "G4SigmaMinusInelasticProcess.hh"
22 #include "G4XiZeroInelasticProcess.hh"
23 #include "G4XiMinusInelasticProcess.hh"
24 #include "G4OmegaMinusInelasticProcess.hh"
26 #include "G4HadronInelasticProcess.hh"
29 #include "G4HadronElasticProcess.hh"
30 #include "G4HadronicAbsorptionBertini.hh"
32 #include "G4CascadeInterface.hh"
33 #include "G4TheoFSGenerator.hh"
34 #include "G4FTFModel.hh"
35 #include "G4ExcitedStringDecay.hh"
36 #include "G4LundStringFragmentation.hh"
37 #include "G4GeneratorPrecompoundInterface.hh"
38 #include "G4HadronElastic.hh"
40 #include "G4ChipsHyperonElasticXS.hh"
41 #include "G4ChipsHyperonInelasticXS.hh"
42 #include "G4SystemOfUnits.hh"
44 #if G4VERSION_NUMBER < 1100
57 : G4VPhysicsConstructor(
"eASTHyperon")
70 G4ProcessManager* procMan = 0;
73 G4HadronElastic* elModel =
new G4HadronElastic();
76 G4CascadeInterface* loInelModel =
new G4CascadeInterface;
77 loInelModel->SetMinEnergy(0.0);
78 loInelModel->SetMaxEnergy(6.0*
GeV);
81 ftfp =
new G4TheoFSGenerator(
"FTFP");
84 new G4ExcitedStringDecay(
fragModel =
new G4LundStringFragmentation);
94 G4ChipsHyperonElasticXS* chipsElastic =
new G4ChipsHyperonElasticXS;
95 G4ChipsHyperonInelasticXS* chipsInelastic =
new G4ChipsHyperonInelasticXS;
101 procMan = G4Lambda::Lambda()->GetProcessManager();
104 G4HadronElasticProcess* lamProcEl =
new G4HadronElasticProcess;
105 lamProcEl->RegisterMe(elModel);
106 lamProcEl->AddDataSet(chipsElastic);
107 procMan->AddDiscreteProcess(lamProcEl);
110 #if G4VERSION_NUMBER < 1100
111 G4LambdaInelasticProcess* lamProcInel =
new G4LambdaInelasticProcess;
113 auto* lamProcInel =
new G4HadronInelasticProcess(
"LambdaInelasticProcess",
114 G4Lambda::Lambda() );
116 lamProcInel->RegisterMe(loInelModel);
117 lamProcInel->RegisterMe(
ftfp);
118 lamProcInel->AddDataSet(chipsInelastic);
119 procMan->AddDiscreteProcess(lamProcInel);
125 procMan = G4SigmaPlus::SigmaPlus()->GetProcessManager();
128 G4HadronElasticProcess* spProcEl =
new G4HadronElasticProcess;
129 spProcEl->RegisterMe(elModel);
130 spProcEl->AddDataSet(chipsElastic);
131 procMan->AddDiscreteProcess(spProcEl);
134 #if G4VERSION_NUMBER < 1100
135 G4SigmaPlusInelasticProcess* spProcInel =
new G4SigmaPlusInelasticProcess;
137 auto* spProcInel =
new G4HadronInelasticProcess(
"SigmaPlusInelasticProcess",
138 G4SigmaPlus::SigmaPlus() );
140 spProcInel->RegisterMe(loInelModel);
141 spProcInel->RegisterMe(
ftfp);
142 spProcInel->AddDataSet(chipsInelastic);
143 procMan->AddDiscreteProcess(spProcInel);
149 procMan = G4SigmaMinus::SigmaMinus()->GetProcessManager();
152 G4HadronElasticProcess* smProcEl =
new G4HadronElasticProcess;
153 smProcEl->RegisterMe(elModel);
154 smProcEl->AddDataSet(chipsElastic);
155 procMan->AddDiscreteProcess(smProcEl);
158 #if G4VERSION_NUMBER < 1100
159 G4SigmaMinusInelasticProcess* smProcInel =
new G4SigmaMinusInelasticProcess;
161 auto* smProcInel =
new G4HadronInelasticProcess(
"SigmaMinusInelasticProcess",
162 G4SigmaMinus::SigmaMinus() );
164 smProcInel->RegisterMe(loInelModel);
165 smProcInel->RegisterMe(
ftfp);
166 smProcInel->AddDataSet(chipsInelastic);
167 procMan->AddDiscreteProcess(smProcInel);
170 G4HadronicAbsorptionBertini* smAbsorb =
new G4HadronicAbsorptionBertini;
171 procMan->AddRestProcess(smAbsorb);
177 procMan = G4XiZero::XiZero()->GetProcessManager();
180 G4HadronElasticProcess* xzProcEl =
new G4HadronElasticProcess;
181 xzProcEl->RegisterMe(elModel);
182 xzProcEl->AddDataSet(chipsElastic);
183 procMan->AddDiscreteProcess(xzProcEl);
186 #if G4VERSION_NUMBER < 1100
187 G4XiZeroInelasticProcess* xzProcInel =
new G4XiZeroInelasticProcess;
189 auto* xzProcInel =
new G4HadronInelasticProcess(
"XiZeroInelasticProcess",
190 G4XiZero::XiZero() );
192 xzProcInel->RegisterMe(loInelModel);
193 xzProcInel->RegisterMe(
ftfp);
194 xzProcInel->AddDataSet(chipsInelastic);
195 procMan->AddDiscreteProcess(xzProcInel);
201 procMan = G4XiMinus::XiMinus()->GetProcessManager();
204 G4HadronElasticProcess* xmProcEl =
new G4HadronElasticProcess;
205 xmProcEl->RegisterMe(elModel);
206 xmProcEl->AddDataSet(chipsElastic);
207 procMan->AddDiscreteProcess(xmProcEl);
210 #if G4VERSION_NUMBER < 1100
211 G4XiMinusInelasticProcess* xmProcInel =
new G4XiMinusInelasticProcess;
213 auto* xmProcInel =
new G4HadronInelasticProcess(
"XiMinusInelasticProcess",
214 G4XiMinus::XiMinus() );
216 xmProcInel->RegisterMe(loInelModel);
217 xmProcInel->RegisterMe(
ftfp);
218 xmProcInel->AddDataSet(chipsInelastic);
219 procMan->AddDiscreteProcess(xmProcInel);
222 G4HadronicAbsorptionBertini* xmAbsorb =
new G4HadronicAbsorptionBertini;
223 procMan->AddRestProcess(xmAbsorb);
229 procMan = G4OmegaMinus::OmegaMinus()->GetProcessManager();
232 G4HadronElasticProcess* omProcEl =
new G4HadronElasticProcess;
233 omProcEl->RegisterMe(elModel);
234 omProcEl->AddDataSet(chipsElastic);
235 procMan->AddDiscreteProcess(omProcEl);
238 #if G4VERSION_NUMBER < 1100
239 G4OmegaMinusInelasticProcess* omProcInel =
new G4OmegaMinusInelasticProcess;
241 auto* omProcInel =
new G4HadronInelasticProcess(
"OmegaMinusInelasticProcess",
242 G4OmegaMinus::OmegaMinus() );
244 omProcInel->RegisterMe(loInelModel);
245 omProcInel->RegisterMe(
ftfp);
246 omProcInel->AddDataSet(chipsInelastic);
247 procMan->AddDiscreteProcess(omProcInel);
250 G4HadronicAbsorptionBertini* omAbsorb =
new G4HadronicAbsorptionBertini;
251 procMan->AddRestProcess(omAbsorb);