BOSS 7.1.0
BESIII Offline Software System
Loading...
Searching...
No Matches
BesHadronPhysics Class Reference

#include <BesHadronPhysics.hh>

+ Inheritance diagram for BesHadronPhysics:

Public Member Functions

 BesHadronPhysics (const G4String &name="hadron")
 
virtual ~BesHadronPhysics ()
 
virtual void ConstructParticle ()
 
virtual void ConstructProcess ()
 

Detailed Description

Definition at line 125 of file BesHadronPhysics.hh.

Constructor & Destructor Documentation

◆ BesHadronPhysics()

BesHadronPhysics::BesHadronPhysics ( const G4String &  name = "hadron")

Definition at line 9 of file BesHadronPhysics.cc.

10 : G4VPhysicsConstructor(name)
11{
12}

◆ ~BesHadronPhysics()

BesHadronPhysics::~BesHadronPhysics ( )
virtual

Definition at line 14 of file BesHadronPhysics.cc.

15{
16//AZ delete theStringDecay;
17}

Member Function Documentation

◆ ConstructParticle()

void BesHadronPhysics::ConstructParticle ( )
virtual

Definition at line 27 of file BesHadronPhysics.cc.

28{
29 // Construct all mesons
30 G4MesonConstructor pMesonConstructor;
31 pMesonConstructor.ConstructParticle();
32
33 // Construct all barions
34 G4BaryonConstructor pBaryonConstructor;
35 pBaryonConstructor.ConstructParticle();
36
37 // Construct resonaces and quarks
38 G4ShortLivedConstructor pShortLivedConstructor;
39 pShortLivedConstructor.ConstructParticle();
40
41}

◆ ConstructProcess()

void BesHadronPhysics::ConstructProcess ( )
virtual

Definition at line 47 of file BesHadronPhysics.cc.

