Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4ShortLivedConstructor.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//
26// --------------------------------------------------------------
27// GEANT 4 class implementation file
28//
29// - Add "rho0" 25 Feb. 2000 H.Kurashige
30// - Fix spin/isospin number for quarks 06 Apr. 2001 H.Kurashige
31// - update quark mass 11 Oct. 2006 H.Kurashige
32// - update meson/baryon masses 11 Oct. 2006 H.Kurashige
33// - Added charm and bottom diquarks 09 Oct. 2019 V.Uzhinsky
34// - Update mass and width for excited mesons
35// and excited baryons following PDG 2023 05 Nov. 2023 S.Okada
36// - Update mass and width for excited mesons
37// and excited baryons following PDG 2025 04 Nov. 2025 S.Okada
38
40
41#include "G4DecayTable.hh"
42#include "G4DiQuarks.hh"
43#include "G4ExcitedBaryons.hh"
47#include "G4ExcitedMesons.hh"
51#include "G4Gluons.hh"
54#include "G4Quarks.hh"
55#include "G4SystemOfUnits.hh"
56#include "G4VDecayChannel.hh"
57
58G4bool G4ShortLivedConstructor::isConstructed = false;
59
61{
62 if (!isConstructed) {
65 isConstructed = true;
66 }
67}
68
70{
71 G4ParticleDefinition* particle;
72
73 // Construct Quraks/Gluons as dynamic object
74 // Arguments for constructor are as follows
75 // name mass width charge
76 // 2*spin parity C-conjugation
77 // 2*Isospin 2*Isospin3 G-parity
78 // type lepton number baryon number PDG encoding
79 // stable lifetime decay table
80
81 // clang-format off
82 // gluon
83 particle = new G4Gluons(
84 "gluon", 0.0*MeV, 0.0*MeV, 0.0*eplus,
85 2, -1, 0,
86 0, 0, 0,
87 "gluons", 0, 0, 21,
88 true, -1.0, nullptr);
89 particle->SetAntiPDGEncoding(21);
90 // u-quark
91 particle = new G4Quarks(
92 "u_quark", 2.2*MeV, 0.0*keV, 2./3.*eplus,
93 1, +1, 0,
94 1, +1, 0,
95 "quarks", 0, 0, 2,
96 true, -1.0, nullptr);
97 // d-quark
98 particle = new G4Quarks(
99 "d_quark", 4.7*MeV, 0.0*keV, -1./3.*eplus,
100 1, +1, 0,
101 1, -1, 0,
102 "quarks", 0, 0, 1,
103 true, -1.0, nullptr);
104 // s-quark
105 particle = new G4Quarks(
106 "s_quark", 96.0*MeV, 0.0*keV, -1./3.*eplus,
107 1, +1, 0,
108 0, 0, 0,
109 "quarks", 0, 0, 3,
110 true, -1.0, nullptr);
111 // c-quark
112 particle = new G4Quarks(
113 "c_quark", 1.28*GeV, 0.0*keV, +2./3.*eplus,
114 1, +1, 0,
115 0, 0, 0,
116 "quarks", 0, 0, 4,
117 true, -1.0, nullptr);
118 // b-quark
119 particle = new G4Quarks(
120 "b_quark", 4.18*GeV, 0.0*keV, -1./3.*eplus,
121 1, +1, 0,
122 0, 0, 0,
123 "quarks", 0, 0, 5,
124 true, -1.0, nullptr);
125 // t-quark
126 particle = new G4Quarks(
127 "t_quark", 173.1*GeV, 1.41*GeV, +2./3.*eplus,
128 1, +1, 0,
129 0, 0, 0,
130 "quarks", 0, 0, 6,
131 true, -1.0, nullptr);
132 // anti u-quark
133 particle = new G4Quarks(
134 "anti_u_quark", 2.2*MeV, 0.0*keV, -2./3.*eplus,
135 1, +1, 0,
136 1, -1, 0,
137 "quarks", 0, 0, -2,
138 true, -1.0, nullptr);
139 // anti d-quark
140 particle = new G4Quarks(
141 "anti_d_quark", 4.7*MeV, 0.0*keV, 1./3.*eplus,
142 1, +1, 0,
143 1, +1, 0,
144 "quarks", 0, 0, -1,
145 true, -1.0, nullptr);
146 // anti s-quark
147 particle = new G4Quarks(
148 "anti_s_quark", 96.0*MeV, 0.0*keV, 1./3.*eplus,
149 1, +1, 0,
150 0, 0, 0,
151 "quarks", 0, 0, -3,
152 true, -1.0, nullptr);
153 // anti c-quark
154 particle = new G4Quarks(
155 "anti_c_quark", 1.28*GeV, 0.0*keV, -2./3.*eplus,
156 1, +1, 0,
157 0, 0, 0,
158 "quarks", 0, 0, -4,
159 true, -1.0, nullptr);
160 // anti b-quark
161 particle = new G4Quarks(
162 "anti_b_quark", 4.18*GeV, 0.0*keV, 1./3.*eplus,
163 1, +1, 0,
164 0, 0, 0,
165 "quarks", 0, 0, -5,
166 true, -1.0, nullptr);
167 // anti t-quark
168 particle = new G4Quarks(
169 "anti_t_quark", 173.1*GeV, 1.41*GeV, -2./3.*eplus,
170 1, +1, 0,
171 0, 0, 0,
172 "quarks", 0, 0, -6,
173 true, -1.0, nullptr);
174
175 // uu1-Diquark
176 particle = new G4DiQuarks(
177 "uu1_diquark", 4.6*MeV, 0.0*MeV, 4./3.*eplus,
178 2, +1, 0,
179 2, +2, 0,
180 "diquarks", 0, 0, 2203,
181 true, -1.0, nullptr);
182 // ud1-Diquark
183 particle = new G4DiQuarks(
184 "ud1_diquark", 7.0*MeV, 0.0*MeV, 1./3.*eplus,
185 2, +1, 0,
186 2, +0, 0,
187 "diquarks", 0, 0, 2103,
188 true, -1.0, nullptr);
189 // dd1-Diquark
190 particle = new G4DiQuarks(
191 "dd1_diquark", 9.6*MeV, 0.0*MeV, -2./3.*eplus,
192 2, +1, 0,
193 2, -2, 0,
194 "diquarks", 0, 0, 1103,
195 true, -1.0, nullptr);
196
197 // ud0-Diquark
198 particle = new G4DiQuarks(
199 "ud0_diquark", 7.1*MeV, 0.0*MeV, 1./3.*eplus,
200 0, +1, 0,
201 0, +0, 0,
202 "diquarks", 0, 0, 2101,
203 true, -1.0, nullptr);
204
205 // sd1-Diquark
206 particle = new G4DiQuarks(
207 "sd1_diquark", 102.8*MeV, 0.0*MeV, -2./3.*eplus,
208 2, +1, 0,
209 1, -1, 0,
210 "diquarks", 0, 0, 3103,
211 true, -1.0, nullptr);
212
213 // su1-Diquark
214 particle = new G4DiQuarks(
215 "su1_diquark", 101.4*MeV, 0.0*MeV, 1./3.*eplus,
216 2, +1, 0,
217 1, +1, 0,
218 "diquarks", 0, 0, 3203,
219 true, -1.0, nullptr);
220
221 // sd0-Diquark
222 particle = new G4DiQuarks(
223 "sd0_diquark", 102.0*MeV, 0.0*MeV, -2./3.*eplus,
224 0, +1, 0,
225 1, -1, 0,
226 "diquarks", 0, 0, 3101,
227 true, -1.0, nullptr);
228
229 // su0-Diquark
230 particle = new G4DiQuarks(
231 "su0_diquark", 101.4*MeV, 0.0*MeV, 1./3.*eplus,
232 0, +1, 0,
233 1, +1, 0,
234 "diquarks", 0, 0, 3201,
235 true, -1.0, nullptr);
236
237 // anti uu1-Diquark
238 particle = new G4DiQuarks(
239 "anti_uu1_diquark", 4.6*MeV, 0.0*MeV, -4./3.*eplus,
240 2, +1, 0,
241 2, -2, 0,
242 "diquarks", 0, 0, -2203,
243 true, -1.0, nullptr);
244 // anti ud1-Diquark
245 particle = new G4DiQuarks(
246 "anti_ud1_diquark", 7.0*MeV, 0.0*MeV, -1./3.*eplus,
247 2, +1, 0,
248 2, +0, 0,
249 "diquarks", 0, 0, -2103,
250 true, -1.0, nullptr);
251 // anti dd1-Diquark
252 particle = new G4DiQuarks(
253 "anti_dd1_diquark", 9.6*MeV, 0.0*MeV, 2./3.*eplus,
254 2, +1, 0,
255 2, +2, 0,
256 "diquarks", 0, 0, -1103,
257 true, -1.0, nullptr);
258
259 // anti ud0-Diquark
260 particle = new G4DiQuarks(
261 "anti_ud0_diquark", 7.1*MeV, 0.0*MeV, -1./3.*eplus,
262 0, +1, 0,
263 0, +0, 0,
264 "diquarks", 0, 0, -2101,
265 true, -1.0, nullptr);
266
267 // anti sd1-Diquark
268 particle = new G4DiQuarks(
269 "anti_sd1_diquark", 102.8*MeV, 0.0*MeV, 2./3.*eplus,
270 2, +1, 0,
271 1, +1, 0,
272 "diquarks", 0, 0, -3103,
273 true, -1.0, nullptr);
274
275 // anti su1-Diquark
276 particle = new G4DiQuarks(
277 "anti_su1_diquark", 101.4*MeV, 0.0*MeV, -1./3.*eplus,
278 2, +1, 0,
279 1, -1, 0,
280 "diquarks", 0, 0, -3203,
281 true, -1.0, nullptr);
282
283 // anti sd0-Diquark
284 particle = new G4DiQuarks(
285 "anti_sd0_diquark", 102.0*MeV, 0.0*MeV, 2./3.*eplus,
286 0, +1, 0,
287 1, +1, 0,
288 "diquarks", 0, 0, -3101,
289 true, -1.0, nullptr);
290
291 // anti su0-Diquark
292 particle = new G4DiQuarks(
293 "anti_su0_diquark", 101.4*MeV, 0.0*MeV, -1./3.*eplus,
294 0, +1, 0,
295 1, -1, 0,
296 "diquarks", 0, 0, -3201,
297 true, -1.0, nullptr);
298 // ss1-Diquark
299 particle = new G4DiQuarks(
300 "ss1_diquark", 198.0*MeV, 0.0*MeV, -2./3.*eplus,
301 2, +1, 0,
302 0, 0, 0,
303 "diquarks", 0, 0, 3303,
304 true, -1.0, nullptr);
305
306 // anti ss1-Diquark
307 particle = new G4DiQuarks(
308 "anti_ss1_diquark", 198.0*MeV, 0.0*MeV, 2./3.*eplus,
309 2, +1, 0,
310 0, 0, 0,
311 "diquarks", 0, 0, -3303,
312 true, -1.0, nullptr);
313
314 // ----------- V. Uzhinsky October 2019: Add di-quarks having c and b quarks ----------------
315 // They have to be improved.
316
317 // cd0-Diquark
318 particle = new G4DiQuarks(
319 "cd0_diquark", 1286.1*MeV, 0.0*MeV, 1./3.*eplus,
320 0, +1, 0,
321 0, +0, 0,
322 "diquarks", 0, 0, 4101,
323 true, -1.0, nullptr);
324
325 // cd1-Diquark
326 particle = new G4DiQuarks(
327 "cd1_diquark", 1286.0*MeV, 0.0*MeV, 1./3.*eplus,
328 2, +1, 0,
329 2, +0, 0,
330 "diquarks", 0, 0, 4103,
331 true, -1.0, nullptr);
332
333 // cu0-Diquark
334 particle = new G4DiQuarks(
335 "cu0_diquark", 1283.1*MeV, 0.0*MeV, 4./3.*eplus,
336 0, +1, 0,
337 0, +0, 0,
338 "diquarks", 0, 0, 4201,
339 true, -1.0, nullptr);
340
341 // cu1-Diquark
342 particle = new G4DiQuarks(
343 "cu1_diquark", 1283.0*MeV, 0.0*MeV, 4./3.*eplus,
344 2, +1, 0,
345 2, +0, 0,
346 "diquarks", 0, 0, 4203,
347 true, -1.0, nullptr);
348
349 // cs0-Diquark
350 particle = new G4DiQuarks(
351 "cs0_diquark", 1380.1*MeV, 0.0*MeV, 1./3.*eplus,
352 0, +1, 0,
353 0, +0, 0,
354 "diquarks", 0, 0, 4301,
355 true, -1.0, nullptr);
356
357 // cs1-Diquark
358 particle = new G4DiQuarks(
359 "cs1_diquark", 1380.0*MeV, 0.0*MeV, 1./3.*eplus,
360 2, +1, 0,
361 2, +0, 0,
362 "diquarks", 0, 0, 4303,
363 true, -1.0, nullptr);
364
365 // cc1-Diquark
366 particle = new G4DiQuarks(
367 "cc1_diquark", 2565.0*MeV, 0.0*MeV, 4./3.*eplus,
368 2, +1, 0,
369 2, +0, 0,
370 "diquarks", 0, 0, 4403,
371 true, -1.0, nullptr);
372
373 //---------------------------------------------
374
375 // bd0-Diquark
376 particle = new G4DiQuarks(
377 "bd0_diquark", 4186.1*MeV, 0.0*MeV, -2./3.*eplus,
378 0, +1, 0,
379 0, +0, 0,
380 "diquarks", 0, 0, 5101,
381 true, -1.0, nullptr);
382
383 // bd1-Diquark
384 particle = new G4DiQuarks(
385 "bd1_diquark", 4186.0*MeV, 0.0*MeV, -2./3.*eplus,
386 2, +1, 0,
387 2, +0, 0,
388 "diquarks", 0, 0, 5103,
389 true, -1.0, nullptr);
390
391 // bu0-Diquark
392 particle = new G4DiQuarks(
393 "bu0_diquark", 4183.1*MeV, 0.0*MeV, 1./3.*eplus,
394 0, +1, 0,
395 0, +0, 0,
396 "diquarks", 0, 0, 5201,
397 true, -1.0, nullptr);
398
399 // bu1-Diquark
400 particle = new G4DiQuarks(
401 "bu1_diquark", 4183.0*MeV, 0.0*MeV, 1./3.*eplus,
402 2, +1, 0,
403 2, +0, 0,
404 "diquarks", 0, 0, 5203,
405 true, -1.0, nullptr);
406
407 // bs0-Diquark
408 particle = new G4DiQuarks(
409 "bs0_diquark", 4280.1*MeV, 0.0*MeV, -2./3.*eplus,
410 0, +1, 0,
411 0, +0, 0,
412 "diquarks", 0, 0, 5301,
413 true, -1.0, nullptr);
414
415 // bs1-Diquark
416 particle = new G4DiQuarks(
417 "bs1_diquark", 4280.0*MeV, 0.0*MeV, -2./3.*eplus,
418 2, +1, 0,
419 2, +0, 0,
420 "diquarks", 0, 0, 5303,
421 true, -1.0, nullptr);
422
423 // bc0-Diquark
424 particle = new G4DiQuarks(
425 "bc0_diquark", 5465.1*MeV, 0.0*MeV, 1./3.*eplus,
426 0, +1, 0,
427 0, +0, 0,
428 "diquarks", 0, 0, 5401,
429 true, -1.0, nullptr);
430
431 // bc1-Diquark
432 particle = new G4DiQuarks(
433 "bc1_diquark", 5465.0*MeV, 0.0*MeV, 1./3.*eplus,
434 2, +1, 0,
435 2, +0, 0,
436 "diquarks", 0, 0, 5403,
437 true, -1.0, nullptr);
438
439 // bb1-Diquark
440 particle = new G4DiQuarks(
441 "bb1_diquark", 8365.0*MeV, 0.0*MeV, -2./3.*eplus,
442 2, +1, 0,
443 2, +0, 0,
444 "diquarks", 0, 0, 5503,
445 true, -1.0, nullptr);
446
447 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
448
449 // anti cd0-Diquark
450 particle = new G4DiQuarks(
451 "anti_cd0_diquark", 1286.1*MeV, 0.0*MeV, -1./3.*eplus,
452 0, +1, 0,
453 0, +0, 0,
454 "diquarks", 0, 0, -4101,
455 true, -1.0, nullptr);
456
457 // anti cd1-Diquark
458 particle = new G4DiQuarks(
459 "anti_cd1_diquark", 1286.0*MeV, 0.0*MeV, -1./3.*eplus,
460 2, +1, 0,
461 2, +0, 0,
462 "diquarks", 0, 0, -4103,
463 true, -1.0, nullptr);
464
465 // anti cu0-Diquark
466 particle = new G4DiQuarks(
467 "anti_cu0_diquark", 1283.1*MeV, 0.0*MeV, -4./3.*eplus,
468 0, +1, 0,
469 0, +0, 0,
470 "diquarks", 0, 0, -4201,
471 true, -1.0, nullptr);
472
473 // anti cu1-Diquark
474 particle = new G4DiQuarks(
475 "anti_cu1_diquark", 1283.0*MeV, 0.0*MeV, -4./3.*eplus,
476 2, +1, 0,
477 2, +0, 0,
478 "diquarks", 0, 0, -4203,
479 true, -1.0, nullptr);
480
481 // anti cs0-Diquark
482 particle = new G4DiQuarks(
483 "anti_cs0_diquark", 1380.1*MeV, 0.0*MeV, -1./3.*eplus,
484 0, +1, 0,
485 0, +0, 0,
486 "diquarks", 0, 0, -4301,
487 true, -1.0, nullptr);
488
489 // anti cs1-Diquark
490 particle = new G4DiQuarks(
491 "anti_cs1_diquark", 1380.0*MeV, 0.0*MeV, -1./3.*eplus,
492 2, +1, 0,
493 2, +0, 0,
494 "diquarks", 0, 0, -4303,
495 true, -1.0, nullptr);
496
497 // anti cc1-Diquark
498 particle = new G4DiQuarks(
499 "anti_cc1_diquark", 2565.0*MeV, 0.0*MeV, -4./3.*eplus,
500 2, +1, 0,
501 2, +0, 0,
502 "diquarks", 0, 0, -4403,
503 true, -1.0, nullptr);
504
505 //---------------------------------------------
506
507 // anti bd0-Diquark
508 particle = new G4DiQuarks(
509 "anti_bd0_diquark", 4186.1*MeV, 0.0*MeV, +2./3.*eplus,
510 0, +1, 0,
511 0, +0, 0,
512 "diquarks", 0, 0, -5101,
513 true, -1.0, nullptr);
514
515 // anti bd1-Diquark
516 particle = new G4DiQuarks(
517 "anti_bd1_diquark", 4186.0*MeV, 0.0*MeV, +2./3.*eplus,
518 2, +1, 0,
519 2, +0, 0,
520 "diquarks", 0, 0, -5103,
521 true, -1.0, nullptr);
522
523 // anti bu0-Diquark
524 particle = new G4DiQuarks(
525 "anti_bu0_diquark", 4183.1*MeV, 0.0*MeV, -1./3.*eplus,
526 0, +1, 0,
527 0, +0, 0,
528 "diquarks", 0, 0, -5201,
529 true, -1.0, nullptr);
530
531 // anti bu1-Diquark
532 particle = new G4DiQuarks(
533 "anti_bu1_diquark", 4183.0*MeV, 0.0*MeV, -1./3.*eplus,
534 2, +1, 0,
535 2, +0, 0,
536 "diquarks", 0, 0, -5203,
537 true, -1.0, nullptr);
538
539 // anti bs0-Diquark
540 particle = new G4DiQuarks(
541 "anti_bs0_diquark", 4280.1*MeV, 0.0*MeV, +2./3.*eplus,
542 0, +1, 0,
543 0, +0, 0,
544 "diquarks", 0, 0, -5301,
545 true, -1.0, nullptr);
546
547 // anti bs1-Diquark
548 particle = new G4DiQuarks(
549 "anti_bs1_diquark", 4280.0*MeV, 0.0*MeV, +2./3.*eplus,
550 2, +1, 0,
551 2, +0, 0,
552 "diquarks", 0, 0, -5303,
553 true, -1.0, nullptr);
554
555 // anti bc0-Diquark
556 particle = new G4DiQuarks(
557 "anti_bc0_diquark", 5465.1*MeV, 0.0*MeV, -1./3.*eplus,
558 0, +1, 0,
559 0, +0, 0,
560 "diquarks", 0, 0, -5401,
561 true, -1.0, nullptr);
562
563 // anti bc1-Diquark
564 particle = new G4DiQuarks(
565 "anti_bc1_diquark", 5465.0*MeV, 0.0*MeV, -1./3.*eplus,
566 2, +1, 0,
567 2, +0, 0,
568 "diquarks", 0, 0, -5403,
569 true, -1.0, nullptr);
570
571 // anti bb1-Diquark
572 particle = new G4DiQuarks(
573 "anti_bb1_diquark", 8365.0*MeV, 0.0*MeV, 2./3.*eplus,
574 2, +1, 0,
575 2, +0, 0,
576 "diquarks", 0, 0, -5503,
577 true, -1.0, nullptr);
578
579 // clang-format on
580
581 particle = nullptr;
582}
583
585{
588
589 // N*
591 nucleons.Construct();
592
593 // Delta*
595 deltas.Construct();
596
597 // Lambda*
599 lamdas.Construct();
600
601 // Sigma*
603 sigmas.Construct();
604
605 // Xi*
607 xis.Construct();
608
609 // Mesons
611 mesons.Construct();
612}
613
615{
616 G4DecayTable* decayTable;
617 G4VDecayChannel* mode;
618 G4ExcitedBaryons* particle;
619
620 // Construct Resonace particles as dynamic object
621 // Arguments for constructor are as follows
622 // name mass width charge
623 // 2*spin parity C-conjugation
624 // 2*Isospin 2*Isospin3 G-parity
625 // type lepton number baryon number PDG encoding
626 // stable lifetime decay table
627
628 // delta baryons
629 // delta(1232)++
630 // clang-format off
631 particle = new G4ExcitedBaryons(
632 "delta++", 1.232*GeV, 117.0*MeV, +2.0*eplus,
633 3, +1, 0,
634 3, +3, 0,
635 "baryon", 0, +1, 2224,
636 false, 0.0, nullptr);
637 // clang-format on
638
639 // set sub type
640 particle->SetMultipletName("delta");
641 // create decay table
642 decayTable = new G4DecayTable();
643 // create decay channel of delta++ -> proton + pi+
644 // parent BR #daughters
645 mode = new G4PhaseSpaceDecayChannel("delta++", 1.000, 2, "proton", "pi+");
646 // add decay table
647 decayTable->Insert(mode);
648 particle->SetDecayTable(decayTable);
649
650 // delta(1232)+
651 // clang-format off
652 particle = new G4ExcitedBaryons(
653 "delta+", 1.232*GeV, 117.0*MeV, +1.0*eplus,
654 3, +1, 0,
655 3, +1, 0,
656 "baryon", 0, +1, 2214,
657 false, 0.0, nullptr);
658 // clang-format on
659
660 // set sub type
661 particle->SetMultipletName("delta(1232)");
662 // create decay table
663 decayTable = new G4DecayTable();
664 // create decay channel of delta+ -> proton + Gamma
665 // parent BR #daughters
666 mode = new G4PhaseSpaceDecayChannel("delta+", 0.01, 2, "proton", "gamma");
667 decayTable->Insert(mode);
668 // create decay channel of delta+ -> neutron + pi+
669 // parent BR #daughters
670 // create decay channel of delta+ -> proton + pi0
671 // parent BR #daughters
672 mode = new G4PhaseSpaceDecayChannel("delta+", 0.495, 2, "proton", "pi0");
673 decayTable->Insert(mode);
674 // create decay channel of delta+ -> neutron + pi+
675 // parent BR #daughters
676 mode = new G4PhaseSpaceDecayChannel("delta+", 0.495, 2, "neutron", "pi+");
677 decayTable->Insert(mode);
678 particle->SetDecayTable(decayTable);
679
680 // delta(1232)0
681 // clang-format off
682 particle = new G4ExcitedBaryons(
683 "delta0", 1.232*GeV, 117.0*MeV, +0.0*eplus,
684 3, +1, 0,
685 3, -1, 0,
686 "baryon", 0, +1, 2114,
687 false, 0.0, nullptr);
688 // clang-format on
689
690 // set sub type
691 particle->SetMultipletName("delta(1232)");
692 // create decay table
693 decayTable = new G4DecayTable();
694 // create decay channel of delta+ -> neutron + gamma
695 // parent BR #daughters
696 mode = new G4PhaseSpaceDecayChannel("delta0", 0.01, 2, "neutron", "gamma");
697 decayTable->Insert(mode);
698 // create decay channel of delta+ -> proton + pi-
699 // parent BR #daughters
700 mode = new G4PhaseSpaceDecayChannel("delta0", 0.495, 2, "proton", "pi-");
701 decayTable->Insert(mode);
702 // create decay channel of delta+ -> neutron + pi0
703 // parent BR #daughters
704 mode = new G4PhaseSpaceDecayChannel("delta0", 0.495, 2, "neutron", "pi0");
705 decayTable->Insert(mode);
706 particle->SetDecayTable(decayTable);
707
708 // delta(1232)-
709 // clang-format off
710 particle = new G4ExcitedBaryons(
711 "delta-", 1.232*GeV, 117.0*MeV, -1.0*eplus,
712 3, +1, 0,
713 3, -3, 0,
714 "baryon", 0, +1, 1114,
715 false, 0.0, nullptr);
716 // clang-format on
717
718 // set sub type
719 particle->SetMultipletName("delta(1232)");
720 // create decay table
721 decayTable = new G4DecayTable();
722 // create decay channel of delta+ -> neutron + pi-
723 // parent BR #daughters
724 mode = new G4PhaseSpaceDecayChannel("delta-", 1.000, 2, "neutron", "pi-");
725 decayTable->Insert(mode);
726 particle->SetDecayTable(decayTable);
727
728 ////////////////////////////
729 // anti_delta baryons
730 // anti_delta(1232)++
731 // clang-format off
732 particle = new G4ExcitedBaryons(
733 "anti_delta++", 1.232*GeV, 117.0*MeV, -2.0*eplus,
734 3, +1, 0,
735 3, -3, 0,
736 "baryon", 0, -1, -2224,
737 false, 0.0, nullptr);
738 // clang-format on
739
740 // set sub type
741 particle->SetMultipletName("delta(1232)");
742 // create decay table
743 decayTable = new G4DecayTable();
744 // create decay channel of delta++ -> anti_proton + pi-
745 // parent BR #daughters
746 mode = new G4PhaseSpaceDecayChannel("anti_delta++", 1.000, 2, "anti_proton", "pi-");
747 // add decay table
748 decayTable->Insert(mode);
749 particle->SetDecayTable(decayTable);
750
751 // anti_delta(1232)+
752 // clang-format off
753 particle = new G4ExcitedBaryons(
754 "anti_delta+", 1.232*GeV, 117.0*MeV, -1.0*eplus,
755 3, +1, 0,
756 3, -1, 0,
757 "baryon", 0, -1, -2214,
758 false, 0.0, nullptr);
759 // clang-format on
760
761 // set sub type
762 particle->SetMultipletName("delta(1232)");
763 // create decay table
764 decayTable = new G4DecayTable();
765 // create decay channel of anti_delta+ -> anti_proton + pi0
766 // parent BR #daughters
767 mode = new G4PhaseSpaceDecayChannel("anti_delta+", 0.500, 2, "anti_proton", "pi0");
768 decayTable->Insert(mode);
769 // create decay channel of anti_delta+ -> anti_neutron + pi-
770 // parent BR #daughters
771 mode = new G4PhaseSpaceDecayChannel("anti_delta+", 0.500, 2, "anti_neutron", "pi-");
772 decayTable->Insert(mode);
773 particle->SetDecayTable(decayTable);
774
775 // anti_delta(1232)0
776 // clang-format off
777 particle = new G4ExcitedBaryons(
778 "anti_delta0", 1.232*GeV, 117.0*MeV, +0.0*eplus,
779 3, +1, 0,
780 3, +1, 0,
781 "baryon", 0, -1, -2114,
782 false, 0.0, nullptr);
783 // clang-format on
784
785 // set sub type
786 particle->SetMultipletName("delta(1232)");
787 // create decay table
788 decayTable = new G4DecayTable();
789 // create decay channel of anti_delta+ -> anti_proton + pi+
790 // parent BR #daughters
791 mode = new G4PhaseSpaceDecayChannel("anti_delta0", 0.500, 2, "anti_proton", "pi+");
792 decayTable->Insert(mode);
793 // create decay channel of delta+ -> neutron + pi0
794 // parent BR #daughters
795 mode = new G4PhaseSpaceDecayChannel("anti_delta0", 0.500, 2, "anti_neutron", "pi0");
796 decayTable->Insert(mode);
797 particle->SetDecayTable(decayTable);
798
799 // anti_delta(1232)-
800 // clang-format off
801 particle = new G4ExcitedBaryons(
802 "anti_delta-", 1.232*GeV, 117.0*MeV, +1.0*eplus,
803 3, +1, 0,
804 3, +3, 0,
805 "baryon", 0, -1, -1114,
806 false, 0.0, nullptr);
807 // clang-format on
808
809 // set sub type
810 particle->SetMultipletName("delta(1232)");
811 // create decay table
812 decayTable = new G4DecayTable();
813 // create decay channel of delta- -> neutron + pi+
814 // parent BR #daughters
815 mode = new G4PhaseSpaceDecayChannel("anti_delta-", 1.000, 2, "anti_neutron", "pi+");
816 decayTable->Insert(mode);
817 particle->SetDecayTable(decayTable);
818}
819
821{
822 G4DecayTable* decayTable;
823 G4VDecayChannel* mode;
824 G4ExcitedMesons* particle;
825
826 // Construct Resonace particles as dynamic object
827 // Arguments for constructor are as follows
828 // name mass width charge
829 // 2*spin parity C-conjugation
830 // 2*Isospin 2*Isospin3 G-parity
831 // type lepton number baryon number PDG encoding
832 // stable lifetime decay table
833
834 // vector mesons
835 // omega
836 // clang-format off
837 particle = new G4ExcitedMesons(
838 "omega", 782.65*MeV, 8.68*MeV, +0.0*eplus,
839 2, -1, -1,
840 0, +0, -1,
841 "meson", 0, 0, 223,
842 false, 0.0, nullptr);
843 // clang-format on
844
845 particle->SetAntiPDGEncoding(223);
846 // set sub type
847 particle->SetMultipletName("omega");
848 // create decay table
849 decayTable = new G4DecayTable();
850 // create decay channel of omega -> pi+ + pi- + pi0
851 // parent BR #daughters
852 mode = new G4PhaseSpaceDecayChannel("omega", 0.891, 3, "pi+", "pi-", "pi0");
853 // add decay table
854 decayTable->Insert(mode);
855
856 // create decay channel of omega -> gamma + pi0
857 // parent BR #daughters
858 mode = new G4PhaseSpaceDecayChannel("omega", 0.0890, 2, "gamma", "pi0");
859 // add decay table
860 decayTable->Insert(mode);
861
862 // create decay channel of omega -> pi+ + pi-
863 // parent BR #daughters
864 mode = new G4PhaseSpaceDecayChannel("omega", 0.0170, 2, "pi+", "pi-");
865 // add decay table
866 decayTable->Insert(mode);
867 particle->SetDecayTable(decayTable);
868
869 // phi
870 // clang-format off
871 particle = new G4ExcitedMesons(
872 "phi", 1019.46*MeV, 4.249*MeV, +0.0*eplus,
873 2, -1, -1,
874 0, +0, -1,
875 "meson", 0, 0, 333,
876 false, 0.0, nullptr);
877 // clang-format on
878
879 particle->SetAntiPDGEncoding(333);
880 // set sub type
881 particle->SetMultipletName("phi");
882 // create decay table
883 decayTable = new G4DecayTable();
884 // create decay channel of phi -> kaon+ + kaon-
885 // parent BR #daughters
886 mode = new G4PhaseSpaceDecayChannel("phi", 0.492, 2, "kaon+", "kaon-");
887 decayTable->Insert(mode);
888 // create decay channel of phi -> kaon0S + kaon0L
889 // parent BR #daughters
890 mode = new G4PhaseSpaceDecayChannel("phi", 0.340, 2, "kaon0S", "kaon0L");
891 // add decay table
892 decayTable->Insert(mode);
893 // create decay channel of phi -> rho0 + pi0
894 // parent BR #daughters
895 mode = new G4PhaseSpaceDecayChannel("phi", 0.153, 2, "rho0", "pi0");
896 // add decay table
897 decayTable->Insert(mode);
898 particle->SetDecayTable(decayTable);
899
900 // rho+
901 // clang-format off
902 particle = new G4ExcitedMesons(
903 "rho+", 775.11*MeV, 149.1*MeV, +1.0*eplus,
904 2, -1, -1,
905 2, +2, +1,
906 "meson", 0, 0, 213,
907 false, 0.0, nullptr);
908 // clang-format on
909
910 // set sub type
911 particle->SetMultipletName("rho");
912 // create decay table
913 decayTable = new G4DecayTable();
914 // create decay channel of rho+ -> pi+ + pi0
915 // parent BR #daughters
916 mode = new G4PhaseSpaceDecayChannel("rho+", 1.000, 2, "pi+", "pi0");
917 // add decay table
918 decayTable->Insert(mode);
919 particle->SetDecayTable(decayTable);
920
921 // rho-
922 // clang-format off
923 particle = new G4ExcitedMesons(
924 "rho-", 775.11*MeV, 149.1*MeV, -1.0*eplus,
925 2, -1, -1,
926 2, -2, +1,
927 "meson", 0, 0, -213,
928 false, 0.0, nullptr);
929 // clang-format on
930
931 // set sub type
932 particle->SetMultipletName("rho");
933 // create decay table
934 decayTable = new G4DecayTable();
935 // create decay channel of rho- -> pi- + pi0
936 // parent BR #daughters
937 mode = new G4PhaseSpaceDecayChannel("rho-", 1.000, 2, "pi-", "pi0");
938 // add decay table
939 decayTable->Insert(mode);
940 particle->SetDecayTable(decayTable);
941
942 // rho0
943 // clang-format off
944 particle = new G4ExcitedMesons(
945 "rho0", 775.26*MeV, 147.4*MeV, 0.0,
946 2, -1, -1,
947 2, 0, +1,
948 "meson", 0, 0, 113,
949 false, 0.0*ns, nullptr );
950 // clang-format on
951 particle->SetAntiPDGEncoding(113);
952 // set sub type
953 particle->SetMultipletName("rho");
954 // create decay table
955 decayTable = new G4DecayTable();
956 // create decay channel of rho0 -> pi+ + pi-
957 // parent BR #daughters
958 mode = new G4PhaseSpaceDecayChannel("rho0", 1.000, 2, "pi+", "pi-");
959 // add decay table
960 decayTable->Insert(mode);
961 particle->SetDecayTable(decayTable);
962
963 // a0(980)+
964 // clang-format off
965 particle = new G4ExcitedMesons(
966 "a0(980)+", 980.0*MeV, 60.0*MeV, +1.0*eplus,
967 0, +1, +1,
968 2, +2, -1,
969 "meson", 0, 0, 9000211,
970 false, 0.0, nullptr);
971 // clang-format on
972 // set sub type
973 particle->SetMultipletName("a0(980)");
974 // create decay table
975 decayTable = new G4DecayTable();
976 // create decay channel of a0(980)+ -> eta + pi+
977 // parent BR #daughters
978 mode = new G4PhaseSpaceDecayChannel("a0(980)+", 1.000, 2, "pi+", "eta");
979 // add decay table
980 decayTable->Insert(mode);
981 particle->SetDecayTable(decayTable);
982
983 // a0(980)-
984 // clang-format off
985 particle = new G4ExcitedMesons(
986 "a0(980)-", 980.0*MeV, 60.0*MeV, -1.0*eplus,
987 0, +1, +1,
988 2, -2, -1,
989 "meson", 0, 0, -9000211,
990 false, 0.0, nullptr);
991 // clang-format on
992
993 // set sub type
994 particle->SetMultipletName("a0(980)");
995 // create decay table
996 decayTable = new G4DecayTable();
997 // create decay channel of a0(980)- -> eta + pi-
998 // parent BR #daughters
999 mode = new G4PhaseSpaceDecayChannel("a0(980)-", 1.000, 2, "pi-", "eta");
1000 // add decay table
1001 decayTable->Insert(mode);
1002 particle->SetDecayTable(decayTable);
1003
1004 // a0(980)0
1005 // clang-format off
1006 particle = new G4ExcitedMesons(
1007 "a0(980)0", 980.0*MeV, 75.0*MeV, 0.0,
1008 0, +1, +1,
1009 2, 0, -1,
1010 "meson", 0, 0, 9000111,
1011 false, 0.0, nullptr);
1012 // clang-format on
1013 particle->SetAntiPDGEncoding(9000111);
1014 // set sub type
1015 particle->SetMultipletName("a0(980)");
1016 // create decay table
1017 decayTable = new G4DecayTable();
1018 // create decay channel of a0(980)0 -> eta + pi0
1019 // parent BR #daughters
1020 mode = new G4PhaseSpaceDecayChannel("a0(980)0", 1.000, 2, "pi0", "eta");
1021 // add decay table
1022 decayTable->Insert(mode);
1023 particle->SetDecayTable(decayTable);
1024
1025 // f0(500) (was f0(500) f0(400-1200))
1026 // clang-format off
1027 particle = new G4ExcitedMesons(
1028 "f0(500)", 600.0*MeV, 450.0*MeV, 0.0,
1029 0, +1, +1,
1030 0, 0, +1,
1031 "meson", 0, 0, 9000221,
1032 false, 0.0, nullptr);
1033 // clang-format on
1034
1035 particle->SetAntiPDGEncoding(9000221);
1036 // set sub type
1037 particle->SetMultipletName("f0(500)");
1038 // create decay table
1039 decayTable = new G4DecayTable();
1040 // create decay channel of f0(500) -> pi + pi
1041 // parent BR #daughters
1042 mode = new G4PhaseSpaceDecayChannel("f0(500)", 1.000, 2, "pi+", "pi-");
1043 // add decay table
1044 decayTable->Insert(mode);
1045 particle->SetDecayTable(decayTable);
1046
1047 // f0(980)
1048 // clang-format off
1049 particle = new G4ExcitedMesons(
1050 "f0(980)", 990.0*MeV, 55.0*MeV, 0.0,
1051 0, +1, +1,
1052 0, 0, +1,
1053 "meson", 0, 0, 9010221,
1054 false, 0.0, nullptr);
1055 // clang-format on
1056
1057 particle->SetAntiPDGEncoding(9010221);
1058 // set sub type
1059 particle->SetMultipletName("f0(980)");
1060 // create decay table
1061 decayTable = new G4DecayTable();
1062 // create decay channel of f0(980) -> pi + pi
1063 // parent BR #daughters
1064 mode = new G4PhaseSpaceDecayChannel("f0(980)", 1.000, 2, "pi+", "pi-");
1065 // add decay table
1066 decayTable->Insert(mode);
1067 particle->SetDecayTable(decayTable);
1068
1069 // eta(1405)
1070 // clang-format off
1071 particle = new G4ExcitedMesons(
1072 "eta(1405)", 1408.68*MeV, 50.3*MeV, 0.0,
1073 0, -1, +1,
1074 0, 0, +1,
1075 "meson", 0, 0, 9020221,
1076 false, 0.0, nullptr);
1077 // clang-format on
1078
1079 particle->SetAntiPDGEncoding(9020221);
1080 // set sub type
1081 particle->SetMultipletName("eta(1405)");
1082 // create decay table
1083 decayTable = new G4DecayTable();
1084 // create decay channel of eta(1405) -> rho + rho
1085 // parent BR #daughters
1086 mode = new G4PhaseSpaceDecayChannel("eta(1405)", 1.000, 2, "rho+", "rho-");
1087 // add decay table
1088 decayTable->Insert(mode);
1089 particle->SetDecayTable(decayTable);
1090
1091 // f0(1500)
1092 // clang-format off
1093 particle = new G4ExcitedMesons(
1094 "f0(1500)", 1522.0*MeV, 108.0*MeV, 0.0,
1095 0, +1, +1,
1096 0, 0, +1,
1097 "meson", 0, 0, 9030221,
1098 false, 0.0, nullptr);
1099 // clang-format on
1100
1101 particle->SetAntiPDGEncoding(9030221);
1102 // set sub type
1103 particle->SetMultipletName("f0(1500)");
1104 // create decay table
1105 decayTable = new G4DecayTable();
1106 // create decay channel of f0(1500) -> eta + eta
1107 // parent BR #daughters
1108 mode = new G4PhaseSpaceDecayChannel("f0(1500)", 1.000, 2, "eta", "eta");
1109 // add decay table
1110 decayTable->Insert(mode);
1111 particle->SetDecayTable(decayTable);
1112
1113 // f0(1710)
1114 // clang-format off
1115 particle = new G4ExcitedMesons(
1116 "f0(1710)", 1732.91*MeV, 150.4*MeV, 0.0,
1117 0, +1, +1,
1118 0, 0, +1,
1119 "meson", 0, 0, 10331,
1120 false, 0.0, nullptr);
1121 // clang-format on
1122
1123 particle->SetAntiPDGEncoding(10331);
1124 // set sub type
1125 particle->SetMultipletName("f0(1710)");
1126 // create decay table
1127 decayTable = new G4DecayTable();
1128
1129 // create decay channel of f0(1710) -> k0 + k0
1130 // parent BR #daughters
1131 mode = new G4PhaseSpaceDecayChannel("f0(1710)", 0.40, 2, "kaon0S", "kaon0S");
1132 // add decay table
1133 decayTable->Insert(mode);
1134
1135 // create decay channel of f0(1710) -> k+ + k+
1136 // parent BR #daughters
1137 mode = new G4PhaseSpaceDecayChannel("f0(1710)", 0.40, 2, "kaon+", "kaon-");
1138 // add decay table
1139 decayTable->Insert(mode);
1140
1141 // create decay channel of f0(1710) -> eta + eta
1142 // parent BR #daughters
1143 mode = new G4PhaseSpaceDecayChannel("f0(1710)", 0.20, 2, "eta", "eta");
1144 // add decay table
1145 decayTable->Insert(mode);
1146 particle->SetDecayTable(decayTable);
1147
1148 // k_star+
1149 // clang-format off
1150 particle = new G4ExcitedMesons(
1151 "k_star+", 891.67*MeV, 51.4*MeV, +1.0*eplus,
1152 2, -1, 0,
1153 1, +1, 0,
1154 "meson", 0, 0, 323,
1155 false, 0.0, nullptr);
1156 // clang-format on
1157
1158 // set sub type
1159 particle->SetMultipletName("k_star");
1160 // create decay table
1161 decayTable = new G4DecayTable();
1162 // create decay channel of k_star+ -> kaon+ + pi0
1163 // parent BR #daughters
1164 mode = new G4PhaseSpaceDecayChannel("k_star+", 0.500, 2, "kaon+", "pi0");
1165 // add decay table
1166 decayTable->Insert(mode);
1167 // create decay channel of k_star+ -> kaon+ + pi0
1168 // parent BR #daughters
1169 mode = new G4PhaseSpaceDecayChannel("k_star+", 0.500, 2, "kaon0", "pi+");
1170 // add decay table
1171 decayTable->Insert(mode);
1172 particle->SetDecayTable(decayTable);
1173
1174 // k_star0
1175 // clang-format off
1176 particle = new G4ExcitedMesons(
1177 "k_star0", 895.55*MeV, 47.3*MeV, 0.0*eplus,
1178 2, -1, 0,
1179 1, -1, 0,
1180 "meson", 0, 0, 313,
1181 false, 0.0, nullptr);
1182 // clang-format on
1183
1184 // set sub type
1185 particle->SetMultipletName("k_star");
1186 // create decay table
1187 decayTable = new G4DecayTable();
1188 // create decay channel of k_star0 -> kaon+ + pi-
1189 // parent BR #daughters
1190 mode = new G4PhaseSpaceDecayChannel("k_star0", 0.500, 2, "kaon+", "pi-");
1191 // add decay table
1192 decayTable->Insert(mode);
1193 // create decay channel of k_star0 -> kaon0 + pi0
1194 // parent BR #daughters
1195 mode = new G4PhaseSpaceDecayChannel("k_star0", 0.500, 2, "kaon0", "pi0");
1196 // add decay table
1197 decayTable->Insert(mode);
1198 particle->SetDecayTable(decayTable);
1199
1200 // k_star-
1201 // clang-format off
1202 particle = new G4ExcitedMesons(
1203 "k_star-", 891.67*MeV, 51.4*MeV, -1.0*eplus,
1204 2, -1, 0,
1205 1, +1, 0,
1206 "meson", 0, 0, -323,
1207 false, 0.0, nullptr);
1208 // clang-format on
1209
1210 // set sub type
1211 particle->SetMultipletName("k_star");
1212 // create decay table
1213 decayTable = new G4DecayTable();
1214 // create decay channel of k_star- -> kaon- + pi0
1215 // parent BR #daughters
1216 mode = new G4PhaseSpaceDecayChannel("k_star-", 0.500, 2, "kaon-", "pi0");
1217 // add decay table
1218 decayTable->Insert(mode);
1219 // create decay channel of k_star- -> anti_kaon0 + pi-
1220 // parent BR #daughters
1221 mode = new G4PhaseSpaceDecayChannel("k_star-", 0.500, 2, "anti_kaon0", "pi-");
1222 // add decay table
1223 decayTable->Insert(mode);
1224 particle->SetDecayTable(decayTable);
1225
1226 // anti_k_star0
1227 // clang-format off
1228 particle = new G4ExcitedMesons(
1229 "anti_k_star0", 895.55*MeV, 47.3*MeV, 0.0*eplus,
1230 2, -1, 0,
1231 1, -1, 0,
1232 "meson", 0, 0, -313,
1233 false, 0.0, nullptr);
1234 // clang-format on
1235
1236 // set sub type
1237 particle->SetMultipletName("k_star");
1238 // create decay table
1239 decayTable = new G4DecayTable();
1240 // create decay channel of anti_k_star0 -> kaon- + pi+
1241 // parent BR #daughters
1242 mode = new G4PhaseSpaceDecayChannel("anti_k_star0", 0.500, 2, "kaon-", "pi+");
1243 // add decay table
1244 decayTable->Insert(mode);
1245 // create decay channel of anti_k_star0 -> anti_kaon0 + pi0
1246 // parent BR #daughters
1247 mode = new G4PhaseSpaceDecayChannel("anti_k_star0", 0.500, 2, "anti_kaon0", "pi0");
1248 // add decay table
1249 decayTable->Insert(mode);
1250 particle->SetDecayTable(decayTable);
1251}
bool G4bool
Definition G4Types.hh:86
void Insert(G4VDecayChannel *aChannel)
virtual void Construct(G4int indexOfState=-1)
void SetMultipletName(const G4String &name)
virtual void Construct(G4int indexOfState=-1)
void SetMultipletName(const G4String &)
void SetAntiPDGEncoding(G4int aEncoding)
void SetDecayTable(G4DecayTable *aDecayTable)
#define ns(x)
Definition xmltok.c:1649