Geant4  9.6.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
A01HadronPhysics.cc
Go to the documentation of this file.
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
28 //
29 // $Id$
30 // --------------------------------------------------------------
31 //
32 // 09-Oct-2003 Hadron Physics List with Parameterization Model by T. Koi
33 // 12-Oct-2003 Bug Fixed (KaonMinus) by T. Koi
34 
35 #include "A01HadronPhysics.hh"
36 
37 #include "globals.hh"
38 #include "G4SystemOfUnits.hh"
39 #include "G4ios.hh"
40 #include <iomanip>
41 
42 
44  : G4VPhysicsConstructor(name)
45 {
46 }
47 
49 {
50 }
51 
52 #include "G4ParticleDefinition.hh"
53 #include "G4ParticleTable.hh"
54 
55 #include "G4ProcessManager.hh"
56 
58 {
59  G4ProcessManager * pManager = 0;
60 
61  // Pi+ Physics
63 
64  // add processes
65  G4HadronElasticProcess* theppElasticProcess
66  = new G4HadronElasticProcess();
67  G4LElastic* theppElasticModel = new G4LElastic();
68  theppElasticProcess->RegisterMe(theppElasticModel);
69  pManager->AddDiscreteProcess(theppElasticProcess);
70 
71  G4PionPlusInelasticProcess* thePionPlusInelasticProcess
73 
74  G4LEPionPlusInelastic* thePionPlusLEPModel = new G4LEPionPlusInelastic();
75  G4HEPionPlusInelastic* thePionPlusHEPModel = new G4HEPionPlusInelastic();
76  thePionPlusInelasticProcess->RegisterMe(thePionPlusLEPModel);
77  thePionPlusInelasticProcess->RegisterMe(thePionPlusHEPModel);
78  pManager->AddDiscreteProcess(thePionPlusInelasticProcess);
79 
80  G4VProcess* theppMultipleScattering = new G4hMultipleScattering();
81  G4VProcess* theppIonisation = new G4hIonisation();
82  //
83  pManager->AddProcess(theppIonisation);
84  pManager->AddProcess(theppMultipleScattering);
85  //
86  // set ordering for AlongStepDoIt
87  pManager->SetProcessOrdering(theppMultipleScattering, idxAlongStep,1);
88  pManager->SetProcessOrdering(theppIonisation, idxAlongStep,2);
89  //
90  // set ordering for PostStepDoIt
91  pManager->SetProcessOrdering(theppMultipleScattering, idxPostStep,1);
92  pManager->SetProcessOrdering(theppIonisation, idxPostStep,2);
93 
94 
95  // Pi- Physics
97 
98  G4HadronElasticProcess* thepmElasticProcess
99  = new G4HadronElasticProcess();
100  G4LElastic* thepmElasticModel = new G4LElastic();
101  thepmElasticProcess->RegisterMe(thepmElasticModel);
102  pManager->AddDiscreteProcess(thepmElasticProcess);
103 
104  G4PionMinusInelasticProcess* thePionMinusInelasticProcess
106 
107  G4LEPionMinusInelastic* thePionMinusLEPModel = new G4LEPionMinusInelastic();
108  G4HEPionMinusInelastic* thePionMinusHEPModel = new G4HEPionMinusInelastic();
109  thePionMinusInelasticProcess->RegisterMe(thePionMinusLEPModel);
110  thePionMinusInelasticProcess->RegisterMe(thePionMinusHEPModel);
111  pManager->AddDiscreteProcess(thePionMinusInelasticProcess);
112 
113  G4VProcess* thepmMultipleScattering = new G4hMultipleScattering();
114  G4VProcess* thepmIonisation = new G4hIonisation();
115  //
116  // add processes
117  pManager->AddProcess(thepmIonisation);
118  pManager->AddProcess(thepmMultipleScattering);
119  //
120  // set ordering for AlongStepDoIt
121  pManager->SetProcessOrdering(thepmMultipleScattering, idxAlongStep,1);
122  pManager->SetProcessOrdering(thepmIonisation, idxAlongStep,2);
123  //
124  // set ordering for PostStepDoIt
125  pManager->SetProcessOrdering(thepmMultipleScattering, idxPostStep,1);
126  pManager->SetProcessOrdering(thepmIonisation, idxPostStep,2);
127 
128 
129  // K+ Physics
130  pManager = G4KaonPlus::KaonPlus()->GetProcessManager();
131 
132  G4HadronElasticProcess* thekpElasticProcess
133  = new G4HadronElasticProcess();
134  G4LElastic* thekpElasticModel = new G4LElastic();
135  thekpElasticProcess->RegisterMe(thekpElasticModel);
136  pManager->AddDiscreteProcess(thekpElasticProcess);
137 
138  G4KaonPlusInelasticProcess* theKaonPlusInelasticProcess
140 
141  G4LEKaonPlusInelastic* theKaonPlusLEPModel = new G4LEKaonPlusInelastic();
142  G4HEKaonPlusInelastic* theKaonPlusHEPModel = new G4HEKaonPlusInelastic();
143  theKaonPlusInelasticProcess->RegisterMe(theKaonPlusLEPModel);
144  theKaonPlusInelasticProcess->RegisterMe(theKaonPlusHEPModel);
145  pManager->AddDiscreteProcess(theKaonPlusInelasticProcess);
146 
147  G4VProcess* thekpMultipleScattering = new G4hMultipleScattering();
148  G4VProcess* thekpIonisation = new G4hIonisation();
149  //
150  // add processes
151  pManager->AddProcess(thekpIonisation);
152  pManager->AddProcess(thekpMultipleScattering);
153  //
154  // set ordering for AlongStepDoIt
155  pManager->SetProcessOrdering(thekpMultipleScattering, idxAlongStep,1);
156  pManager->SetProcessOrdering(thekpIonisation, idxAlongStep,2);
157  //
158  // set ordering for PostStepDoIt
159  pManager->SetProcessOrdering(thekpMultipleScattering, idxPostStep,1);
160  pManager->SetProcessOrdering(thekpIonisation, idxPostStep,2);
161 
162 
163  // K- Physics
165 
166  // add processes
167  G4HadronElasticProcess* thekmElasticProcess
168  = new G4HadronElasticProcess();
169  G4LElastic* thekmElasticModel = new G4LElastic();
170  thekmElasticProcess->RegisterMe(thekmElasticModel);
171  pManager->AddDiscreteProcess(thekmElasticProcess);
172 
173  G4KaonMinusInelasticProcess* theKaonMinusInelasticProcess
175 
176  G4LEKaonMinusInelastic* theKaonMinusLEPModel = new G4LEKaonMinusInelastic();
177  G4HEKaonMinusInelastic* theKaonMinusHEPModel = new G4HEKaonMinusInelastic();
178  theKaonMinusInelasticProcess->RegisterMe(theKaonMinusLEPModel);
179  theKaonMinusInelasticProcess->RegisterMe(theKaonMinusHEPModel);
180  pManager->AddDiscreteProcess(theKaonMinusInelasticProcess);
181 
182  G4VProcess* thekmMultipleScattering = new G4hMultipleScattering();
183  G4VProcess* thekmIonisation = new G4hIonisation();
184 
185  pManager->AddProcess(thekmIonisation);
186  pManager->AddProcess(thekmMultipleScattering);
187 
188  // set ordering for AlongStepDoIt
189  pManager->SetProcessOrdering(thekmMultipleScattering, idxAlongStep,1);
190  pManager->SetProcessOrdering(thekmIonisation, idxAlongStep,2);
191  //
192  // set ordering for PostStepDoIt
193  pManager->SetProcessOrdering(thekmMultipleScattering, idxPostStep,1);
194  pManager->SetProcessOrdering(thekmIonisation, idxPostStep,2);
195 
196 
197  // Kaon0L Phsics
199 
200  G4HadronElasticProcess* thek0lElasticProcess
201  = new G4HadronElasticProcess();
202  G4LElastic* thek0lElasticModel = new G4LElastic();
203  thek0lElasticProcess->RegisterMe(thek0lElasticModel);
204  pManager->AddDiscreteProcess(thek0lElasticProcess);
205 
206  G4KaonZeroLInelasticProcess* theKaonZeroLInelasticProcess
208 
209  G4LEKaonZeroLInelastic* theKaonZeroLLEPModel = new G4LEKaonZeroLInelastic();
210  G4HEKaonZeroInelastic* theKaonZerolHEPModel = new G4HEKaonZeroInelastic();
211  theKaonZeroLInelasticProcess->RegisterMe(theKaonZeroLLEPModel);
212  theKaonZeroLInelasticProcess->RegisterMe(theKaonZerolHEPModel);
213  pManager->AddDiscreteProcess(theKaonZeroLInelasticProcess);
214 
215 
216  // Kaon0S Phsics
218 
219  G4HadronElasticProcess* thek0sElasticProcess
220  = new G4HadronElasticProcess();
221  G4LElastic* thek0sElasticModel = new G4LElastic();
222  thek0sElasticProcess->RegisterMe(thek0sElasticModel);
223  pManager->AddDiscreteProcess(thek0sElasticProcess);
224 
225  G4KaonZeroSInelasticProcess* theKaonZeroSInelasticProcess
227 
228  G4LEKaonZeroSInelastic* theKaonZeroSLEPModel = new G4LEKaonZeroSInelastic();
229  G4HEKaonZeroInelastic* theKaonZerosHEPModel = new G4HEKaonZeroInelastic();
230  theKaonZeroSInelasticProcess->RegisterMe(theKaonZeroSLEPModel);
231  theKaonZeroSInelasticProcess->RegisterMe(theKaonZerosHEPModel);
232  pManager->AddDiscreteProcess(theKaonZeroSInelasticProcess);
233 
234 
235  // Proton Physics
236  pManager = G4Proton::Proton()->GetProcessManager();
237 
238  // add process
239  G4HadronElasticProcess* thepElasticProcess
240  = new G4HadronElasticProcess();
241  G4LElastic* thepElasticModel = new G4LElastic();
242  thepElasticProcess->RegisterMe(thepElasticModel);
243  pManager->AddDiscreteProcess(thepElasticProcess);
244 
245  G4ProtonInelasticProcess* theProtonInelasticProcess
246  = new G4ProtonInelasticProcess();
247 
248  G4LEProtonInelastic* theProtonLEPModel = new G4LEProtonInelastic();
249  G4HEProtonInelastic* theProtonHEPModel = new G4HEProtonInelastic();
250  theProtonInelasticProcess->RegisterMe(theProtonLEPModel);
251  theProtonInelasticProcess->RegisterMe(theProtonHEPModel);
252  pManager->AddDiscreteProcess(theProtonInelasticProcess);
253 
254  G4VProcess* thepMultipleScattering = new G4hMultipleScattering();
255  G4VProcess* thepIonisation = new G4hIonisation();
256 
257  pManager->AddProcess(thepIonisation);
258  pManager->AddProcess(thepMultipleScattering);
259 
260  // set ordering for AlongStepDoIt
261  pManager->SetProcessOrdering(thepMultipleScattering, idxAlongStep,1);
262  pManager->SetProcessOrdering(thepIonisation, idxAlongStep,2);
263  //
264  // set ordering for PostStepDoIt
265  pManager->SetProcessOrdering(thepMultipleScattering, idxPostStep,1);
266  pManager->SetProcessOrdering(thepIonisation, idxPostStep,2);
267 
268 
269  // anti-proton Physics
271 
272  // add process
273  G4HadronElasticProcess* theapElasticProcess
274  = new G4HadronElasticProcess();
275  G4LElastic* theapElasticModel = new G4LElastic();
276  theapElasticProcess->RegisterMe(theapElasticModel);
277  pManager->AddDiscreteProcess(theapElasticProcess);
278 
279  G4AntiProtonInelasticProcess* theAntiProtonInelasticProcess
281 
282  G4LEAntiProtonInelastic* theAntiProtonLEPModel = new G4LEAntiProtonInelastic();
283  G4HEAntiProtonInelastic* theAntiProtonHEPModel = new G4HEAntiProtonInelastic();
284  theAntiProtonInelasticProcess->RegisterMe(theAntiProtonLEPModel);
285  theAntiProtonInelasticProcess->RegisterMe(theAntiProtonHEPModel);
286  pManager->AddDiscreteProcess(theAntiProtonInelasticProcess);
287 
288  G4AntiProtonAnnihilationAtRest* theAntiProtonAnnihilation
290  pManager->AddRestProcess(theAntiProtonAnnihilation);
291 
292  G4VProcess* theapMultipleScattering = new G4hMultipleScattering();
293  G4VProcess* theapIonisation = new G4hIonisation();
294 
295  pManager->AddProcess(theapIonisation);
296  pManager->AddProcess(theapMultipleScattering);
297 
298  // set ordering for AlongStepDoIt
299  pManager->SetProcessOrdering(theapMultipleScattering, idxAlongStep,1);
300  pManager->SetProcessOrdering(theapIonisation, idxAlongStep,2);
301  //
302  // set ordering for PostStepDoIt
303  pManager->SetProcessOrdering(theapMultipleScattering, idxPostStep,1);
304  pManager->SetProcessOrdering(theapIonisation, idxPostStep,2);
305 
306 
307  // neutron Physics
308  pManager = G4Neutron::Neutron()->GetProcessManager();
309 
310  // add process
311  G4HadronElasticProcess* thenElasticProcess
312  = new G4HadronElasticProcess();
313  G4LElastic* thenElasticModel = new G4LElastic();
314  thenElasticProcess->RegisterMe(thenElasticModel);
315  pManager->AddDiscreteProcess(thenElasticProcess);
316 
317  G4NeutronInelasticProcess* theNeutronInelasticProcess
318  = new G4NeutronInelasticProcess();
319 
320  G4LENeutronInelastic* theNeutronLEPModel = new G4LENeutronInelastic();
321  G4HENeutronInelastic* theNeutronHEPModel = new G4HENeutronInelastic();
322  theNeutronInelasticProcess->RegisterMe(theNeutronLEPModel);
323  theNeutronInelasticProcess->RegisterMe(theNeutronHEPModel);
324  pManager->AddDiscreteProcess(theNeutronInelasticProcess);
325 
326  G4HadronFissionProcess* thenFission
327  = new G4HadronFissionProcess();
328  G4LFission* thenFissionModel = new G4LFission();
329  thenFission->RegisterMe(thenFissionModel);
330  pManager->AddDiscreteProcess(thenFission);
331 
332 
333  G4HadronCaptureProcess* thenCapture
334  = new G4HadronCaptureProcess();
335  G4LCapture* thenCaptureModel = new G4LCapture();
336  thenCapture->RegisterMe(thenCaptureModel);
337  pManager->AddDiscreteProcess(thenCapture);
338 
339 
340  // anti-neutron Physics
342 
343  // add process
344  G4HadronElasticProcess* theanElasticProcess
345  = new G4HadronElasticProcess();
346  G4LElastic* theanElasticModel = new G4LElastic();
347  theanElasticProcess->RegisterMe(theanElasticModel);
348  pManager->AddDiscreteProcess(theanElasticProcess);
349 
350  G4AntiNeutronInelasticProcess* theAntiNeutronInelasticProcess
352 
353  G4LEAntiNeutronInelastic* theAntiNeutronLEPModel = new G4LEAntiNeutronInelastic();
354  G4HEAntiNeutronInelastic* theAntiNeutronHEPModel = new G4HEAntiNeutronInelastic();
355  theAntiNeutronInelasticProcess->RegisterMe(theAntiNeutronLEPModel);
356  theAntiNeutronInelasticProcess->RegisterMe(theAntiNeutronHEPModel);
357  pManager->AddDiscreteProcess(theAntiNeutronInelasticProcess);
358 
359  G4AntiNeutronAnnihilationAtRest* theAntiNeutronAnnihilation
361  pManager->AddRestProcess(theAntiNeutronAnnihilation);
362 
363 
364  // Lambda Physics
365  pManager = G4Lambda::Lambda()->GetProcessManager();
366 
367  // add process
368  G4HadronElasticProcess* thel0ElasticProcess
369  = new G4HadronElasticProcess();
370  G4LElastic* thel0ElasticModel = new G4LElastic();
371  thel0ElasticProcess->RegisterMe(thel0ElasticModel);
372  pManager->AddDiscreteProcess(thel0ElasticProcess);
373 
374  G4LambdaInelasticProcess* theLambdaInelasticProcess
375  = new G4LambdaInelasticProcess();
376 
377  G4LELambdaInelastic* theLambdaLEPModel = new G4LELambdaInelastic();
378  G4HELambdaInelastic* theLambdaHEPModel = new G4HELambdaInelastic();
379  theLambdaInelasticProcess->RegisterMe(theLambdaLEPModel);
380  theLambdaInelasticProcess->RegisterMe(theLambdaHEPModel);
381  pManager->AddDiscreteProcess(theLambdaInelasticProcess);
382 
383 
384  // Anti-Labda Physics
386 
387  // add process
388  G4HadronElasticProcess* theal0ElasticProcess
389  = new G4HadronElasticProcess();
390  G4LElastic* theal0ElasticModel = new G4LElastic();
391  theal0ElasticProcess->RegisterMe(theal0ElasticModel);
392  pManager->AddDiscreteProcess(theal0ElasticProcess);
393 
394  G4AntiLambdaInelasticProcess* theAntiLambdaInelasticProcess
396 
397  G4LEAntiLambdaInelastic* theAntiLambdaLEPModel = new G4LEAntiLambdaInelastic();
398  G4HEAntiLambdaInelastic* theAntiLambdaHEPModel = new G4HEAntiLambdaInelastic();
399  theAntiLambdaInelasticProcess->RegisterMe(theAntiLambdaLEPModel);
400  theAntiLambdaInelasticProcess->RegisterMe(theAntiLambdaHEPModel);
401  pManager->AddDiscreteProcess(theAntiLambdaInelasticProcess);
402 
403 
404  // Sigma+ Physics
406 
407  // add process
408  G4HadronElasticProcess* thespElasticProcess
409  = new G4HadronElasticProcess();
410  G4LElastic* thespElasticModel = new G4LElastic();
411  thespElasticProcess->RegisterMe(thespElasticModel);
412  pManager->AddDiscreteProcess(thespElasticProcess);
413 
414  G4SigmaPlusInelasticProcess* theSigmaPlusInelasticProcess
416 
417  G4LESigmaPlusInelastic* theSigmaPlusLEPModel = new G4LESigmaPlusInelastic();
418  G4HESigmaPlusInelastic* theSigmaPlusHEPModel = new G4HESigmaPlusInelastic();
419  theSigmaPlusInelasticProcess->RegisterMe(theSigmaPlusLEPModel);
420  theSigmaPlusInelasticProcess->RegisterMe(theSigmaPlusHEPModel);
421  pManager->AddDiscreteProcess(theSigmaPlusInelasticProcess);
422 
423  G4VProcess* thespMultipleScattering = new G4hMultipleScattering();
424  G4VProcess* thespIonisation = new G4hIonisation();
425 
426  pManager->AddProcess(thespIonisation);
427  pManager->AddProcess(thespMultipleScattering);
428 
429  // set ordering for AlongStepDoIt
430  pManager->SetProcessOrdering(thespMultipleScattering, idxAlongStep,1);
431  pManager->SetProcessOrdering(thespIonisation, idxAlongStep,2);
432  //
433  // set ordering for PostStepDoIt
434  pManager->SetProcessOrdering(thespMultipleScattering, idxPostStep,1);
435  pManager->SetProcessOrdering(thespIonisation, idxPostStep,2);
436 
437 
438  // anti-Sigma+ Physics
440 
441  // add process
442  G4HadronElasticProcess* theaspElasticProcess
443  = new G4HadronElasticProcess();
444  G4LElastic* theaspElasticModel = new G4LElastic();
445  theaspElasticProcess->RegisterMe(theaspElasticModel);
446  pManager->AddDiscreteProcess(theaspElasticProcess);
447 
448  G4AntiSigmaPlusInelasticProcess* theAntiSigmaPlusInelasticProcess
450 
451  G4LEAntiSigmaPlusInelastic* theAntiSigmaPlusLEPModel = new G4LEAntiSigmaPlusInelastic();
452  G4HEAntiSigmaPlusInelastic* theAntiSigmaPlusHEPModel = new G4HEAntiSigmaPlusInelastic();
453  theAntiSigmaPlusInelasticProcess->RegisterMe(theAntiSigmaPlusLEPModel);
454  theAntiSigmaPlusInelasticProcess->RegisterMe(theAntiSigmaPlusHEPModel);
455  pManager->AddDiscreteProcess(theAntiSigmaPlusInelasticProcess);
456 
457  G4VProcess* theaspMultipleScattering = new G4hMultipleScattering();
458  G4VProcess* theaspIonisation = new G4hIonisation();
459 
460  pManager->AddProcess(theaspIonisation);
461  pManager->AddProcess(theaspMultipleScattering);
462 
463  // set ordering for AlongStepDoIt
464  pManager->SetProcessOrdering(theaspMultipleScattering, idxAlongStep,1);
465  pManager->SetProcessOrdering(theaspIonisation, idxAlongStep,2);
466  //
467  // set ordering for PostStepDoIt
468  pManager->SetProcessOrdering(theaspMultipleScattering, idxPostStep,1);
469  pManager->SetProcessOrdering(theaspIonisation, idxPostStep,2);
470 
471 
472  // Sigma- Physics
474 
475  // add process
476  G4HadronElasticProcess* thesmElasticProcess
477  = new G4HadronElasticProcess();
478  G4LElastic* thesmElasticModel = new G4LElastic();
479  thesmElasticProcess->RegisterMe(thesmElasticModel);
480  pManager->AddDiscreteProcess(thesmElasticProcess);
481 
482  G4SigmaMinusInelasticProcess* theSigmaMinusInelasticProcess
484 
485  G4LESigmaMinusInelastic* theSigmaMinusLEPModel = new G4LESigmaMinusInelastic();
486  G4HESigmaMinusInelastic* theSigmaMinusHEPModel = new G4HESigmaMinusInelastic();
487  theSigmaMinusInelasticProcess->RegisterMe(theSigmaMinusLEPModel);
488  theSigmaMinusInelasticProcess->RegisterMe(theSigmaMinusHEPModel);
489  pManager->AddDiscreteProcess(theSigmaMinusInelasticProcess);
490 
491  G4VProcess* thesmMultipleScattering = new G4hMultipleScattering();
492  G4VProcess* thesmIonisation = new G4hIonisation();
493 
494  pManager->AddProcess(thesmIonisation);
495  pManager->AddProcess(thesmMultipleScattering);
496 
497  // set ordering for AlongStepDoIt
498  pManager->SetProcessOrdering(thesmMultipleScattering, idxAlongStep,1);
499  pManager->SetProcessOrdering(thesmIonisation, idxAlongStep,2);
500  //
501  // set ordering for PostStepDoIt
502  pManager->SetProcessOrdering(thesmMultipleScattering, idxPostStep,1);
503  pManager->SetProcessOrdering(thesmIonisation, idxPostStep,2);
504 
505 
506  // anti-Sigma- Physics
508 
509  // add process
510  G4HadronElasticProcess* theasmElasticProcess
511  = new G4HadronElasticProcess();
512  G4LElastic* theasmElasticModel = new G4LElastic();
513  theasmElasticProcess->RegisterMe(theasmElasticModel);
514  pManager->AddDiscreteProcess(theasmElasticProcess);
515 
516  G4AntiSigmaMinusInelasticProcess* theAntiSigmaMinusInelasticProcess
518 
519  G4LEAntiSigmaMinusInelastic* theAntiSigmaMinusLEPModel = new G4LEAntiSigmaMinusInelastic();
520  G4HEAntiSigmaMinusInelastic* theAntiSigmaMinusHEPModel = new G4HEAntiSigmaMinusInelastic();
521  theAntiSigmaMinusInelasticProcess->RegisterMe(theAntiSigmaMinusLEPModel);
522  theAntiSigmaMinusInelasticProcess->RegisterMe(theAntiSigmaMinusHEPModel);
523  pManager->AddDiscreteProcess(theAntiSigmaMinusInelasticProcess);
524 
525  G4VProcess* theasmMultipleScattering = new G4hMultipleScattering();
526  G4VProcess* theasmIonisation = new G4hIonisation();
527 
528  pManager->AddProcess(theasmIonisation);
529  pManager->AddProcess(theasmMultipleScattering);
530 
531  // set ordering for AlongStepDoIt
532  pManager->SetProcessOrdering(theasmMultipleScattering, idxAlongStep,1);
533  pManager->SetProcessOrdering(theasmIonisation, idxAlongStep,2);
534  //
535  // set ordering for PostStepDoIt
536  pManager->SetProcessOrdering(theasmMultipleScattering, idxPostStep,1);
537  pManager->SetProcessOrdering(theasmIonisation, idxPostStep,2);
538 
539 
540  // Xi0 Physics
541  pManager = G4XiZero::XiZero()->GetProcessManager();
542 
543  // add process
544  G4HadronElasticProcess* thex0ElasticProcess
545  = new G4HadronElasticProcess();
546  G4LElastic* thex0ElasticModel = new G4LElastic();
547  thex0ElasticProcess->RegisterMe(thex0ElasticModel);
548  pManager->AddDiscreteProcess(thex0ElasticProcess);
549 
550  G4XiZeroInelasticProcess* theXiZeroInelasticProcess
551  = new G4XiZeroInelasticProcess();
552 
553  G4LEXiZeroInelastic* theXiZeroLEPModel = new G4LEXiZeroInelastic();
554  G4HEXiZeroInelastic* theXiZeroHEPModel = new G4HEXiZeroInelastic();
555  theXiZeroInelasticProcess->RegisterMe(theXiZeroLEPModel);
556  theXiZeroInelasticProcess->RegisterMe(theXiZeroHEPModel);
557  pManager->AddDiscreteProcess(theXiZeroInelasticProcess);
558 
559 
560  // Anti-Xi0 Physics
562 
563  // add process
564  G4HadronElasticProcess* theax0ElasticProcess
565  = new G4HadronElasticProcess();
566  G4LElastic* theax0ElasticModel = new G4LElastic();
567  theax0ElasticProcess->RegisterMe(theax0ElasticModel);
568  pManager->AddDiscreteProcess(theax0ElasticProcess);
569 
570  G4AntiXiZeroInelasticProcess* theAntiXiZeroInelasticProcess
572 
573  G4LEAntiXiZeroInelastic* theAntiXiZeroLEPModel = new G4LEAntiXiZeroInelastic();
574  G4HEAntiXiZeroInelastic* theAntiXiZeroHEPModel = new G4HEAntiXiZeroInelastic();
575  theAntiXiZeroInelasticProcess->RegisterMe(theAntiXiZeroLEPModel);
576  theAntiXiZeroInelasticProcess->RegisterMe(theAntiXiZeroHEPModel);
577  pManager->AddDiscreteProcess(theAntiXiZeroInelasticProcess);
578 
579 
580  // Xi- Physics
581  pManager = G4XiMinus::XiMinus()->GetProcessManager();
582 
583  // add process
584  G4HadronElasticProcess* thexmElasticProcess
585  = new G4HadronElasticProcess();
586  G4LElastic* thexmElasticModel = new G4LElastic();
587  thexmElasticProcess->RegisterMe(thexmElasticModel);
588  pManager->AddDiscreteProcess(thexmElasticProcess);
589 
590  G4XiMinusInelasticProcess* theXiMinusInelasticProcess
591  = new G4XiMinusInelasticProcess();
592 
593  G4LEXiMinusInelastic* theXiMinusLEPModel = new G4LEXiMinusInelastic();
594  G4HEXiMinusInelastic* theXiMinusHEPModel = new G4HEXiMinusInelastic();
595  theXiMinusInelasticProcess->RegisterMe(theXiMinusLEPModel);
596  theXiMinusInelasticProcess->RegisterMe(theXiMinusHEPModel);
597  pManager->AddDiscreteProcess(theXiMinusInelasticProcess);
598 
599  G4VProcess* thexmMultipleScattering = new G4hMultipleScattering();
600  G4VProcess* thexmIonisation = new G4hIonisation();
601 
602  pManager->AddProcess(thexmIonisation);
603  pManager->AddProcess(thexmMultipleScattering);
604 
605  // set ordering for AlongStepDoIt
606  pManager->SetProcessOrdering(thexmMultipleScattering, idxAlongStep,1);
607  pManager->SetProcessOrdering(thexmIonisation, idxAlongStep,2);
608  //
609  // set ordering for PostStepDoIt
610  pManager->SetProcessOrdering(thexmMultipleScattering, idxPostStep,1);
611  pManager->SetProcessOrdering(thexmIonisation, idxPostStep,2);
612 
613 
614  // anti-Xi- Physics
616 
617  // add process
618  G4HadronElasticProcess* theaxmElasticProcess
619  = new G4HadronElasticProcess();
620  G4LElastic* theaxmElasticModel = new G4LElastic();
621  theaxmElasticProcess->RegisterMe(theaxmElasticModel);
622  pManager->AddDiscreteProcess(theaxmElasticProcess);
623 
624  G4AntiXiMinusInelasticProcess* theAntiXiMinusInelasticProcess
626 
627  G4LEAntiXiMinusInelastic* theAntiXiMinusLEPModel = new G4LEAntiXiMinusInelastic();
628  G4HEAntiXiMinusInelastic* theAntiXiMinusHEPModel = new G4HEAntiXiMinusInelastic();
629  theAntiXiMinusInelasticProcess->RegisterMe(theAntiXiMinusLEPModel);
630  theAntiXiMinusInelasticProcess->RegisterMe(theAntiXiMinusHEPModel);
631  pManager->AddDiscreteProcess(theAntiXiMinusInelasticProcess);
632 
633  G4VProcess* theaxmMultipleScattering = new G4hMultipleScattering();
634  G4VProcess* theaxmIonisation = new G4hIonisation();
635 
636  pManager->AddProcess(theaxmIonisation);
637  pManager->AddProcess(theaxmMultipleScattering);
638 
639  // set ordering for AlongStepDoIt
640  pManager->SetProcessOrdering(theaxmMultipleScattering, idxAlongStep,1);
641  pManager->SetProcessOrdering(theaxmIonisation, idxAlongStep,2);
642  //
643  // set ordering for PostStepDoIt
644  pManager->SetProcessOrdering(theaxmMultipleScattering, idxPostStep,1);
645  pManager->SetProcessOrdering(theaxmIonisation, idxPostStep,2);
646 
647 
648  // Omega- Physics
650 
651  // add process
652  G4HadronElasticProcess* theomElasticProcess
653  = new G4HadronElasticProcess();
654  G4LElastic* theomElasticModel = new G4LElastic();
655  theomElasticProcess->RegisterMe(theomElasticModel);
656  pManager->AddDiscreteProcess(theomElasticProcess);
657 
658  G4OmegaMinusInelasticProcess* theOmegaMinusInelasticProcess
660 
661  G4LEOmegaMinusInelastic* theOmegaMinusLEPModel = new G4LEOmegaMinusInelastic();
662  G4HEOmegaMinusInelastic* theOmegaMinusHEPModel = new G4HEOmegaMinusInelastic();
663  theOmegaMinusInelasticProcess->RegisterMe(theOmegaMinusLEPModel);
664  theOmegaMinusInelasticProcess->RegisterMe(theOmegaMinusHEPModel);
665  pManager->AddDiscreteProcess(theOmegaMinusInelasticProcess);
666 
667  G4VProcess* theomMultipleScattering = new G4hMultipleScattering();
668  G4VProcess* theomIonisation = new G4hIonisation();
669 
670  pManager->AddProcess(theomIonisation);
671  pManager->AddProcess(theomMultipleScattering);
672 
673  // set ordering for AlongStepDoIt
674  pManager->SetProcessOrdering(theomMultipleScattering, idxAlongStep,1);
675  pManager->SetProcessOrdering(theomIonisation, idxAlongStep,2);
676  //
677  // set ordering for PostStepDoIt
678  pManager->SetProcessOrdering(theomMultipleScattering, idxPostStep,1);
679  pManager->SetProcessOrdering(theomIonisation, idxPostStep,2);
680 
681 
682  // anti-Omega- Physics
684 
685  // add process
686  G4HadronElasticProcess* theaomElasticProcess
687  = new G4HadronElasticProcess();
688  G4LElastic* theaomElasticModel = new G4LElastic();
689  theaomElasticProcess->RegisterMe(theaomElasticModel);
690  pManager->AddDiscreteProcess(theaomElasticProcess);
691 
692  G4AntiOmegaMinusInelasticProcess* theAntiOmegaMinusInelasticProcess
694 
695  G4LEAntiOmegaMinusInelastic* theAntiOmegaMinusLEPModel = new G4LEAntiOmegaMinusInelastic();
696  G4HEAntiOmegaMinusInelastic* theAntiOmegaMinusHEPModel = new G4HEAntiOmegaMinusInelastic();
697  theAntiOmegaMinusInelasticProcess->RegisterMe(theAntiOmegaMinusLEPModel);
698  theAntiOmegaMinusInelasticProcess->RegisterMe(theAntiOmegaMinusHEPModel);
699  pManager->AddDiscreteProcess(theAntiOmegaMinusInelasticProcess);
700 
701  G4VProcess* theaomMultipleScattering = new G4hMultipleScattering();
702  G4VProcess* theaomIonisation = new G4hIonisation();
703 
704  pManager->AddProcess(theaomIonisation);
705  pManager->AddProcess(theaomMultipleScattering);
706 
707  // set ordering for AlongStepDoIt
708  pManager->SetProcessOrdering(theaomMultipleScattering, idxAlongStep,1);
709  pManager->SetProcessOrdering(theaomIonisation, idxAlongStep,2);
710  //
711  // set ordering for PostStepDoIt
712  pManager->SetProcessOrdering(theaomMultipleScattering, idxPostStep,1);
713  pManager->SetProcessOrdering(theaomIonisation, idxPostStep,2);
714 
715 }