1 |
cafagna |
1.1 |
|
2 |
|
|
#include "HadronPhysics.hh" |
3 |
|
|
|
4 |
|
|
#include "globals.hh" |
5 |
|
|
#include "G4ios.hh" |
6 |
|
|
|
7 |
|
|
|
8 |
|
|
HadronPhysics::HadronPhysics(const G4String& name) |
9 |
|
|
: G4VPhysicsConstructor(name) |
10 |
|
|
{ |
11 |
|
|
} |
12 |
|
|
|
13 |
|
|
HadronPhysics::~HadronPhysics() |
14 |
|
|
{ |
15 |
|
|
} |
16 |
|
|
|
17 |
|
|
#include "G4ParticleDefinition.hh" |
18 |
|
|
#include "G4ParticleTable.hh" |
19 |
|
|
|
20 |
|
|
// Nuclei |
21 |
|
|
#include "G4MesonConstructor.hh" |
22 |
|
|
#include "G4BaryonConstructor.hh" |
23 |
|
|
#include "G4ShortLivedConstructor.hh" |
24 |
|
|
|
25 |
|
|
void HadronPhysics::ConstructParticle() |
26 |
|
|
{ |
27 |
|
|
// Construct all mesons |
28 |
|
|
G4MesonConstructor pMesonConstructor; |
29 |
|
|
pMesonConstructor.ConstructParticle(); |
30 |
|
|
|
31 |
|
|
// Construct all barions |
32 |
|
|
G4BaryonConstructor pBaryonConstructor; |
33 |
|
|
pBaryonConstructor.ConstructParticle(); |
34 |
|
|
|
35 |
|
|
// Construct resonaces and quarks |
36 |
|
|
G4ShortLivedConstructor pShortLivedConstructor; |
37 |
|
|
pShortLivedConstructor.ConstructParticle(); |
38 |
|
|
|
39 |
|
|
} |
40 |
|
|
|
41 |
|
|
|
42 |
|
|
#include "G4ProcessManager.hh" |
43 |
|
|
|
44 |
|
|
|
45 |
|
|
void HadronPhysics::ConstructProcess() |
46 |
|
|
{ |
47 |
|
|
G4ProcessManager * pManager = 0; |
48 |
|
|
|
49 |
|
|
// Elastic Process |
50 |
|
|
theElasticModel = new G4LElastic(); |
51 |
|
|
theElasticProcess.RegisterMe(theElasticModel); |
52 |
|
|
|
53 |
|
|
// PionPlus |
54 |
|
|
pManager = G4PionPlus::PionPlus()->GetProcessManager(); |
55 |
|
|
// add process |
56 |
|
|
pManager->AddDiscreteProcess(&theElasticProcess); |
57 |
|
|
|
58 |
|
|
theLEPionPlusModel = new G4LEPionPlusInelastic(); |
59 |
|
|
theHEPionPlusModel = new G4HEPionPlusInelastic(); |
60 |
|
|
thePionPlusInelastic.RegisterMe(theLEPionPlusModel); |
61 |
|
|
thePionPlusInelastic.RegisterMe(theHEPionPlusModel); |
62 |
|
|
pManager->AddDiscreteProcess(&thePionPlusInelastic); |
63 |
|
|
|
64 |
|
|
pManager->AddProcess(&thePionPlusIonisation, ordInActive,2, 2); |
65 |
|
|
|
66 |
|
|
pManager->AddProcess(&thePionPlusMult); |
67 |
|
|
pManager->SetProcessOrdering(&thePionPlusMult, idxAlongStep, 1); |
68 |
|
|
pManager->SetProcessOrdering(&thePionPlusMult, idxPostStep, 1); |
69 |
|
|
|
70 |
|
|
// PionMinus |
71 |
|
|
pManager = G4PionMinus::PionMinus()->GetProcessManager(); |
72 |
|
|
// add process |
73 |
|
|
pManager->AddDiscreteProcess(&theElasticProcess); |
74 |
|
|
|
75 |
|
|
theLEPionMinusModel = new G4LEPionMinusInelastic(); |
76 |
|
|
theHEPionMinusModel = new G4HEPionMinusInelastic(); |
77 |
|
|
thePionMinusInelastic.RegisterMe(theLEPionMinusModel); |
78 |
|
|
thePionMinusInelastic.RegisterMe(theHEPionMinusModel); |
79 |
|
|
pManager->AddDiscreteProcess(&thePionMinusInelastic); |
80 |
|
|
|
81 |
|
|
pManager->AddProcess(&thePionMinusIonisation, ordInActive,2, 2); |
82 |
|
|
|
83 |
|
|
pManager->AddProcess(&thePionMinusMult); |
84 |
|
|
pManager->SetProcessOrdering(&thePionMinusMult, idxAlongStep, 1); |
85 |
|
|
pManager->SetProcessOrdering(&thePionMinusMult, idxPostStep, 1); |
86 |
|
|
|
87 |
|
|
pManager->AddRestProcess(&thePionMinusAbsorption, ordDefault); |
88 |
|
|
|
89 |
|
|
// KaonPlus |
90 |
|
|
pManager = G4KaonPlus::KaonPlus()->GetProcessManager(); |
91 |
|
|
// add process |
92 |
|
|
pManager->AddDiscreteProcess(&theElasticProcess); |
93 |
|
|
|
94 |
|
|
theLEKaonPlusModel = new G4LEKaonPlusInelastic(); |
95 |
|
|
theHEKaonPlusModel = new G4HEKaonPlusInelastic(); |
96 |
|
|
theKaonPlusInelastic.RegisterMe(theLEKaonPlusModel); |
97 |
|
|
theKaonPlusInelastic.RegisterMe(theHEKaonPlusModel); |
98 |
|
|
pManager->AddDiscreteProcess(&theKaonPlusInelastic); |
99 |
|
|
|
100 |
|
|
pManager->AddProcess(&theKaonPlusIonisation, ordInActive,2, 2); |
101 |
|
|
|
102 |
|
|
pManager->AddProcess(&theKaonPlusMult); |
103 |
|
|
pManager->SetProcessOrdering(&theKaonPlusMult, idxAlongStep, 1); |
104 |
|
|
pManager->SetProcessOrdering(&theKaonPlusMult, idxPostStep, 1); |
105 |
|
|
|
106 |
|
|
// KaonMinus |
107 |
|
|
pManager = G4KaonMinus::KaonMinus()->GetProcessManager(); |
108 |
|
|
// add process |
109 |
|
|
pManager->AddDiscreteProcess(&theElasticProcess); |
110 |
|
|
|
111 |
|
|
theLEKaonMinusModel = new G4LEKaonMinusInelastic(); |
112 |
|
|
theHEKaonMinusModel = new G4HEKaonMinusInelastic(); |
113 |
|
|
theKaonMinusInelastic.RegisterMe(theLEKaonMinusModel); |
114 |
|
|
theKaonMinusInelastic.RegisterMe(theHEKaonMinusModel); |
115 |
|
|
pManager->AddDiscreteProcess(&theKaonMinusInelastic); |
116 |
|
|
|
117 |
|
|
pManager->AddProcess(&theKaonMinusIonisation, ordInActive,2, 2); |
118 |
|
|
|
119 |
|
|
pManager->AddProcess(&theKaonMinusMult); |
120 |
|
|
pManager->SetProcessOrdering(&theKaonMinusMult, idxAlongStep, 1); |
121 |
|
|
pManager->SetProcessOrdering(&theKaonMinusMult, idxPostStep, 1); |
122 |
|
|
|
123 |
|
|
pManager->AddRestProcess(&theKaonMinusAbsorption, ordDefault); |
124 |
|
|
|
125 |
|
|
// KaonZeroL |
126 |
|
|
pManager = G4KaonZeroLong::KaonZeroLong()->GetProcessManager(); |
127 |
|
|
// add process |
128 |
|
|
pManager->AddDiscreteProcess(&theElasticProcess); |
129 |
|
|
|
130 |
|
|
theLEKaonZeroLModel = new G4LEKaonZeroLInelastic(); |
131 |
|
|
theHEKaonZeroLModel = new G4HEKaonZeroInelastic(); |
132 |
|
|
theKaonZeroLInelastic.RegisterMe(theLEKaonZeroLModel); |
133 |
|
|
theKaonZeroLInelastic.RegisterMe(theHEKaonZeroLModel); |
134 |
|
|
pManager->AddDiscreteProcess(&theKaonZeroLInelastic); |
135 |
|
|
|
136 |
|
|
// KaonZeroS |
137 |
|
|
pManager = G4KaonZeroShort::KaonZeroShort()->GetProcessManager(); |
138 |
|
|
// add process |
139 |
|
|
pManager->AddDiscreteProcess(&theElasticProcess); |
140 |
|
|
|
141 |
|
|
theLEKaonZeroSModel = new G4LEKaonZeroSInelastic(); |
142 |
|
|
theHEKaonZeroSModel = new G4HEKaonZeroInelastic(); |
143 |
|
|
theKaonZeroSInelastic.RegisterMe(theLEKaonZeroSModel); |
144 |
|
|
theKaonZeroSInelastic.RegisterMe(theHEKaonZeroSModel); |
145 |
|
|
pManager->AddDiscreteProcess(&theKaonZeroSInelastic); |
146 |
|
|
|
147 |
|
|
// Proton |
148 |
|
|
pManager = G4Proton::Proton()->GetProcessManager(); |
149 |
|
|
// add process |
150 |
|
|
pManager->AddDiscreteProcess(&theElasticProcess); |
151 |
|
|
|
152 |
|
|
theLEProtonModel = new G4LEProtonInelastic(); |
153 |
|
|
theHEProtonModel = new G4HEProtonInelastic(); |
154 |
|
|
theProtonInelastic.RegisterMe(theLEProtonModel); |
155 |
|
|
theProtonInelastic.RegisterMe(theHEProtonModel); |
156 |
|
|
pManager->AddDiscreteProcess(&theProtonInelastic); |
157 |
|
|
|
158 |
|
|
pManager->AddProcess(&theProtonIonisation, ordInActive,2, 2); |
159 |
|
|
|
160 |
|
|
pManager->AddProcess(&theProtonMult); |
161 |
|
|
pManager->SetProcessOrdering(&theProtonMult, idxAlongStep, 1); |
162 |
|
|
pManager->SetProcessOrdering(&theProtonMult, idxPostStep, 1); |
163 |
|
|
|
164 |
|
|
// anti-Proton |
165 |
|
|
pManager = G4AntiProton::AntiProton()->GetProcessManager(); |
166 |
|
|
// add process |
167 |
|
|
pManager->AddDiscreteProcess(&theElasticProcess); |
168 |
|
|
|
169 |
|
|
theLEAntiProtonModel = new G4LEAntiProtonInelastic(); |
170 |
|
|
theHEAntiProtonModel = new G4HEAntiProtonInelastic(); |
171 |
|
|
theAntiProtonInelastic.RegisterMe(theLEAntiProtonModel); |
172 |
|
|
theAntiProtonInelastic.RegisterMe(theHEAntiProtonModel); |
173 |
|
|
pManager->AddDiscreteProcess(&theAntiProtonInelastic); |
174 |
|
|
|
175 |
|
|
pManager->AddProcess(&theAntiProtonIonisation, ordInActive,2, 2); |
176 |
|
|
|
177 |
|
|
pManager->AddProcess(&theAntiProtonMult); |
178 |
|
|
pManager->SetProcessOrdering(&theAntiProtonMult, idxAlongStep, 1); |
179 |
|
|
pManager->SetProcessOrdering(&theAntiProtonMult, idxPostStep, 1); |
180 |
|
|
|
181 |
|
|
pManager->AddRestProcess(&theAntiProtonAnnihilation); |
182 |
|
|
|
183 |
|
|
// Neutron |
184 |
|
|
pManager = G4Neutron::Neutron()->GetProcessManager(); |
185 |
|
|
// add process |
186 |
|
|
|
187 |
|
|
// elastic scattering |
188 |
|
|
theNeutronElasticProcess = new G4HadronElasticProcess; |
189 |
|
|
theElasticModel1 = new G4LElastic; |
190 |
|
|
theElasticNeutron = new G4NeutronHPElastic; |
191 |
|
|
theNeutronElasticProcess->RegisterMe(theElasticModel1); |
192 |
|
|
theElasticModel1->SetMinEnergy(19.9*MeV); |
193 |
|
|
theNeutronElasticProcess->RegisterMe(theElasticNeutron); |
194 |
|
|
theNeutronData = new G4NeutronHPElasticData; |
195 |
|
|
theNeutronElasticProcess->AddDataSet(theNeutronData); |
196 |
|
|
pManager->AddDiscreteProcess(theNeutronElasticProcess); |
197 |
|
|
|
198 |
|
|
// inelastic scattering |
199 |
|
|
theInelasticProcess =new G4NeutronInelasticProcess("inelastic"); |
200 |
|
|
theInelasticModel = new G4LENeutronInelastic; |
201 |
|
|
theHEInelasticModel = new G4HENeutronInelastic(); |
202 |
|
|
theInelasticModel->SetMinEnergy(19.9*MeV); |
203 |
|
|
theInelasticModel->SetMaxEnergy(55*GeV); |
204 |
|
|
theHEInelasticModel->SetMinEnergy(25*GeV); |
205 |
|
|
theInelasticProcess->RegisterMe(theInelasticModel); |
206 |
|
|
theLENeutronInelasticModel =new G4NeutronHPInelastic; |
207 |
|
|
theInelasticProcess->RegisterMe(theLENeutronInelasticModel); |
208 |
|
|
theInelasticProcess->RegisterMe(theHEInelasticModel); |
209 |
|
|
theNeutronData1 = new G4NeutronHPInelasticData; |
210 |
|
|
theInelasticProcess->AddDataSet(theNeutronData1); |
211 |
|
|
pManager->AddDiscreteProcess(theInelasticProcess); |
212 |
|
|
|
213 |
|
|
|
214 |
|
|
// aProductionModel = new G4NeutronIsotopeProduction; |
215 |
|
|
// theInelasticProcess->RegisterIsotopeProductionModel(aProductionModel); |
216 |
|
|
// G4HadronicProcess::EnableIsotopeProductionGlobally(); |
217 |
|
|
//fission |
218 |
|
|
|
219 |
|
|
|
220 |
|
|
theFissionProcess = new G4HadronFissionProcess; |
221 |
|
|
theFissionModel = new G4LFission; |
222 |
|
|
theFissionModel->SetMinEnergy(19.9*MeV); |
223 |
|
|
theFissionProcess->RegisterMe(theFissionModel); |
224 |
|
|
theLENeutronFissionModel = new G4NeutronHPFission; |
225 |
|
|
theFissionProcess->RegisterMe(theLENeutronFissionModel); |
226 |
|
|
theNeutronData2 = new G4NeutronHPFissionData; |
227 |
|
|
theFissionProcess->AddDataSet(theNeutronData2); |
228 |
|
|
pManager->AddDiscreteProcess(theFissionProcess); |
229 |
|
|
|
230 |
|
|
// capture |
231 |
|
|
theCaptureProcess = new G4HadronCaptureProcess; |
232 |
|
|
theCaptureModel = new G4LCapture; |
233 |
|
|
theCaptureModel->SetMinEnergy(19.9*MeV); |
234 |
|
|
theCaptureProcess->RegisterMe(theCaptureModel); |
235 |
|
|
theLENeutronCaptureModel = new G4NeutronHPCapture; |
236 |
|
|
theCaptureProcess->RegisterMe(theLENeutronCaptureModel); |
237 |
|
|
theNeutronData3 = new G4NeutronHPCaptureData; |
238 |
|
|
theCaptureProcess->AddDataSet(theNeutronData3); |
239 |
|
|
pManager->AddDiscreteProcess(theCaptureProcess); |
240 |
|
|
|
241 |
|
|
// AntiNeutron |
242 |
|
|
pManager = G4AntiNeutron::AntiNeutron()->GetProcessManager(); |
243 |
|
|
// add process |
244 |
|
|
pManager->AddDiscreteProcess(&theElasticProcess); |
245 |
|
|
|
246 |
|
|
theLEAntiNeutronModel = new G4LEAntiNeutronInelastic(); |
247 |
|
|
theHEAntiNeutronModel = new G4HEAntiNeutronInelastic(); |
248 |
|
|
theAntiNeutronInelastic.RegisterMe(theLEAntiNeutronModel); |
249 |
|
|
theAntiNeutronInelastic.RegisterMe(theHEAntiNeutronModel); |
250 |
|
|
pManager->AddDiscreteProcess(&theAntiNeutronInelastic); |
251 |
|
|
|
252 |
|
|
pManager->AddRestProcess(&theAntiNeutronAnnihilation); |
253 |
|
|
|
254 |
|
|
// Lambda |
255 |
|
|
pManager = G4Lambda::Lambda()->GetProcessManager(); |
256 |
|
|
// add process |
257 |
|
|
pManager->AddDiscreteProcess(&theElasticProcess); |
258 |
|
|
|
259 |
|
|
theLELambdaModel = new G4LELambdaInelastic(); |
260 |
|
|
theHELambdaModel = new G4HELambdaInelastic(); |
261 |
|
|
theLambdaInelastic.RegisterMe(theLELambdaModel); |
262 |
|
|
theLambdaInelastic.RegisterMe(theHELambdaModel); |
263 |
|
|
pManager->AddDiscreteProcess(&theLambdaInelastic); |
264 |
|
|
|
265 |
|
|
// AntiLambda |
266 |
|
|
pManager = G4AntiLambda::AntiLambda()->GetProcessManager(); |
267 |
|
|
// add process |
268 |
|
|
pManager->AddDiscreteProcess(&theElasticProcess); |
269 |
|
|
|
270 |
|
|
theLEAntiLambdaModel = new G4LEAntiLambdaInelastic(); |
271 |
|
|
theHEAntiLambdaModel = new G4HEAntiLambdaInelastic(); |
272 |
|
|
theAntiLambdaInelastic.RegisterMe(theLEAntiLambdaModel); |
273 |
|
|
theAntiLambdaInelastic.RegisterMe(theHEAntiLambdaModel); |
274 |
|
|
pManager->AddDiscreteProcess(&theAntiLambdaInelastic); |
275 |
|
|
|
276 |
|
|
// SigmaMinus |
277 |
|
|
pManager = G4SigmaMinus::SigmaMinus()->GetProcessManager(); |
278 |
|
|
// add process |
279 |
|
|
pManager->AddDiscreteProcess(&theElasticProcess); |
280 |
|
|
|
281 |
|
|
theLESigmaMinusModel = new G4LESigmaMinusInelastic(); |
282 |
|
|
theHESigmaMinusModel = new G4HESigmaMinusInelastic(); |
283 |
|
|
theSigmaMinusInelastic.RegisterMe(theLESigmaMinusModel); |
284 |
|
|
theSigmaMinusInelastic.RegisterMe(theHESigmaMinusModel); |
285 |
|
|
pManager->AddDiscreteProcess(&theSigmaMinusInelastic); |
286 |
|
|
|
287 |
|
|
pManager->AddProcess(&theSigmaMinusIonisation, ordInActive,2, 2); |
288 |
|
|
|
289 |
|
|
pManager->AddProcess(&theSigmaMinusMult); |
290 |
|
|
pManager->SetProcessOrdering(&theSigmaMinusMult, idxAlongStep, 1); |
291 |
|
|
pManager->SetProcessOrdering(&theSigmaMinusMult, idxPostStep, 1); |
292 |
|
|
|
293 |
|
|
// anti-SigmaMinus |
294 |
|
|
pManager = G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager(); |
295 |
|
|
// add process |
296 |
|
|
pManager->AddDiscreteProcess(&theElasticProcess); |
297 |
|
|
|
298 |
|
|
theLEAntiSigmaMinusModel = new G4LEAntiSigmaMinusInelastic(); |
299 |
|
|
theHEAntiSigmaMinusModel = new G4HEAntiSigmaMinusInelastic(); |
300 |
|
|
theAntiSigmaMinusInelastic.RegisterMe(theLEAntiSigmaMinusModel); |
301 |
|
|
theAntiSigmaMinusInelastic.RegisterMe(theHEAntiSigmaMinusModel); |
302 |
|
|
pManager->AddDiscreteProcess(&theAntiSigmaMinusInelastic); |
303 |
|
|
|
304 |
|
|
pManager->AddProcess(&theAntiSigmaMinusIonisation, ordInActive,2, 2); |
305 |
|
|
|
306 |
|
|
pManager->AddProcess(&theAntiSigmaMinusMult); |
307 |
|
|
pManager->SetProcessOrdering(&theAntiSigmaMinusMult, idxAlongStep, 1); |
308 |
|
|
pManager->SetProcessOrdering(&theAntiSigmaMinusMult, idxPostStep, 1); |
309 |
|
|
|
310 |
|
|
// SigmaPlus |
311 |
|
|
pManager = G4SigmaPlus::SigmaPlus()->GetProcessManager(); |
312 |
|
|
// add process |
313 |
|
|
pManager->AddDiscreteProcess(&theElasticProcess); |
314 |
|
|
|
315 |
|
|
theLESigmaPlusModel = new G4LESigmaPlusInelastic(); |
316 |
|
|
theHESigmaPlusModel = new G4HESigmaPlusInelastic(); |
317 |
|
|
theSigmaPlusInelastic.RegisterMe(theLESigmaPlusModel); |
318 |
|
|
theSigmaPlusInelastic.RegisterMe(theHESigmaPlusModel); |
319 |
|
|
pManager->AddDiscreteProcess(&theSigmaPlusInelastic); |
320 |
|
|
|
321 |
|
|
pManager->AddProcess(&theSigmaPlusIonisation, ordInActive,2, 2); |
322 |
|
|
|
323 |
|
|
pManager->AddProcess(&theSigmaPlusMult); |
324 |
|
|
pManager->SetProcessOrdering(&theSigmaPlusMult, idxAlongStep, 1); |
325 |
|
|
pManager->SetProcessOrdering(&theSigmaPlusMult, idxPostStep, 1); |
326 |
|
|
|
327 |
|
|
// anti-SigmaPlus |
328 |
|
|
pManager = G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager(); |
329 |
|
|
// add process |
330 |
|
|
pManager->AddDiscreteProcess(&theElasticProcess); |
331 |
|
|
|
332 |
|
|
theLEAntiSigmaPlusModel = new G4LEAntiSigmaPlusInelastic(); |
333 |
|
|
theHEAntiSigmaPlusModel = new G4HEAntiSigmaPlusInelastic(); |
334 |
|
|
theAntiSigmaPlusInelastic.RegisterMe(theLEAntiSigmaPlusModel); |
335 |
|
|
theAntiSigmaPlusInelastic.RegisterMe(theHEAntiSigmaPlusModel); |
336 |
|
|
pManager->AddDiscreteProcess(&theAntiSigmaPlusInelastic); |
337 |
|
|
|
338 |
|
|
pManager->AddProcess(&theAntiSigmaPlusIonisation, ordInActive,2, 2); |
339 |
|
|
|
340 |
|
|
pManager->AddProcess(&theAntiSigmaPlusMult); |
341 |
|
|
pManager->SetProcessOrdering(&theAntiSigmaPlusMult, idxAlongStep, 1); |
342 |
|
|
pManager->SetProcessOrdering(&theAntiSigmaPlusMult, idxPostStep, 1); |
343 |
|
|
|
344 |
|
|
// XiMinus |
345 |
|
|
pManager = G4XiMinus::XiMinus()->GetProcessManager(); |
346 |
|
|
// add process |
347 |
|
|
pManager->AddDiscreteProcess(&theElasticProcess); |
348 |
|
|
|
349 |
|
|
theLEXiMinusModel = new G4LEXiMinusInelastic(); |
350 |
|
|
theHEXiMinusModel = new G4HEXiMinusInelastic(); |
351 |
|
|
theXiMinusInelastic.RegisterMe(theLEXiMinusModel); |
352 |
|
|
theXiMinusInelastic.RegisterMe(theHEXiMinusModel); |
353 |
|
|
pManager->AddDiscreteProcess(&theXiMinusInelastic); |
354 |
|
|
|
355 |
|
|
pManager->AddProcess(&theXiMinusIonisation, ordInActive,2, 2); |
356 |
|
|
|
357 |
|
|
pManager->AddProcess(&theXiMinusMult); |
358 |
|
|
pManager->SetProcessOrdering(&theXiMinusMult, idxAlongStep, 1); |
359 |
|
|
pManager->SetProcessOrdering(&theXiMinusMult, idxPostStep, 1); |
360 |
|
|
|
361 |
|
|
// anti-XiMinus |
362 |
|
|
pManager = G4AntiXiMinus::AntiXiMinus()->GetProcessManager(); |
363 |
|
|
// add process |
364 |
|
|
pManager->AddDiscreteProcess(&theElasticProcess); |
365 |
|
|
|
366 |
|
|
theLEAntiXiMinusModel = new G4LEAntiXiMinusInelastic(); |
367 |
|
|
theHEAntiXiMinusModel = new G4HEAntiXiMinusInelastic(); |
368 |
|
|
theAntiXiMinusInelastic.RegisterMe(theLEAntiXiMinusModel); |
369 |
|
|
theAntiXiMinusInelastic.RegisterMe(theHEAntiXiMinusModel); |
370 |
|
|
pManager->AddDiscreteProcess(&theAntiXiMinusInelastic); |
371 |
|
|
|
372 |
|
|
pManager->AddProcess(&theAntiXiMinusIonisation, ordInActive,2, 2); |
373 |
|
|
|
374 |
|
|
pManager->AddProcess(&theAntiXiMinusMult); |
375 |
|
|
pManager->SetProcessOrdering(&theAntiXiMinusMult, idxAlongStep, 1); |
376 |
|
|
pManager->SetProcessOrdering(&theAntiXiMinusMult, idxPostStep, 1); |
377 |
|
|
|
378 |
|
|
// XiZero |
379 |
|
|
pManager = G4XiZero::XiZero()->GetProcessManager(); |
380 |
|
|
// add process |
381 |
|
|
pManager->AddDiscreteProcess(&theElasticProcess); |
382 |
|
|
|
383 |
|
|
theLEXiZeroModel = new G4LEXiZeroInelastic(); |
384 |
|
|
theHEXiZeroModel = new G4HEXiZeroInelastic(); |
385 |
|
|
theXiZeroInelastic.RegisterMe(theLEXiZeroModel); |
386 |
|
|
theXiZeroInelastic.RegisterMe(theHEXiZeroModel); |
387 |
|
|
pManager->AddDiscreteProcess(&theXiZeroInelastic); |
388 |
|
|
|
389 |
|
|
// anti-XiZero |
390 |
|
|
pManager = G4AntiXiZero::AntiXiZero()->GetProcessManager(); |
391 |
|
|
// add process |
392 |
|
|
pManager->AddDiscreteProcess(&theElasticProcess); |
393 |
|
|
|
394 |
|
|
theLEAntiXiZeroModel = new G4LEAntiXiZeroInelastic(); |
395 |
|
|
theHEAntiXiZeroModel = new G4HEAntiXiZeroInelastic(); |
396 |
|
|
theAntiXiZeroInelastic.RegisterMe(theLEAntiXiZeroModel); |
397 |
|
|
theAntiXiZeroInelastic.RegisterMe(theHEAntiXiZeroModel); |
398 |
|
|
pManager->AddDiscreteProcess(&theAntiXiZeroInelastic); |
399 |
|
|
|
400 |
|
|
// OmegaMinus |
401 |
|
|
pManager = G4OmegaMinus::OmegaMinus()->GetProcessManager(); |
402 |
|
|
// add process |
403 |
|
|
pManager->AddDiscreteProcess(&theElasticProcess); |
404 |
|
|
|
405 |
|
|
theLEOmegaMinusModel = new G4LEOmegaMinusInelastic(); |
406 |
|
|
theHEOmegaMinusModel = new G4HEOmegaMinusInelastic(); |
407 |
|
|
theOmegaMinusInelastic.RegisterMe(theLEOmegaMinusModel); |
408 |
|
|
theOmegaMinusInelastic.RegisterMe(theHEOmegaMinusModel); |
409 |
|
|
pManager->AddDiscreteProcess(&theOmegaMinusInelastic); |
410 |
|
|
|
411 |
|
|
pManager->AddProcess(&theOmegaMinusIonisation, ordInActive,2, 2); |
412 |
|
|
|
413 |
|
|
pManager->AddProcess(&theOmegaMinusMult); |
414 |
|
|
pManager->SetProcessOrdering(&theOmegaMinusMult, idxAlongStep, 1); |
415 |
|
|
pManager->SetProcessOrdering(&theOmegaMinusMult, idxPostStep, 1); |
416 |
|
|
|
417 |
|
|
// anti-OmegaMinus |
418 |
|
|
pManager = G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager(); |
419 |
|
|
// add process |
420 |
|
|
pManager->AddDiscreteProcess(&theElasticProcess); |
421 |
|
|
|
422 |
|
|
theLEAntiOmegaMinusModel = new G4LEAntiOmegaMinusInelastic(); |
423 |
|
|
theHEAntiOmegaMinusModel = new G4HEAntiOmegaMinusInelastic(); |
424 |
|
|
theAntiOmegaMinusInelastic.RegisterMe(theLEAntiOmegaMinusModel); |
425 |
|
|
theAntiOmegaMinusInelastic.RegisterMe(theHEAntiOmegaMinusModel); |
426 |
|
|
pManager->AddDiscreteProcess(&theAntiOmegaMinusInelastic); |
427 |
|
|
|
428 |
|
|
pManager->AddProcess(&theAntiOmegaMinusIonisation, ordInActive,2, 2); |
429 |
|
|
|
430 |
|
|
pManager->AddProcess(&theAntiOmegaMinusMult); |
431 |
|
|
pManager->SetProcessOrdering(&theAntiOmegaMinusMult, idxAlongStep, 1); |
432 |
|
|
pManager->SetProcessOrdering(&theAntiOmegaMinusMult, idxPostStep, 1); |
433 |
|
|
|
434 |
|
|
} |
435 |
|
|
|
436 |
|
|
|
437 |
|
|
|
438 |
|
|
|
439 |
|
|
|