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