59{
60 G4ProcessManager* procMan = 0;
61
62
63 G4HadronElastic* elModel = new G4HadronElastic();
64
65
66 G4HadronElastic* loelModel = new G4HadronElastic();
67 loelModel->SetMaxEnergy(100.1 * MeV);
68
69 G4AntiNuclElastic* anucEl = new G4AntiNuclElastic();
70 anucEl->SetMinEnergy(100.0 * MeV);
71
72
73 m_ftfp =
new G4TheoFSGenerator(
"FTFP");
76 new G4ExcitedStringDecay(
m_fragModel =
new G4LundStringFragmentation);
79
83 m_ftfp->SetMaxEnergy(100 * TeV);
84
85
86 G4CrossSectionElastic* anucElxs =
87 new G4CrossSectionElastic(anucEl->GetComponentCrossSection());
88
89
91 G4VCrossSectionDataSet* antiNucleonData =
93
94 G4ChipsAntiBaryonElasticXS* hchipsElastic = new G4ChipsAntiBaryonElasticXS;
95 G4ChipsAntiBaryonInelasticXS* hchipsInelastic = new G4ChipsAntiBaryonInelasticXS;
96
98
100
101 procMan = G4AntiProton::AntiProton()->GetProcessManager();
102
103
104 G4HadronElasticProcess* apProcEl = new G4HadronElasticProcess;
105 apProcEl->RegisterMe(loelModel);
106 apProcEl->RegisterMe(anucEl);
107 apProcEl->AddDataSet(anucElxs);
108 procMan->AddDiscreteProcess(apProcEl);
109
110
111 G4HadronInelasticProcess* apProcInel = new G4HadronInelasticProcess("anti_protonInelastic", G4AntiProton::Definition());
112 apProcInel->RegisterMe(
m_ftfp);
113 apProcInel->AddDataSet(antiNucleonData);
114 procMan->AddDiscreteProcess(apProcInel);
115
116
117 G4HadronicAbsorptionFritiof* apAbsorb = new G4HadronicAbsorptionFritiof();
118 procMan->AddRestProcess(apAbsorb);
119
121
123
124 procMan = G4AntiNeutron::AntiNeutron()->GetProcessManager();
125
126
127 G4HadronElasticProcess* anProcEl = new G4HadronElasticProcess;
128 anProcEl->RegisterMe(elModel);
129 anProcEl->AddDataSet(hchipsElastic);
130 procMan->AddDiscreteProcess(anProcEl);
131
132
133 G4HadronInelasticProcess* anProcInel = new G4HadronInelasticProcess("anti_neutronInelastic", G4AntiNeutron::Definition());
134 anProcInel->RegisterMe(
m_ftfp);
135 anProcInel->AddDataSet(antiNucleonData);
136 procMan->AddDiscreteProcess(anProcInel);
137
139
141
142 procMan = G4AntiDeuteron::AntiDeuteron()->GetProcessManager();
143
144
145 G4HadronElasticProcess* adProcEl = new G4HadronElasticProcess;
146 adProcEl->RegisterMe(loelModel);
147 adProcEl->RegisterMe(anucEl);
148 adProcEl->AddDataSet(anucElxs);
149 procMan->AddDiscreteProcess(adProcEl);
150
151
152 G4HadronInelasticProcess* adProcInel = new G4HadronInelasticProcess("anti_deuteronInelastic", G4AntiDeuteron::Definition());
153 adProcInel->RegisterMe(
m_ftfp);
154 adProcInel->AddDataSet(antiNucleonData);
155 procMan->AddDiscreteProcess(adProcInel);
156
157
158 G4HadronicAbsorptionFritiof* adAbsorb = new G4HadronicAbsorptionFritiof();
159 procMan->AddRestProcess(adAbsorb);
160
162
164
165 procMan = G4AntiTriton::AntiTriton()->GetProcessManager();
166
167
168 G4HadronElasticProcess* atProcEl = new G4HadronElasticProcess;
169 atProcEl->RegisterMe(loelModel);
170 atProcEl->RegisterMe(anucEl);
171 atProcEl->AddDataSet(anucElxs);
172 procMan->AddDiscreteProcess(atProcEl);
173
174
175 G4HadronInelasticProcess* atProcInel = new G4HadronInelasticProcess("anti_tritonInelastic", G4AntiTriton::Definition());
176 atProcInel->RegisterMe(
m_ftfp);
177 atProcInel->AddDataSet(antiNucleonData);
178 procMan->AddDiscreteProcess(atProcInel);
179
180
181 G4HadronicAbsorptionFritiof* atAbsorb = new G4HadronicAbsorptionFritiof();
182 procMan->AddRestProcess(atAbsorb);
183
185
187
188 procMan = G4AntiHe3::AntiHe3()->GetProcessManager();
189
190
191 G4HadronElasticProcess* ahe3ProcEl = new G4HadronElasticProcess;
192 ahe3ProcEl->RegisterMe(loelModel);
193 ahe3ProcEl->RegisterMe(anucEl);
194 ahe3ProcEl->AddDataSet(anucElxs);
195 procMan->AddDiscreteProcess(ahe3ProcEl);
196
197
198 G4HadronInelasticProcess* ahe3ProcInel = new G4HadronInelasticProcess("anti_He3Inelastic", G4AntiHe3::Definition());
199 ahe3ProcInel->RegisterMe(
m_ftfp);
200 ahe3ProcInel->AddDataSet(antiNucleonData);
201 procMan->AddDiscreteProcess(ahe3ProcInel);
202
203
204 G4HadronicAbsorptionFritiof* ahe3Absorb = new G4HadronicAbsorptionFritiof();
205 procMan->AddRestProcess(ahe3Absorb);
206
208
210
211 procMan = G4AntiAlpha::AntiAlpha()->GetProcessManager();
212
213
214 G4HadronElasticProcess* aaProcEl = new G4HadronElasticProcess;
215 aaProcEl->RegisterMe(loelModel);
216 aaProcEl->RegisterMe(anucEl);
217 aaProcEl->AddDataSet(anucElxs);
218 procMan->AddDiscreteProcess(aaProcEl);
219
220
221 G4HadronInelasticProcess* aaProcInel = new G4HadronInelasticProcess("anti_alpha_Inelastic", G4AntiAlpha::Definition());
222 aaProcInel->RegisterMe(
m_ftfp);
223 aaProcInel->AddDataSet(antiNucleonData);
224 procMan->AddDiscreteProcess(aaProcInel);
225
226
227 G4HadronicAbsorptionFritiof* aaAbsorb = new G4HadronicAbsorptionFritiof();
228 procMan->AddRestProcess(aaAbsorb);
229
231
233
234 procMan = G4AntiLambda::AntiLambda()->GetProcessManager();
235
236
237 G4HadronElasticProcess* alamProcEl = new G4HadronElasticProcess;
238 alamProcEl->RegisterMe(elModel);
239 alamProcEl->AddDataSet(hchipsElastic);
240 procMan->AddDiscreteProcess(alamProcEl);
241
242
243 G4HadronInelasticProcess* alamProcInel = new G4HadronInelasticProcess("anti-lambdaInelastic", G4AntiLambda::Definition());
244 alamProcInel->RegisterMe(
m_ftfp);
245 alamProcInel->AddDataSet(hchipsInelastic);
246 procMan->AddDiscreteProcess(alamProcInel);
247
249
251
252 procMan = G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager();
253
254
255 G4HadronElasticProcess* aspProcEl = new G4HadronElasticProcess;
256 aspProcEl->RegisterMe(elModel);
257 aspProcEl->AddDataSet(hchipsElastic);
258 procMan->AddDiscreteProcess(aspProcEl);
259
260
261 G4HadronInelasticProcess* aspProcInel = new G4HadronInelasticProcess("anti_sigma+Inelastic", G4AntiSigmaPlus::Definition());
262 aspProcInel->RegisterMe(
m_ftfp);
263 aspProcInel->AddDataSet(hchipsInelastic);
264 procMan->AddDiscreteProcess(aspProcInel);
265
266
267 G4HadronicAbsorptionFritiof* aspAbsorb = new G4HadronicAbsorptionFritiof();
268 procMan->AddRestProcess(aspAbsorb);
269
271
273
274 procMan = G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager();
275
276
277 G4HadronElasticProcess* asmProcEl = new G4HadronElasticProcess;
278 asmProcEl->RegisterMe(elModel);
279 asmProcEl->AddDataSet(hchipsElastic);
280 procMan->AddDiscreteProcess(asmProcEl);
281
282
283 G4HadronInelasticProcess* asmProcInel = new G4HadronInelasticProcess("anti_sigma-Inelastic", G4AntiSigmaMinus::Definition());
284 asmProcInel->RegisterMe(
m_ftfp);
285 asmProcInel->AddDataSet(hchipsInelastic);
286 procMan->AddDiscreteProcess(asmProcInel);
287
289
291
292 procMan = G4AntiXiZero::AntiXiZero()->GetProcessManager();
293
294
295 G4HadronElasticProcess* axzProcEl = new G4HadronElasticProcess;
296 axzProcEl->RegisterMe(elModel);
297 axzProcEl->AddDataSet(hchipsElastic);
298 procMan->AddDiscreteProcess(axzProcEl);
299
300
301 G4HadronInelasticProcess* axzProcInel = new G4HadronInelasticProcess("anti_xi0Inelastic", G4AntiXiZero::Definition());
302 axzProcInel->RegisterMe(
m_ftfp);
303 axzProcInel->AddDataSet(hchipsInelastic);
304 procMan->AddDiscreteProcess(axzProcInel);
305
307
309
310 procMan = G4AntiXiMinus::AntiXiMinus()->GetProcessManager();
311
312
313 G4HadronElasticProcess* axmProcEl = new G4HadronElasticProcess;
314 axmProcEl->RegisterMe(elModel);
315 axmProcEl->AddDataSet(hchipsElastic);
316 procMan->AddDiscreteProcess(axmProcEl);
317
318
319 G4HadronInelasticProcess* axmProcInel = new G4HadronInelasticProcess("anti_xi-Inelastic", G4AntiXiMinus::Definition());
320 axmProcInel->RegisterMe(
m_ftfp);
321 axmProcInel->AddDataSet(hchipsInelastic);
322 procMan->AddDiscreteProcess(axmProcInel);
323
325
327
328 procMan = G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager();
329
330
331 G4HadronElasticProcess* aomProcEl = new G4HadronElasticProcess;
332 aomProcEl->RegisterMe(elModel);
333 aomProcEl->AddDataSet(hchipsElastic);
334 procMan->AddDiscreteProcess(aomProcEl);
335
336
337 G4HadronInelasticProcess* aomProcInel = new G4HadronInelasticProcess("anti_omega-Inelastic", G4AntiOmegaMinus::Definition());
338 aomProcInel->RegisterMe(
m_ftfp);
339 aomProcInel->AddDataSet(hchipsInelastic);
340 procMan->AddDiscreteProcess(aomProcInel);
341
342}