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