BOSS 7.0.9
BESIII Offline Software System
Loading...
Searching...
No Matches
BesShortLivedConstructor.cc
Go to the documentation of this file.
1//---------------------------------------------------------------------------//
2// BOOST --- BESIII Object_Oriented Simulation Tool //
3//---------------------------------------------------------------------------//
4//Descpirtion: Rewrite G4ShortLivedConstructor.hh, remove quark part
5//Author: Liuhm
6//Created: 2003/5/19
7//Modified:
8//Comment:
9//---------------------------------------------------------------------------//
10//
12
13#include "G4ParticleDefinition.hh"
14#include "G4ParticleTable.hh"
15#include "G4ShortLivedTable.hh"
16#include "G4PhaseSpaceDecayChannel.hh"
17#include "G4VDecayChannel.hh"
18#include "G4DecayTable.hh"
19
20G4bool BesShortLivedConstructor::isConstructed = false;
21
23{
24}
25
27{
28}
29
30
32{
33 if (!isConstructed){
35 isConstructed = true;
36 }
37}
38
39
40#include "G4ExcitedNucleonConstructor.hh"
41#include "G4ExcitedDeltaConstructor.hh"
42#include "G4ExcitedLambdaConstructor.hh"
43#include "G4ExcitedSigmaConstructor.hh"
44#include "G4ExcitedXiConstructor.hh"
45#include "G4ExcitedMesonConstructor.hh"
47{
50
51 // N*
52 G4ExcitedNucleonConstructor nucleons;
53 nucleons.Construct();
54
55 // Delta*
56 G4ExcitedDeltaConstructor deltas;
57 deltas.Construct();
58
59 // Lambda*
60 G4ExcitedLambdaConstructor lamdas;
61 lamdas.Construct();
62
63 // Sigma*
64 G4ExcitedSigmaConstructor sigmas;
65 sigmas.Construct();
66
67 // Xi*
68 G4ExcitedXiConstructor xis;
69 xis.Construct();
70
71 // Mesons
72 G4ExcitedMesonConstructor mesons;
73 mesons.Construct();
74
75}
76
77
78#include "G4ExcitedBaryons.hh"
80{
81 G4DecayTable* decayTable;
82 G4VDecayChannel* mode;
83 G4ExcitedBaryons* particle;
84
85 // Construct Resonace particles as dynamic object
86 // Arguments for constructor are as follows
87 // name mass width charge
88 // 2*spin parity C-conjugation
89 // 2*Isospin 2*Isospin3 G-parity
90 // type lepton number baryon number PDG encoding
91 // stable lifetime decay table
92
93 // delta baryons
94 // delta(1232)++
95 particle = new G4ExcitedBaryons(
96 "delta++", 1.232*GeV, 115.0*MeV, +2.0*eplus,
97 3, +1, 0,
98 3, +3, 0,
99 "baryon", 0, +1, 2224,
100 false, 0.0, NULL);
101 // set sub type
102 particle->SetMultipletName("delta");
103 // create decay table
104 decayTable = new G4DecayTable();
105 // create decay channel of delta++ -> proton + pi+
106 // parent BR #daughters
107 mode = new G4PhaseSpaceDecayChannel("delta++",1.000, 2,
108 "proton","pi+");
109 // add decay table
110 decayTable->Insert(mode);
111 particle->SetDecayTable(decayTable);
112
113 // delta(1232)+
114 particle = new G4ExcitedBaryons(
115 "delta+", 1.232*GeV, 115.0*MeV, +1.0*eplus,
116 3, +1, 0,
117 3, +1, 0,
118 "baryon", 0, +1, 2214,
119 false, 0.0, NULL);
120 // set sub type
121 particle->SetMultipletName("delta(1232)");
122 // create decay table
123 decayTable = new G4DecayTable();
124 // create decay channel of delta+ -> proton + Gamma
125 // parent BR #daughters
126 mode = new G4PhaseSpaceDecayChannel("delta+", 0.01, 2,
127 "proton","gamma");
128 decayTable->Insert(mode);
129 // create decay channel of delta+ -> neutron + pi+
130 // parent BR #daughters
131 // create decay channel of delta+ -> proton + pi0
132 // parent BR #daughters
133 mode = new G4PhaseSpaceDecayChannel("delta+", 0.495, 2,
134 "proton","pi0");
135 decayTable->Insert(mode);
136 // create decay channel of delta+ -> neutron + pi+
137 // parent BR #daughters
138 mode = new G4PhaseSpaceDecayChannel("delta+", 0.495, 2,
139 "neutron","pi+");
140 decayTable->Insert(mode);
141 particle->SetDecayTable(decayTable);
142
143 // delta(1232)0
144 particle = new G4ExcitedBaryons(
145 "delta0", 1.232*GeV, 115.0*MeV, +0.0*eplus,
146 3, +1, 0,
147 3, -1, 0,
148 "baryon", 0, +1, 2114,
149 false, 0.0, NULL);
150 // set sub type
151 particle->SetMultipletName("delta(1232)");
152 // create decay table
153 decayTable = new G4DecayTable();
154 // create decay channel of delta+ -> neutron + gamma
155 // parent BR #daughters
156 mode = new G4PhaseSpaceDecayChannel("delta0", 0.01, 2,
157 "neutron","gamma");
158 decayTable->Insert(mode);
159 // create decay channel of delta+ -> proton + pi-
160 // parent BR #daughters
161 mode = new G4PhaseSpaceDecayChannel("delta0", 0.495, 2,
162 "proton","pi-");
163 decayTable->Insert(mode);
164 // create decay channel of delta+ -> neutron + pi0
165 // parent BR #daughters
166 mode = new G4PhaseSpaceDecayChannel("delta0", 0.495, 2,
167 "neutron","pi0");
168 decayTable->Insert(mode);
169 particle->SetDecayTable(decayTable);
170
171 // delta(1232)-
172 particle = new G4ExcitedBaryons(
173 "delta-", 1.232*GeV, 115.0*MeV, -1.0*eplus,
174 3, +1, 0,
175 3, -3, 0,
176 "baryon", 0, +1, 1114,
177 false, 0.0, NULL);
178 // set sub type
179 particle->SetMultipletName("delta(1232)");
180 // create decay table
181 decayTable = new G4DecayTable();
182 // create decay channel of delta+ -> neutron + pi-
183 // parent BR #daughters
184 mode = new G4PhaseSpaceDecayChannel("delta-", 1.000, 2,
185 "neutron","pi-");
186 decayTable->Insert(mode);
187 particle->SetDecayTable(decayTable);
188
189
190 ////////////////////////////
191 // anti_delta baryons
192 // anti_delta(1232)++
193 particle = new G4ExcitedBaryons(
194 "anti_delta++", 1.232*GeV, 115.0*MeV, -2.0*eplus,
195 3, +1, 0,
196 3, -3, 0,
197 "baryon", 0, -1, -2224,
198 false, 0.0, NULL);
199 // set sub type
200 particle->SetMultipletName("delta(1232)");
201 // create decay table
202 decayTable = new G4DecayTable();
203 // create decay channel of delta++ -> anti_proton + pi-
204 // parent BR #daughters
205 mode = new G4PhaseSpaceDecayChannel("anti_delta++",1.000, 2,
206 "anti_proton","pi-");
207 // add decay table
208 decayTable->Insert(mode);
209 particle->SetDecayTable(decayTable);
210
211 // anti_delta(1232)+
212 particle = new G4ExcitedBaryons(
213 "anti_delta+", 1.232*GeV, 115.0*MeV, -1.0*eplus,
214 3, +1, 0,
215 3, -1, 0,
216 "baryon", 0, -1, -2214,
217 false, 0.0, NULL);
218 // set sub type
219 particle->SetMultipletName("delta(1232)");
220 // create decay table
221 decayTable = new G4DecayTable();
222 // create decay channel of anti_delta+ -> anti_proton + pi0
223 // parent BR #daughters
224 mode = new G4PhaseSpaceDecayChannel("anti_delta+", 0.500, 2,
225 "anti_proton","pi0");
226 decayTable->Insert(mode);
227 // create decay channel of anti_delta+ -> anti_neutron + pi-
228 // parent BR #daughters
229 mode = new G4PhaseSpaceDecayChannel("anti_delta+", 0.500, 2,
230 "anti_neutron","pi-");
231 decayTable->Insert(mode);
232 particle->SetDecayTable(decayTable);
233
234 // anti_delta(1232)0
235 particle = new G4ExcitedBaryons(
236 "anti_delta0", 1.232*GeV, 115.0*MeV, +0.0*eplus,
237 3, +1, 0,
238 3, +1, 0,
239 "baryon", 0, -1, -2114,
240 false, 0.0, NULL);
241 // set sub type
242 particle->SetMultipletName("delta(1232)");
243 // create decay table
244 decayTable = new G4DecayTable();
245 // create decay channel of anti_delta+ -> anti_proton + pi+
246 // parent BR #daughters
247 mode = new G4PhaseSpaceDecayChannel("anti_delta0", 0.500, 2,
248 "anti_proton","pi+");
249 decayTable->Insert(mode);
250 // create decay channel of delta+ -> neutron + pi0
251 // parent BR #daughters
252 mode = new G4PhaseSpaceDecayChannel("anti_delta0", 0.500, 2,
253 "anti_neutron","pi0");
254 decayTable->Insert(mode);
255 particle->SetDecayTable(decayTable);
256
257 // anti_delta(1232)-
258 particle = new G4ExcitedBaryons(
259 "anti_delta-", 1.232*GeV, 115.0*MeV, +1.0*eplus,
260 3, +1, 0,
261 3, +3, 0,
262 "baryon", 0, -1, -1114,
263 false, 0.0, NULL);
264 // set sub type
265 particle->SetMultipletName("delta(1232)");
266 // create decay table
267 decayTable = new G4DecayTable();
268 // create decay channel of delta- -> neutron + pi+
269 // parent BR #daughters
270 mode = new G4PhaseSpaceDecayChannel("anti_delta-", 1.000, 2,
271 "anti_neutron","pi+");
272 decayTable->Insert(mode);
273 particle->SetDecayTable(decayTable);
274
275
276
277}
278#include "G4ExcitedMesons.hh"
280{
281 G4DecayTable* decayTable;
282 G4VDecayChannel* mode;
283 G4ExcitedMesons* particle;
284
285 // Construct Resonace particles as dynamic object
286 // Arguments for constructor are as follows
287 // name mass width charge
288 // 2*spin parity C-conjugation
289 // 2*Isospin 2*Isospin3 G-parity
290 // type lepton number baryon number PDG encoding
291 // stable lifetime decay table
292
293 // vector mesons
294 // omega
295 particle = new G4ExcitedMesons(
296 "omega", 781.94*MeV, 8.41*MeV, +0.0*eplus,
297 2, -1, -1,
298 0, +0, -1,
299 "meson", 0, 0, 223,
300 false, 0.0, NULL);
301 particle->SetAntiPDGEncoding(223);
302 // set sub type
303 particle->SetMultipletName("omega");
304 // create decay table
305 decayTable = new G4DecayTable();
306 // create decay channel of omega -> pi+ + pi- + pi0
307 // parent BR #daughters
308 mode = new G4PhaseSpaceDecayChannel("omega",0.888, 3,
309 "pi+","pi-","pi0");
310 // add decay table
311 decayTable->Insert(mode);
312 particle->SetDecayTable(decayTable);
313
314 // phi
315 particle = new G4ExcitedMesons(
316 "phi", 1019.4*MeV, 4.43*MeV, +0.0*eplus,
317 2, -1, -1,
318 0, +0, -1,
319 "meson", 0, 0, 333,
320 false, 0.0, NULL);
321 particle->SetAntiPDGEncoding(333);
322 // set sub type
323 particle->SetMultipletName("phi");
324 // create decay table
325 decayTable = new G4DecayTable();
326 // create decay channel of phi -> kaon+ + kaon-
327 // parent BR #daughters
328 mode = new G4PhaseSpaceDecayChannel("phi",0.491, 2,
329 "kaon+","kaon-");
330 decayTable->Insert(mode);
331 // create decay channel of phi -> kaon0S + kaon0L
332 // parent BR #daughters
333 mode = new G4PhaseSpaceDecayChannel("phi",0.343, 2,
334 "kaon0S","kaon0L");
335 // add decay table
336 decayTable->Insert(mode);
337 // create decay channel of phi -> rho0 + pi0
338 // parent BR #daughters
339 mode = new G4PhaseSpaceDecayChannel("phi",0.129, 2,
340 "rho0","pi0");
341 // add decay table
342 decayTable->Insert(mode);
343 particle->SetDecayTable(decayTable);
344
345 // rho+
346 particle = new G4ExcitedMesons(
347 "rho+", 769.9*MeV, 151.2*MeV, +1.0*eplus,
348 2, -1, -1,
349 2, +2, +1,
350 "meson", 0, 0, 213,
351 false, 0.0, NULL);
352 // set sub type
353 particle->SetMultipletName("rho");
354 // create decay table
355 decayTable = new G4DecayTable();
356 // create decay channel of rho+ -> pi+ + pi0
357 // parent BR #daughters
358 mode = new G4PhaseSpaceDecayChannel("rho+",1.000, 2,
359 "pi+","pi0");
360 // add decay table
361 decayTable->Insert(mode);
362 particle->SetDecayTable(decayTable);
363
364 // rho-
365 particle = new G4ExcitedMesons(
366 "rho-", 769.9*MeV, 151.2*MeV, -1.0*eplus,
367 2, -1, -1,
368 2, -2, +1,
369 "meson", 0, 0, -213,
370 false, 0.0, NULL);
371 // set sub type
372 particle->SetMultipletName("rho");
373 // create decay table
374 decayTable = new G4DecayTable();
375 // create decay channel of rho- -> pi- + pi0
376 // parent BR #daughters
377 mode = new G4PhaseSpaceDecayChannel("rho-",1.000, 2,
378 "pi-","pi0");
379 // add decay table
380 decayTable->Insert(mode);
381 particle->SetDecayTable(decayTable);
382
383 // rho0
384 particle = new G4ExcitedMesons(
385 "rho0", 770.0*MeV, 150.7*MeV, 0.0,
386 2, -1, -1,
387 2, 0, +1,
388 "meson", 0, 0, 113,
389 false, 0.0*ns, NULL );
390 particle->SetAntiPDGEncoding(113);
391 // set sub type
392 particle->SetMultipletName("rho");
393 // create decay table
394 decayTable = new G4DecayTable();
395 // create decay channel of rho0 -> pi+ + pi-
396 // parent BR #daughters
397 mode = new G4PhaseSpaceDecayChannel("rho0",1.000, 2,
398 "pi+","pi-");
399 // add decay table
400 decayTable->Insert(mode);
401 particle->SetDecayTable(decayTable);
402
403 // a0(980)+
404 particle = new G4ExcitedMesons(
405 "a0(980)+", 984.8*MeV, 60.0*MeV, +1.0*eplus,
406 0, +1, +1,
407 2, +2, -1,
408 "meson", 0, 0, 9000211,
409 false, 0.0, NULL);
410 // set sub type
411 particle->SetMultipletName("a0(980)");
412 // create decay table
413 decayTable = new G4DecayTable();
414 // create decay channel of a0(980)+ -> eta + pi+
415 // parent BR #daughters
416 mode = new G4PhaseSpaceDecayChannel("a0(980)+",1.000, 2,
417 "pi+","eta");
418 // add decay table
419 decayTable->Insert(mode);
420 particle->SetDecayTable(decayTable);
421
422 // a0(980)-
423 particle = new G4ExcitedMesons(
424 "a0(980)-", 984.8*MeV, 60.0*MeV, -1.0*eplus,
425 0, +1, +1,
426 2, -2, -1,
427 "meson", 0, 0, -9000211,
428 false, 0.0, NULL);
429 // set sub type
430 particle->SetMultipletName("a0(980)");
431 // create decay table
432 decayTable = new G4DecayTable();
433 // create decay channel of a0(980)- -> eta + pi-
434 // parent BR #daughters
435 mode = new G4PhaseSpaceDecayChannel("a0(980)-",1.000, 2,
436 "pi-","eta");
437 // add decay table
438 decayTable->Insert(mode);
439 particle->SetDecayTable(decayTable);
440
441 // a0(980)0
442 particle = new G4ExcitedMesons(
443 "a0(980)0", 984.8*MeV, 60.0*MeV, 0.0,
444 0, +1, +1,
445 2, 0, -1,
446 "meson", 0, 0, 9000111,
447 false, 0.0, NULL);
448 particle->SetAntiPDGEncoding(9000111);
449 // set sub type
450 particle->SetMultipletName("a0(980)");
451 // create decay table
452 decayTable = new G4DecayTable();
453 // create decay channel of a0(980)0 -> eta + pi0
454 // parent BR #daughters
455 mode = new G4PhaseSpaceDecayChannel("a0(980)0",1.000, 2,
456 "pi0","eta");
457 // add decay table
458 decayTable->Insert(mode);
459 particle->SetDecayTable(decayTable);
460
461 // f0(400-1200)
462 particle = new G4ExcitedMesons(
463 "f0(400-1200)", 470.0*MeV, 400.0*MeV, 0.0,
464 0, +1, +1,
465 0, 0, +1,
466 "meson", 0, 0, 9000221,
467 false, 0.0, NULL);
468 particle->SetAntiPDGEncoding(9000221);
469 // set sub type
470 particle->SetMultipletName("f0(400-1200)");
471 // create decay table
472 decayTable = new G4DecayTable();
473 // create decay channel of f0(400-1200) -> pi + pi
474 // parent BR #daughters
475 mode = new G4PhaseSpaceDecayChannel("f0(400-1200)",1.000, 2,
476 "pi+","pi-");
477 // add decay table
478 decayTable->Insert(mode);
479 particle->SetDecayTable(decayTable);
480
481
482 // f0(980)
483 particle = new G4ExcitedMesons(
484 "f0(980)", 980.0*MeV, 40.0*MeV, 0.0,
485 0, +1, +1,
486 0, 0, +1,
487 "meson", 0, 0, 9010221,
488 false, 0.0, NULL);
489 particle->SetAntiPDGEncoding(9010221);
490 // set sub type
491 particle->SetMultipletName("f0(980)");
492 // create decay table
493 decayTable = new G4DecayTable();
494 // create decay channel of f0(980) -> pi + pi
495 // parent BR #daughters
496 mode = new G4PhaseSpaceDecayChannel("f0(980)",1.000, 2,
497 "pi+","pi-");
498 // add decay table
499 decayTable->Insert(mode);
500 particle->SetDecayTable(decayTable);
501
502
503 // k_star+
504 particle = new G4ExcitedMesons(
505 "k_star+", 891.6*MeV, 50.8*MeV, +1.0*eplus,
506 2, -1, 0,
507 1, +1, 0,
508 "meson", 0, 0, 323,
509 false, 0.0, NULL);
510 // set sub type
511 particle->SetMultipletName("k_star");
512 // create decay table
513 decayTable = new G4DecayTable();
514 // create decay channel of k_star+ -> kaon+ + pi0
515 // parent BR #daughters
516 mode = new G4PhaseSpaceDecayChannel("k_star+",0.500, 2,
517 "kaon+","pi0");
518 // add decay table
519 decayTable->Insert(mode);
520 // create decay channel of k_star+ -> kaon+ + pi0
521 // parent BR #daughters
522 mode = new G4PhaseSpaceDecayChannel("k_star+",0.500, 2,
523 "kaon0","pi+");
524 // add decay table
525 decayTable->Insert(mode);
526 particle->SetDecayTable(decayTable);
527
528 // k_star0
529 particle = new G4ExcitedMesons(
530 "k_star0", 896.1*MeV, 50.5*MeV, 0.0*eplus,
531 2, -1, 0,
532 1, -1, 0,
533 "meson", 0, 0, 313,
534 false, 0.0, NULL);
535 // set sub type
536 particle->SetMultipletName("k_star");
537 // create decay table
538 decayTable = new G4DecayTable();
539 // create decay channel of k_star0 -> kaon+ + pi-
540 // parent BR #daughters
541 mode = new G4PhaseSpaceDecayChannel("k_star0",0.500, 2,
542 "kaon+","pi-");
543 // add decay table
544 decayTable->Insert(mode);
545 // create decay channel of k_star0 -> kaon0 + pi0
546 // parent BR #daughters
547 mode = new G4PhaseSpaceDecayChannel("k_star0",0.500, 2,
548 "kaon0","pi0");
549 // add decay table
550 decayTable->Insert(mode);
551 particle->SetDecayTable(decayTable);
552
553 // k_star-
554 particle = new G4ExcitedMesons(
555 "k_star-", 891.6*MeV, 50.8*MeV, -1.0*eplus,
556 2, -1, 0,
557 1, +1, 0,
558 "meson", 0, 0, -323,
559 false, 0.0, NULL);
560 // set sub type
561 particle->SetMultipletName("k_star");
562 // create decay table
563 decayTable = new G4DecayTable();
564 // create decay channel of k_star- -> kaon- + pi0
565 // parent BR #daughters
566 mode = new G4PhaseSpaceDecayChannel("k_star-",0.500, 2,
567 "kaon-","pi0");
568 // add decay table
569 decayTable->Insert(mode);
570 // create decay channel of k_star- -> anti_kaon0 + pi0
571 // parent BR #daughters
572 mode = new G4PhaseSpaceDecayChannel("k_star-",0.500, 2,
573 "anti_kaon0","pi+");
574 // add decay table
575 decayTable->Insert(mode);
576 particle->SetDecayTable(decayTable);
577
578
579 // anti_k_star0
580 particle = new G4ExcitedMesons(
581 "anti_k_star0", 896.1*MeV, 50.5*MeV, 0.0*eplus,
582 2, -1, 0,
583 1, -1, 0,
584 "meson", 0, 0, -313,
585 false, 0.0, NULL);
586 // set sub type
587 particle->SetMultipletName("k_star");
588 // create decay table
589 decayTable = new G4DecayTable();
590 // create decay channel of anti_k_star0 -> kaon- + pi+
591 // parent BR #daughters
592 mode = new G4PhaseSpaceDecayChannel("anti_k_star0",0.500, 2,
593 "kaon-","pi+");
594 // add decay table
595 decayTable->Insert(mode);
596 // create decay channel of anti_k_star0 -> anti_kaon0 + pi0
597 // parent BR #daughters
598 mode = new G4PhaseSpaceDecayChannel("anti_k_star0",0.500, 2,
599 "anti_kaon0","pi0");
600 // add decay table
601 decayTable->Insert(mode);
602 particle->SetDecayTable(decayTable);
603
604}
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
#define NULL
#define ns(x)
Definition: xmltok.c:1504