48{
49 /*
50 G4ProcessManager * pManager = 0;
51 G4cout << "" << G4endl;
52 G4cout << "You are using the ExN04HadronPhysics" << G4endl;
53 G4cout << " - Note that this hadronic physics list is not optimized for any particular usage" << G4endl;
54 G4cout << " - If you wish to have a starting point tailored for a particular area of work," << G4endl;
55 G4cout << " please use one of the available physics lists by use-case." << G4endl;
56 G4cout << " More information can also be found from the Geant4 HyperNews." << G4endl;
57 G4cout << "" << G4endl;
58 // Elastic Process
59 theElasticModel = new G4LElastic();
60 theElasticProcess.RegisterMe(theElasticModel);
61
62 // pi+ and pi-
63
64 thePreEquilib = new G4PreCompoundModel(&theHandler);
65 theCascade.SetDeExcitation(thePreEquilib);
66 theTheoModel.SetTransport(&theCascade);
67 theTheoModel.SetHighEnergyGenerator(theStringModel);
68 theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
69 theStringModel->SetFragmentationModel(theStringDecay);
70 theTheoModel.SetMinEnergy(15*GeV);
71 theTheoModel.SetMaxEnergy(100*TeV);
72 // PionPlus
73 pManager = G4PionPlus::PionPlus()->GetProcessManager();
74 // add process
75 pManager->AddDiscreteProcess(&theElasticProcess);
76
77 theLEPionPlusModel = new G4LEPionPlusInelastic();
78 thePionPlusInelastic.RegisterMe(theLEPionPlusModel);
79// thePionPlusInelastic.RegisterMe(&theTheoModel);
80 pManager->AddDiscreteProcess(&thePionPlusInelastic);
81
82 pManager->AddProcess(&thePionPlusIonisation, ordInActive,2, 2);
83
84 pManager->AddProcess(&thePionPlusMult);
85 pManager->SetProcessOrdering(&thePionPlusMult, idxAlongStep, 1);
86 pManager->SetProcessOrdering(&thePionPlusMult, idxPostStep, 1);
87
88 // PionMinus
89 pManager = G4PionMinus::PionMinus()->GetProcessManager();
90 // add process
91 pManager->AddDiscreteProcess(&theElasticProcess);
92
93 theLEPionMinusModel = new G4LEPionMinusInelastic();
94 thePionMinusInelastic.RegisterMe(theLEPionMinusModel);
95// thePionMinusInelastic.RegisterMe(&theTheoModel);
96 pManager->AddDiscreteProcess(&thePionMinusInelastic);
97
98 pManager->AddProcess(&thePionMinusIonisation, ordInActive,2, 2);
99
100 pManager->AddProcess(&thePionMinusMult);
101 pManager->SetProcessOrdering(&thePionMinusMult, idxAlongStep, 1);
102 pManager->SetProcessOrdering(&thePionMinusMult, idxPostStep, 1);
103
104 pManager->AddRestProcess(&thePionMinusAbsorption, ordDefault);
105
106 // KaonPlus
107 pManager = G4KaonPlus::KaonPlus()->GetProcessManager();
108 // add process
109 pManager->AddDiscreteProcess(&theElasticProcess);
110
111 theLEKaonPlusModel = new G4LEKaonPlusInelastic();
112 theHEKaonPlusModel = new G4HEKaonPlusInelastic();
113 theKaonPlusInelastic.RegisterMe(theLEKaonPlusModel);
114// theKaonPlusInelastic.RegisterMe(&theTheoModel);
115 pManager->AddDiscreteProcess(&theKaonPlusInelastic);
116
117 pManager->AddProcess(&theKaonPlusIonisation, ordInActive,2, 2);
118
119 pManager->AddProcess(&theKaonPlusMult);
120 pManager->SetProcessOrdering(&theKaonPlusMult, idxAlongStep, 1);
121 pManager->SetProcessOrdering(&theKaonPlusMult, idxPostStep, 1);
122
123 // KaonMinus
124 pManager = G4KaonMinus::KaonMinus()->GetProcessManager();
125 // add process
126 pManager->AddDiscreteProcess(&theElasticProcess);
127
128 theLEKaonMinusModel = new G4LEKaonMinusInelastic();
129 theHEKaonMinusModel = new G4HEKaonMinusInelastic();
130 theKaonMinusInelastic.RegisterMe(theLEKaonMinusModel);
131 theKaonMinusInelastic.RegisterMe(theHEKaonMinusModel);
132 pManager->AddDiscreteProcess(&theKaonMinusInelastic);
133
134 pManager->AddProcess(&theKaonMinusIonisation, ordInActive,2, 2);
135
136 pManager->AddProcess(&theKaonMinusMult);
137 pManager->SetProcessOrdering(&theKaonMinusMult, idxAlongStep, 1);
138 pManager->SetProcessOrdering(&theKaonMinusMult, idxPostStep, 1);
139
140 pManager->AddRestProcess(&theKaonMinusAbsorption, ordDefault);
141
142 // KaonZeroL
143 pManager = G4KaonZeroLong::KaonZeroLong()->GetProcessManager();
144 // add process
145 pManager->AddDiscreteProcess(&theElasticProcess);
146
147 theLEKaonZeroLModel = new G4LEKaonZeroLInelastic();
148 theHEKaonZeroLModel = new G4HEKaonZeroInelastic();
149 theKaonZeroLInelastic.RegisterMe(theLEKaonZeroLModel);
150 theKaonZeroLInelastic.RegisterMe(theHEKaonZeroLModel);
151 pManager->AddDiscreteProcess(&theKaonZeroLInelastic);
152
153 // KaonZeroS
154 pManager = G4KaonZeroShort::KaonZeroShort()->GetProcessManager();
155 // add process
156 pManager->AddDiscreteProcess(&theElasticProcess);
157
158 theLEKaonZeroSModel = new G4LEKaonZeroSInelastic();
159 theHEKaonZeroSModel = new G4HEKaonZeroInelastic();
160 theKaonZeroSInelastic.RegisterMe(theLEKaonZeroSModel);
161 theKaonZeroSInelastic.RegisterMe(theHEKaonZeroSModel);
162 pManager->AddDiscreteProcess(&theKaonZeroSInelastic);
163
164 // Proton
165 pManager = G4Proton::Proton()->GetProcessManager();
166 // add process
167 pManager->AddDiscreteProcess(&theElasticProcess);
168
169 theLEProtonModel = new G4LEProtonInelastic();
170 theHEProtonModel = new G4HEProtonInelastic();
171 theProtonInelastic.RegisterMe(theLEProtonModel);
172// theProtonInelastic.RegisterMe(&theTheoModel);
173 pManager->AddDiscreteProcess(&theProtonInelastic);
174
175 pManager->AddProcess(&theProtonIonisation, ordInActive,2, 2);
176
177 pManager->AddProcess(&theProtonMult);
178 pManager->SetProcessOrdering(&theProtonMult, idxAlongStep, 1);
179 pManager->SetProcessOrdering(&theProtonMult, idxPostStep, 1);
180
181 // anti-Proton
182 pManager = G4AntiProton::AntiProton()->GetProcessManager();
183 // add process
184 pManager->AddDiscreteProcess(&theElasticProcess);
185
186 theLEAntiProtonModel = new G4LEAntiProtonInelastic();
187 theHEAntiProtonModel = new G4HEAntiProtonInelastic();
188 theAntiProtonInelastic.RegisterMe(theLEAntiProtonModel);
189 theAntiProtonInelastic.RegisterMe(theHEAntiProtonModel);
190 pManager->AddDiscreteProcess(&theAntiProtonInelastic);
191
192 pManager->AddProcess(&theAntiProtonIonisation, ordInActive,2, 2);
193
194 pManager->AddProcess(&theAntiProtonMult);
195 pManager->SetProcessOrdering(&theAntiProtonMult, idxAlongStep, 1);
196 pManager->SetProcessOrdering(&theAntiProtonMult, idxPostStep, 1);
197
198 pManager->AddRestProcess(&theAntiProtonAnnihilation);
199
200 // Neutron
201 pManager = G4Neutron::Neutron()->GetProcessManager();
202 // add process
203 pManager->AddDiscreteProcess(&theElasticProcess);
204
205 theLENeutronModel = new G4LENeutronInelastic();
206 theHENeutronModel = new G4HENeutronInelastic();
207 theNeutronInelastic.RegisterMe(theLENeutronModel);
208// theNeutronInelastic.RegisterMe(&theTheoModel);
209 pManager->AddDiscreteProcess(&theNeutronInelastic);
210
211 theNeutronFissionModel = new G4LFission();
212 theNeutronFission.RegisterMe(theNeutronFissionModel);
213 pManager->AddDiscreteProcess(&theNeutronFission);
214
215 theNeutronCaptureModel = new G4LCapture();
216 theNeutronCapture.RegisterMe(theNeutronCaptureModel);
217 pManager->AddDiscreteProcess(&theNeutronCapture);
218
219 // AntiNeutron
220 pManager = G4AntiNeutron::AntiNeutron()->GetProcessManager();
221 // add process
222 pManager->AddDiscreteProcess(&theElasticProcess);
223
224 theLEAntiNeutronModel = new G4LEAntiNeutronInelastic();
225 theHEAntiNeutronModel = new G4HEAntiNeutronInelastic();
226 theAntiNeutronInelastic.RegisterMe(theLEAntiNeutronModel);
227 theAntiNeutronInelastic.RegisterMe(theHEAntiNeutronModel);
228 pManager->AddDiscreteProcess(&theAntiNeutronInelastic);
229
230 pManager->AddRestProcess(&theAntiNeutronAnnihilation);
231
232 // Lambda
233 pManager = G4Lambda::Lambda()->GetProcessManager();
234 // add process
235 pManager->AddDiscreteProcess(&theElasticProcess);
236
237 theLELambdaModel = new G4LELambdaInelastic();
238 theHELambdaModel = new G4HELambdaInelastic();
239 theLambdaInelastic.RegisterMe(theLELambdaModel);
240 theLambdaInelastic.RegisterMe(theHELambdaModel);
241 pManager->AddDiscreteProcess(&theLambdaInelastic);
242
243 // AntiLambda
244 pManager = G4AntiLambda::AntiLambda()->GetProcessManager();
245 // add process
246 pManager->AddDiscreteProcess(&theElasticProcess);
247
248 theLEAntiLambdaModel = new G4LEAntiLambdaInelastic();
249 theHEAntiLambdaModel = new G4HEAntiLambdaInelastic();
250 theAntiLambdaInelastic.RegisterMe(theLEAntiLambdaModel);
251 theAntiLambdaInelastic.RegisterMe(theHEAntiLambdaModel);
252 pManager->AddDiscreteProcess(&theAntiLambdaInelastic);
253
254 // SigmaMinus
255 pManager = G4SigmaMinus::SigmaMinus()->GetProcessManager();
256 // add process
257 pManager->AddDiscreteProcess(&theElasticProcess);
258
259 theLESigmaMinusModel = new G4LESigmaMinusInelastic();
260 theHESigmaMinusModel = new G4HESigmaMinusInelastic();
261 theSigmaMinusInelastic.RegisterMe(theLESigmaMinusModel);
262 theSigmaMinusInelastic.RegisterMe(theHESigmaMinusModel);
263 pManager->AddDiscreteProcess(&theSigmaMinusInelastic);
264
265 pManager->AddProcess(&theSigmaMinusIonisation, ordInActive,2, 2);
266
267 pManager->AddProcess(&theSigmaMinusMult);
268 pManager->SetProcessOrdering(&theSigmaMinusMult, idxAlongStep, 1);
269 pManager->SetProcessOrdering(&theSigmaMinusMult, idxPostStep, 1);
270
271 // anti-SigmaMinus
272 pManager = G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager();
273 // add process
274 pManager->AddDiscreteProcess(&theElasticProcess);
275
276 theLEAntiSigmaMinusModel = new G4LEAntiSigmaMinusInelastic();
277 theHEAntiSigmaMinusModel = new G4HEAntiSigmaMinusInelastic();
278 theAntiSigmaMinusInelastic.RegisterMe(theLEAntiSigmaMinusModel);
279 theAntiSigmaMinusInelastic.RegisterMe(theHEAntiSigmaMinusModel);
280 pManager->AddDiscreteProcess(&theAntiSigmaMinusInelastic);
281
282 pManager->AddProcess(&theAntiSigmaMinusIonisation, ordInActive,2, 2);
283
284 pManager->AddProcess(&theAntiSigmaMinusMult);
285 pManager->SetProcessOrdering(&theAntiSigmaMinusMult, idxAlongStep, 1);
286 pManager->SetProcessOrdering(&theAntiSigmaMinusMult, idxPostStep, 1);
287
288 // SigmaPlus
289 pManager = G4SigmaPlus::SigmaPlus()->GetProcessManager();
290 // add process
291 pManager->AddDiscreteProcess(&theElasticProcess);
292
293 theLESigmaPlusModel = new G4LESigmaPlusInelastic();
294 theHESigmaPlusModel = new G4HESigmaPlusInelastic();
295 theSigmaPlusInelastic.RegisterMe(theLESigmaPlusModel);
296 theSigmaPlusInelastic.RegisterMe(theHESigmaPlusModel);
297 pManager->AddDiscreteProcess(&theSigmaPlusInelastic);
298
299 pManager->AddProcess(&theSigmaPlusIonisation, ordInActive,2, 2);
300
301 pManager->AddProcess(&theSigmaPlusMult);
302 pManager->SetProcessOrdering(&theSigmaPlusMult, idxAlongStep, 1);
303 pManager->SetProcessOrdering(&theSigmaPlusMult, idxPostStep, 1);
304
305 // anti-SigmaPlus
306 pManager = G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager();
307 // add process
308 pManager->AddDiscreteProcess(&theElasticProcess);
309
310 theLEAntiSigmaPlusModel = new G4LEAntiSigmaPlusInelastic();
311 theHEAntiSigmaPlusModel = new G4HEAntiSigmaPlusInelastic();
312 theAntiSigmaPlusInelastic.RegisterMe(theLEAntiSigmaPlusModel);
313 theAntiSigmaPlusInelastic.RegisterMe(theHEAntiSigmaPlusModel);
314 pManager->AddDiscreteProcess(&theAntiSigmaPlusInelastic);
315
316 pManager->AddProcess(&theAntiSigmaPlusIonisation, ordInActive,2, 2);
317
318 pManager->AddProcess(&theAntiSigmaPlusMult);
319 pManager->SetProcessOrdering(&theAntiSigmaPlusMult, idxAlongStep, 1);
320 pManager->SetProcessOrdering(&theAntiSigmaPlusMult, idxPostStep, 1);
321
322 // XiMinus
323 pManager = G4XiMinus::XiMinus()->GetProcessManager();
324 // add process
325 pManager->AddDiscreteProcess(&theElasticProcess);
326
327 theLEXiMinusModel = new G4LEXiMinusInelastic();
328 theHEXiMinusModel = new G4HEXiMinusInelastic();
329 theXiMinusInelastic.RegisterMe(theLEXiMinusModel);
330 theXiMinusInelastic.RegisterMe(theHEXiMinusModel);
331 pManager->AddDiscreteProcess(&theXiMinusInelastic);
332
333 pManager->AddProcess(&theXiMinusIonisation, ordInActive,2, 2);
334
335 pManager->AddProcess(&theXiMinusMult);
336 pManager->SetProcessOrdering(&theXiMinusMult, idxAlongStep, 1);
337 pManager->SetProcessOrdering(&theXiMinusMult, idxPostStep, 1);
338
339 // anti-XiMinus
340 pManager = G4AntiXiMinus::AntiXiMinus()->GetProcessManager();
341 // add process
342 pManager->AddDiscreteProcess(&theElasticProcess);
343
344 theLEAntiXiMinusModel = new G4LEAntiXiMinusInelastic();
345 theHEAntiXiMinusModel = new G4HEAntiXiMinusInelastic();
346 theAntiXiMinusInelastic.RegisterMe(theLEAntiXiMinusModel);
347 theAntiXiMinusInelastic.RegisterMe(theHEAntiXiMinusModel);
348 pManager->AddDiscreteProcess(&theAntiXiMinusInelastic);
349
350 pManager->AddProcess(&theAntiXiMinusIonisation, ordInActive,2, 2);
351
352 pManager->AddProcess(&theAntiXiMinusMult);
353 pManager->SetProcessOrdering(&theAntiXiMinusMult, idxAlongStep, 1);
354 pManager->SetProcessOrdering(&theAntiXiMinusMult, idxPostStep, 1);
355
356 // XiZero
357 pManager = G4XiZero::XiZero()->GetProcessManager();
358 // add process
359 pManager->AddDiscreteProcess(&theElasticProcess);
360
361 theLEXiZeroModel = new G4LEXiZeroInelastic();
362 theHEXiZeroModel = new G4HEXiZeroInelastic();
363 theXiZeroInelastic.RegisterMe(theLEXiZeroModel);
364 theXiZeroInelastic.RegisterMe(theHEXiZeroModel);
365 pManager->AddDiscreteProcess(&theXiZeroInelastic);
366
367 // anti-XiZero
368 pManager = G4AntiXiZero::AntiXiZero()->GetProcessManager();
369 // add process
370 pManager->AddDiscreteProcess(&theElasticProcess);
371
372 theLEAntiXiZeroModel = new G4LEAntiXiZeroInelastic();
373 theHEAntiXiZeroModel = new G4HEAntiXiZeroInelastic();
374 theAntiXiZeroInelastic.RegisterMe(theLEAntiXiZeroModel);
375 theAntiXiZeroInelastic.RegisterMe(theHEAntiXiZeroModel);
376 pManager->AddDiscreteProcess(&theAntiXiZeroInelastic);
377
378 // OmegaMinus
379 pManager = G4OmegaMinus::OmegaMinus()->GetProcessManager();
380 // add process
381 pManager->AddDiscreteProcess(&theElasticProcess);
382
383 theLEOmegaMinusModel = new G4LEOmegaMinusInelastic();
384 theHEOmegaMinusModel = new G4HEOmegaMinusInelastic();
385 theOmegaMinusInelastic.RegisterMe(theLEOmegaMinusModel);
386 theOmegaMinusInelastic.RegisterMe(theHEOmegaMinusModel);
387 pManager->AddDiscreteProcess(&theOmegaMinusInelastic);
388
389 pManager->AddProcess(&theOmegaMinusIonisation, ordInActive,2, 2);
390
391 pManager->AddProcess(&theOmegaMinusMult);
392 pManager->SetProcessOrdering(&theOmegaMinusMult, idxAlongStep, 1);
393 pManager->SetProcessOrdering(&theOmegaMinusMult, idxPostStep, 1);
394
395 // anti-OmegaMinus
396 pManager = G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager();
397 // add process
398 pManager->AddDiscreteProcess(&theElasticProcess);
399
400 theLEAntiOmegaMinusModel = new G4LEAntiOmegaMinusInelastic();
401 theHEAntiOmegaMinusModel = new G4HEAntiOmegaMinusInelastic();
402 theAntiOmegaMinusInelastic.RegisterMe(theLEAntiOmegaMinusModel);
403 theAntiOmegaMinusInelastic.RegisterMe(theHEAntiOmegaMinusModel);
404 pManager->AddDiscreteProcess(&theAntiOmegaMinusInelastic);
405
406 pManager->AddProcess(&theAntiOmegaMinusIonisation, ordInActive,2, 2);
407
408 pManager->AddProcess(&theAntiOmegaMinusMult);
409 pManager->SetProcessOrdering(&theAntiOmegaMinusMult, idxAlongStep, 1);
410 pManager->SetProcessOrdering(&theAntiOmegaMinusMult, idxPostStep, 1);
411*/
412}

The documentation for this class was generated from the following files: