ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4ShortLivedConstructor.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4ShortLivedConstructor.cc
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 //
28 //
29 // --------------------------------------------------------------
30 // GEANT 4 class implementation file
31 //
32 // Add "rho0" 25 Feb. 2000 H.Kurashige
33 // Fix spin/isospin number for quarks 06 Apr. 2001 H.Kurashige
34 // update quark mass 11 Oct. 2006 H.Kurashige
35 // update meson/baryon masses 11 Oct. 2006 H.Kurashige
36 // Added charm and bottom diquarks 09 Oct. 2019 V.Uzhinsky
37 
39 
40 #include "G4SystemOfUnits.hh"
41 #include "G4ParticleDefinition.hh"
42 #include "G4ParticleTable.hh"
44 #include "G4VDecayChannel.hh"
45 #include "G4DecayTable.hh"
46 
48 
50 {
51 }
52 
54 {
55 }
56 
57 
59 {
60  if (!isConstructed){
63  isConstructed = true;
64  }
65 }
66 
67 #include "G4DiQuarks.hh"
68 #include "G4Quarks.hh"
69 #include "G4Gluons.hh"
71 {
73 
74  // Construct Quraks/Gluons as dynamic object
75  // Arguments for constructor are as follows
76  // name mass width charge
77  // 2*spin parity C-conjugation
78  // 2*Isospin 2*Isospin3 G-parity
79  // type lepton number baryon number PDG encoding
80  // stable lifetime decay table
81 
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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, NULL);
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", 7.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, NULL);
324 
325  // cd1-Diquark
326  particle = new G4DiQuarks(
327  "cd1_diquark", 7.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, NULL);
332 
333  // cu0-Diquark
334  particle = new G4DiQuarks(
335  "cu0_diquark", 7.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, NULL);
340 
341  // cu1-Diquark
342  particle = new G4DiQuarks(
343  "cu1_diquark", 7.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, NULL);
348 
349  // cs0-Diquark
350  particle = new G4DiQuarks(
351  "cs0_diquark", 7.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, NULL);
356 
357  // cs1-Diquark
358  particle = new G4DiQuarks(
359  "cs1_diquark", 7.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, NULL);
364 
365  // cc1-Diquark
366  particle = new G4DiQuarks(
367  "cc1_diquark", 7.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, NULL);
372 
373  //---------------------------------------------
374 
375  // bd0-Diquark
376  particle = new G4DiQuarks(
377  "bd0_diquark", 7.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, NULL);
382 
383  // bd1-Diquark
384  particle = new G4DiQuarks(
385  "bd1_diquark", 7.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, NULL);
390 
391  // bu0-Diquark
392  particle = new G4DiQuarks(
393  "bu0_diquark", 7.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, NULL);
398 
399  // bu1-Diquark
400  particle = new G4DiQuarks(
401  "bu1_diquark", 7.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, NULL);
406 
407  // bs0-Diquark
408  particle = new G4DiQuarks(
409  "bs0_diquark", 7.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, NULL);
414 
415  // bs1-Diquark
416  particle = new G4DiQuarks(
417  "bs1_diquark", 7.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, NULL);
422 
423  // bc0-Diquark
424  particle = new G4DiQuarks(
425  "bc0_diquark", 7.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, NULL);
430 
431  // bc1-Diquark
432  particle = new G4DiQuarks(
433  "bc1_diquark", 7.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, NULL);
438 
439  // bb1-Diquark
440  particle = new G4DiQuarks(
441  "bb1_diquark", 7.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, NULL);
446 
447  //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
448 
449  // anti cd0-Diquark
450  particle = new G4DiQuarks(
451  "anti_cd0_diquark", 7.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, NULL);
456 
457  // anti cd1-Diquark
458  particle = new G4DiQuarks(
459  "anti_cd1_diquark", 7.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, NULL);
464 
465  // anti cu0-Diquark
466  particle = new G4DiQuarks(
467  "anti_cu0_diquark", 7.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, NULL);
472 
473  // anti cu1-Diquark
474  particle = new G4DiQuarks(
475  "anti_cu1_diquark", 7.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, NULL);
480 
481  // anti cs0-Diquark
482  particle = new G4DiQuarks(
483  "anti_cs0_diquark", 7.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, NULL);
488 
489  // anti cs1-Diquark
490  particle = new G4DiQuarks(
491  "anti_cs1_diquark", 7.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, NULL);
496 
497  // anti cc1-Diquark
498  particle = new G4DiQuarks(
499  "anti_cc1_diquark", 7.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, NULL);
504 
505  //---------------------------------------------
506 
507  // anti bd0-Diquark
508  particle = new G4DiQuarks(
509  "anti_bd0_diquark", 7.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, NULL);
514 
515  // anti bd1-Diquark
516  particle = new G4DiQuarks(
517  "anti_bd1_diquark", 7.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, NULL);
522 
523  // anti bu0-Diquark
524  particle = new G4DiQuarks(
525  "anti_bu0_diquark", 7.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, NULL);
530 
531  // anti bu1-Diquark
532  particle = new G4DiQuarks(
533  "anti_bu1_diquark", 7.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, NULL);
538 
539  // anti bs0-Diquark
540  particle = new G4DiQuarks(
541  "anti_bs0_diquark", 7.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, NULL);
546 
547  // anti bs1-Diquark
548  particle = new G4DiQuarks(
549  "anti_bs1_diquark", 7.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, NULL);
554 
555  // anti bc0-Diquark
556  particle = new G4DiQuarks(
557  "anti_bc0_diquark", 7.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, NULL);
562 
563  // anti bc1-Diquark
564  particle = new G4DiQuarks(
565  "anti_bc1_diquark", 7.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, NULL);
570 
571  // anti bb1-Diquark
572  particle = new G4DiQuarks(
573  "anti_bb1_diquark", 7.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, NULL);
578 
579  //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
580 
581  particle = NULL;
582 }
583 
588 #include "G4ExcitedXiConstructor.hh"
591 {
593  ConstructMesons();
594 
595  // N*
597  nucleons.Construct();
598 
599  // Delta*
601  deltas.Construct();
602 
603  // Lambda*
605  lamdas.Construct();
606 
607  // Sigma*
609  sigmas.Construct();
610 
611  // Xi*
613  xis.Construct();
614 
615  // Mesons
617  mesons.Construct();
618 
619 }
620 
621 
622 #include "G4ExcitedBaryons.hh"
624 {
625  G4DecayTable* decayTable;
626  G4VDecayChannel* mode;
628 
629  // Construct Resonace particles as dynamic object
630  // Arguments for constructor are as follows
631  // name mass width charge
632  // 2*spin parity C-conjugation
633  // 2*Isospin 2*Isospin3 G-parity
634  // type lepton number baryon number PDG encoding
635  // stable lifetime decay table
636 
637  // delta baryons
638  // delta(1232)++
639  particle = new G4ExcitedBaryons(
640  "delta++", 1.232*GeV, 120.0*MeV, +2.0*eplus,
641  3, +1, 0,
642  3, +3, 0,
643  "baryon", 0, +1, 2224,
644  false, 0.0, NULL);
645  // set sub type
646  particle->SetMultipletName("delta");
647  // create decay table
648  decayTable = new G4DecayTable();
649  // create decay channel of delta++ -> proton + pi+
650  // parent BR #daughters
651  mode = new G4PhaseSpaceDecayChannel("delta++",1.000, 2,
652  "proton","pi+");
653  // add decay table
654  decayTable->Insert(mode);
655  particle->SetDecayTable(decayTable);
656 
657  // delta(1232)+
658  particle = new G4ExcitedBaryons(
659  "delta+", 1.232*GeV, 120.0*MeV, +1.0*eplus,
660  3, +1, 0,
661  3, +1, 0,
662  "baryon", 0, +1, 2214,
663  false, 0.0, NULL);
664  // set sub type
665  particle->SetMultipletName("delta(1232)");
666  // create decay table
667  decayTable = new G4DecayTable();
668  // create decay channel of delta+ -> proton + Gamma
669  // parent BR #daughters
670  mode = new G4PhaseSpaceDecayChannel("delta+", 0.01, 2,
671  "proton","gamma");
672  decayTable->Insert(mode);
673  // create decay channel of delta+ -> neutron + pi+
674  // parent BR #daughters
675  // create decay channel of delta+ -> proton + pi0
676  // parent BR #daughters
677  mode = new G4PhaseSpaceDecayChannel("delta+", 0.495, 2,
678  "proton","pi0");
679  decayTable->Insert(mode);
680  // create decay channel of delta+ -> neutron + pi+
681  // parent BR #daughters
682  mode = new G4PhaseSpaceDecayChannel("delta+", 0.495, 2,
683  "neutron","pi+");
684  decayTable->Insert(mode);
685  particle->SetDecayTable(decayTable);
686 
687  // delta(1232)0
688  particle = new G4ExcitedBaryons(
689  "delta0", 1.232*GeV, 120.0*MeV, +0.0*eplus,
690  3, +1, 0,
691  3, -1, 0,
692  "baryon", 0, +1, 2114,
693  false, 0.0, NULL);
694  // set sub type
695  particle->SetMultipletName("delta(1232)");
696  // create decay table
697  decayTable = new G4DecayTable();
698  // create decay channel of delta+ -> neutron + gamma
699  // parent BR #daughters
700  mode = new G4PhaseSpaceDecayChannel("delta0", 0.01, 2,
701  "neutron","gamma");
702  decayTable->Insert(mode);
703  // create decay channel of delta+ -> proton + pi-
704  // parent BR #daughters
705  mode = new G4PhaseSpaceDecayChannel("delta0", 0.495, 2,
706  "proton","pi-");
707  decayTable->Insert(mode);
708  // create decay channel of delta+ -> neutron + pi0
709  // parent BR #daughters
710  mode = new G4PhaseSpaceDecayChannel("delta0", 0.495, 2,
711  "neutron","pi0");
712  decayTable->Insert(mode);
713  particle->SetDecayTable(decayTable);
714 
715  // delta(1232)-
716  particle = new G4ExcitedBaryons(
717  "delta-", 1.232*GeV, 117.0*MeV, -1.0*eplus,
718  3, +1, 0,
719  3, -3, 0,
720  "baryon", 0, +1, 1114,
721  false, 0.0, NULL);
722  // set sub type
723  particle->SetMultipletName("delta(1232)");
724  // create decay table
725  decayTable = new G4DecayTable();
726  // create decay channel of delta+ -> neutron + pi-
727  // parent BR #daughters
728  mode = new G4PhaseSpaceDecayChannel("delta-", 1.000, 2,
729  "neutron","pi-");
730  decayTable->Insert(mode);
731  particle->SetDecayTable(decayTable);
732 
733 
735  // anti_delta baryons
736  // anti_delta(1232)++
737  particle = new G4ExcitedBaryons(
738  "anti_delta++", 1.232*GeV, 120.0*MeV, -2.0*eplus,
739  3, +1, 0,
740  3, -3, 0,
741  "baryon", 0, -1, -2224,
742  false, 0.0, NULL);
743  // set sub type
744  particle->SetMultipletName("delta(1232)");
745  // create decay table
746  decayTable = new G4DecayTable();
747  // create decay channel of delta++ -> anti_proton + pi-
748  // parent BR #daughters
749  mode = new G4PhaseSpaceDecayChannel("anti_delta++",1.000, 2,
750  "anti_proton","pi-");
751  // add decay table
752  decayTable->Insert(mode);
753  particle->SetDecayTable(decayTable);
754 
755  // anti_delta(1232)+
756  particle = new G4ExcitedBaryons(
757  "anti_delta+", 1.232*GeV, 120.0*MeV, -1.0*eplus,
758  3, +1, 0,
759  3, -1, 0,
760  "baryon", 0, -1, -2214,
761  false, 0.0, NULL);
762  // set sub type
763  particle->SetMultipletName("delta(1232)");
764  // create decay table
765  decayTable = new G4DecayTable();
766  // create decay channel of anti_delta+ -> anti_proton + pi0
767  // parent BR #daughters
768  mode = new G4PhaseSpaceDecayChannel("anti_delta+", 0.500, 2,
769  "anti_proton","pi0");
770  decayTable->Insert(mode);
771  // create decay channel of anti_delta+ -> anti_neutron + pi-
772  // parent BR #daughters
773  mode = new G4PhaseSpaceDecayChannel("anti_delta+", 0.500, 2,
774  "anti_neutron","pi-");
775  decayTable->Insert(mode);
776  particle->SetDecayTable(decayTable);
777 
778  // anti_delta(1232)0
779  particle = new G4ExcitedBaryons(
780  "anti_delta0", 1.232*GeV, 120.0*MeV, +0.0*eplus,
781  3, +1, 0,
782  3, +1, 0,
783  "baryon", 0, -1, -2114,
784  false, 0.0, NULL);
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,
792  "anti_proton","pi+");
793  decayTable->Insert(mode);
794  // create decay channel of delta+ -> neutron + pi0
795  // parent BR #daughters
796  mode = new G4PhaseSpaceDecayChannel("anti_delta0", 0.500, 2,
797  "anti_neutron","pi0");
798  decayTable->Insert(mode);
799  particle->SetDecayTable(decayTable);
800 
801  // anti_delta(1232)-
802  particle = new G4ExcitedBaryons(
803  "anti_delta-", 1.232*GeV, 117.0*MeV, +1.0*eplus,
804  3, +1, 0,
805  3, +3, 0,
806  "baryon", 0, -1, -1114,
807  false, 0.0, NULL);
808  // set sub type
809  particle->SetMultipletName("delta(1232)");
810  // create decay table
811  decayTable = new G4DecayTable();
812  // create decay channel of delta- -> neutron + pi+
813  // parent BR #daughters
814  mode = new G4PhaseSpaceDecayChannel("anti_delta-", 1.000, 2,
815  "anti_neutron","pi+");
816  decayTable->Insert(mode);
817  particle->SetDecayTable(decayTable);
818 
819 
820 
821 }
822 #include "G4ExcitedMesons.hh"
824 {
825  G4DecayTable* decayTable;
826  G4VDecayChannel* mode;
828 
829  // Construct Resonace particles as dynamic object
830  // Arguments for constructor are as follows
831  // name mass width charge
832  // 2*spin parity C-conjugation
833  // 2*Isospin 2*Isospin3 G-parity
834  // type lepton number baryon number PDG encoding
835  // stable lifetime decay table
836 
837  // vector mesons
838  // omega
839  particle = new G4ExcitedMesons(
840  "omega", 782.65*MeV, 8.49*MeV, +0.0*eplus,
841  2, -1, -1,
842  0, +0, -1,
843  "meson", 0, 0, 223,
844  false, 0.0, NULL);
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,
853  "pi+","pi-","pi0");
854  // add decay table
855  decayTable->Insert(mode);
856 
857  // create decay channel of omega -> gamma + pi0
858  // parent BR #daughters
859  mode = new G4PhaseSpaceDecayChannel("omega",0.0890, 2,
860  "gamma","pi0");
861  // add decay table
862  decayTable->Insert(mode);
863 
864  // create decay channel of omega -> pi+ + pi-
865  // parent BR #daughters
866  mode = new G4PhaseSpaceDecayChannel("omega",0.0170, 2,
867  "pi+","pi-");
868  // add decay table
869  decayTable->Insert(mode);
870  particle->SetDecayTable(decayTable);
871 
872  // phi
873  particle = new G4ExcitedMesons(
874  "phi", 1019.46*MeV, 4.247*MeV, +0.0*eplus,
875  2, -1, -1,
876  0, +0, -1,
877  "meson", 0, 0, 333,
878  false, 0.0, NULL);
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,
887  "kaon+","kaon-");
888  decayTable->Insert(mode);
889  // create decay channel of phi -> kaon0S + kaon0L
890  // parent BR #daughters
891  mode = new G4PhaseSpaceDecayChannel("phi",0.340, 2,
892  "kaon0S","kaon0L");
893  // add decay table
894  decayTable->Insert(mode);
895  // create decay channel of phi -> rho0 + pi0
896  // parent BR #daughters
897  mode = new G4PhaseSpaceDecayChannel("phi",0.153, 2,
898  "rho0","pi0");
899  // add decay table
900  decayTable->Insert(mode);
901  particle->SetDecayTable(decayTable);
902 
903  // rho+
904  particle = new G4ExcitedMesons(
905  "rho+", 775.8*MeV, 150.3*MeV, +1.0*eplus,
906  2, -1, -1,
907  2, +2, +1,
908  "meson", 0, 0, 213,
909  false, 0.0, NULL);
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,
917  "pi+","pi0");
918  // add decay table
919  decayTable->Insert(mode);
920  particle->SetDecayTable(decayTable);
921 
922  // rho-
923  particle = new G4ExcitedMesons(
924  "rho-", 775.8*MeV, 150.3*MeV, -1.0*eplus,
925  2, -1, -1,
926  2, -2, +1,
927  "meson", 0, 0, -213,
928  false, 0.0, NULL);
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,
936  "pi-","pi0");
937  // add decay table
938  decayTable->Insert(mode);
939  particle->SetDecayTable(decayTable);
940 
941  // rho0
942  particle = new G4ExcitedMesons(
943  "rho0", 775.26*MeV, 149.1*MeV, 0.0,
944  2, -1, -1,
945  2, 0, +1,
946  "meson", 0, 0, 113,
947  false, 0.0*ns, NULL );
948  particle->SetAntiPDGEncoding(113);
949  // set sub type
950  particle->SetMultipletName("rho");
951  // create decay table
952  decayTable = new G4DecayTable();
953  // create decay channel of rho0 -> pi+ + pi-
954  // parent BR #daughters
955  mode = new G4PhaseSpaceDecayChannel("rho0",1.000, 2,
956  "pi+","pi-");
957  // add decay table
958  decayTable->Insert(mode);
959  particle->SetDecayTable(decayTable);
960 
961  // a0(980)+
962  particle = new G4ExcitedMesons(
963  "a0(980)+", 980.0*MeV, 60.0*MeV, +1.0*eplus,
964  0, +1, +1,
965  2, +2, -1,
966  "meson", 0, 0, 9000211,
967  false, 0.0, NULL);
968  // set sub type
969  particle->SetMultipletName("a0(980)");
970  // create decay table
971  decayTable = new G4DecayTable();
972  // create decay channel of a0(980)+ -> eta + pi+
973  // parent BR #daughters
974  mode = new G4PhaseSpaceDecayChannel("a0(980)+",1.000, 2,
975  "pi+","eta");
976  // add decay table
977  decayTable->Insert(mode);
978  particle->SetDecayTable(decayTable);
979 
980  // a0(980)-
981  particle = new G4ExcitedMesons(
982  "a0(980)-", 980.0*MeV, 60.0*MeV, -1.0*eplus,
983  0, +1, +1,
984  2, -2, -1,
985  "meson", 0, 0, -9000211,
986  false, 0.0, NULL);
987  // set sub type
988  particle->SetMultipletName("a0(980)");
989  // create decay table
990  decayTable = new G4DecayTable();
991  // create decay channel of a0(980)- -> eta + pi-
992  // parent BR #daughters
993  mode = new G4PhaseSpaceDecayChannel("a0(980)-",1.000, 2,
994  "pi-","eta");
995  // add decay table
996  decayTable->Insert(mode);
997  particle->SetDecayTable(decayTable);
998 
999  // a0(980)0
1000  particle = new G4ExcitedMesons(
1001  "a0(980)0", 980.0*MeV, 75.0*MeV, 0.0,
1002  0, +1, +1,
1003  2, 0, -1,
1004  "meson", 0, 0, 9000111,
1005  false, 0.0, NULL);
1006  particle->SetAntiPDGEncoding(9000111);
1007  // set sub type
1008  particle->SetMultipletName("a0(980)");
1009  // create decay table
1010  decayTable = new G4DecayTable();
1011  // create decay channel of a0(980)0 -> eta + pi0
1012  // parent BR #daughters
1013  mode = new G4PhaseSpaceDecayChannel("a0(980)0",1.000, 2,
1014  "pi0","eta");
1015  // add decay table
1016  decayTable->Insert(mode);
1017  particle->SetDecayTable(decayTable);
1018 
1019  // f0(500) (was f0(500) f0(400-1200))
1020  particle = new G4ExcitedMesons(
1021  "f0(500)", 475.0*MeV, 550.0*MeV, 0.0,
1022  0, +1, +1,
1023  0, 0, +1,
1024  "meson", 0, 0, 9000221,
1025  false, 0.0, NULL);
1026  particle->SetAntiPDGEncoding(9000221);
1027  // set sub type
1028  particle->SetMultipletName("f0(500)");
1029  // create decay table
1030  decayTable = new G4DecayTable();
1031  // create decay channel of f0(500) -> pi + pi
1032  // parent BR #daughters
1033  mode = new G4PhaseSpaceDecayChannel("f0(500)",1.000, 2,
1034  "pi+","pi-");
1035  // add decay table
1036  decayTable->Insert(mode);
1037  particle->SetDecayTable(decayTable);
1038 
1039 
1040  // f0(980)
1041  particle = new G4ExcitedMesons(
1042  "f0(980)", 990.0*MeV, 60.0*MeV, 0.0,
1043  0, +1, +1,
1044  0, 0, +1,
1045  "meson", 0, 0, 9010221,
1046  false, 0.0, NULL);
1047  particle->SetAntiPDGEncoding(9010221);
1048  // set sub type
1049  particle->SetMultipletName("f0(980)");
1050  // create decay table
1051  decayTable = new G4DecayTable();
1052  // create decay channel of f0(980) -> pi + pi
1053  // parent BR #daughters
1054  mode = new G4PhaseSpaceDecayChannel("f0(980)",1.000, 2,
1055  "pi+","pi-");
1056  // add decay table
1057  decayTable->Insert(mode);
1058  particle->SetDecayTable(decayTable);
1059 
1060  // eta(1405)
1061  particle = new G4ExcitedMesons(
1062  "eta(1405)", 1408.8*MeV, 51.0*MeV, 0.0,
1063  0, -1, +1,
1064  0, 0, +1,
1065  "meson", 0, 0, 9020221,
1066  false, 0.0, NULL);
1067  particle->SetAntiPDGEncoding(9020221);
1068  // set sub type
1069  particle->SetMultipletName("eta(1405)");
1070  // create decay table
1071  decayTable = new G4DecayTable();
1072  // create decay channel of eta(1405) -> rho + rho
1073  // parent BR #daughters
1074  mode = new G4PhaseSpaceDecayChannel("eta(1405)",1.000, 2,
1075  "rho+","rho-");
1076  // add decay table
1077  decayTable->Insert(mode);
1078  particle->SetDecayTable(decayTable);
1079  // f0(1500)
1080  particle = new G4ExcitedMesons(
1081  "f0(1500)", 1504.0*MeV, 109.0*MeV, 0.0,
1082  0, +1, +1,
1083  0, 0, +1,
1084  "meson", 0, 0, 9030221,
1085  false, 0.0, NULL);
1086  particle->SetAntiPDGEncoding(9030221);
1087  // set sub type
1088  particle->SetMultipletName("f0(1500)");
1089  // create decay table
1090  decayTable = new G4DecayTable();
1091  // create decay channel of f0(1500) -> eta + eta
1092  // parent BR #daughters
1093  mode = new G4PhaseSpaceDecayChannel("f0(1500)",1.000, 2,
1094  "eta","eta");
1095  // add decay table
1096  decayTable->Insert(mode);
1097  particle->SetDecayTable(decayTable);
1098 
1099  // f0(1710)
1100  particle = new G4ExcitedMesons(
1101  "f0(1710)", 1723.0*MeV, 139.0*MeV, 0.0,
1102  0, +1, +1,
1103  0, 0, +1,
1104  "meson", 0, 0, 10331,
1105  false, 0.0, NULL);
1106  particle->SetAntiPDGEncoding(10331);
1107  // set sub type
1108  particle->SetMultipletName("f0(1710)");
1109  // create decay table
1110  decayTable = new G4DecayTable();
1111 
1112  // create decay channel of f0(1710) -> k0 + k0
1113  // parent BR #daughters
1114  mode = new G4PhaseSpaceDecayChannel("f0(1710)",0.40, 2,
1115  "kaon0S","kaon0S");
1116  // add decay table
1117  decayTable->Insert(mode);
1118 
1119  // create decay channel of f0(1710) -> k+ + k+
1120  // parent BR #daughters
1121  mode = new G4PhaseSpaceDecayChannel("f0(1710)",0.40, 2,
1122  "kaon+","kaon-");
1123  // add decay table
1124  decayTable->Insert(mode);
1125 
1126  // create decay channel of f0(1710) -> eta + eta
1127  // parent BR #daughters
1128  mode = new G4PhaseSpaceDecayChannel("f0(1710)",0.20, 2,
1129  "eta","eta");
1130  // add decay table
1131  decayTable->Insert(mode);
1132  particle->SetDecayTable(decayTable);
1133 
1134 
1135  // k_star+
1136  particle = new G4ExcitedMesons(
1137  "k_star+", 891.76*MeV, 50.3*MeV, +1.0*eplus,
1138  2, -1, 0,
1139  1, +1, 0,
1140  "meson", 0, 0, 323,
1141  false, 0.0, NULL);
1142  // set sub type
1143  particle->SetMultipletName("k_star");
1144  // create decay table
1145  decayTable = new G4DecayTable();
1146  // create decay channel of k_star+ -> kaon+ + pi0
1147  // parent BR #daughters
1148  mode = new G4PhaseSpaceDecayChannel("k_star+",0.500, 2,
1149  "kaon+","pi0");
1150  // add decay table
1151  decayTable->Insert(mode);
1152  // create decay channel of k_star+ -> kaon+ + pi0
1153  // parent BR #daughters
1154  mode = new G4PhaseSpaceDecayChannel("k_star+",0.500, 2,
1155  "kaon0","pi+");
1156  // add decay table
1157  decayTable->Insert(mode);
1158  particle->SetDecayTable(decayTable);
1159 
1160  // k_star0
1161  particle = new G4ExcitedMesons(
1162  "k_star0", 895.55*MeV, 47.3*MeV, 0.0*eplus,
1163  2, -1, 0,
1164  1, -1, 0,
1165  "meson", 0, 0, 313,
1166  false, 0.0, NULL);
1167  // set sub type
1168  particle->SetMultipletName("k_star");
1169  // create decay table
1170  decayTable = new G4DecayTable();
1171  // create decay channel of k_star0 -> kaon+ + pi-
1172  // parent BR #daughters
1173  mode = new G4PhaseSpaceDecayChannel("k_star0",0.500, 2,
1174  "kaon+","pi-");
1175  // add decay table
1176  decayTable->Insert(mode);
1177  // create decay channel of k_star0 -> kaon0 + pi0
1178  // parent BR #daughters
1179  mode = new G4PhaseSpaceDecayChannel("k_star0",0.500, 2,
1180  "kaon0","pi0");
1181  // add decay table
1182  decayTable->Insert(mode);
1183  particle->SetDecayTable(decayTable);
1184 
1185  // k_star-
1186  particle = new G4ExcitedMesons(
1187  "k_star-", 891.76*MeV, 50.3*MeV, -1.0*eplus,
1188  2, -1, 0,
1189  1, +1, 0,
1190  "meson", 0, 0, -323,
1191  false, 0.0, NULL);
1192  // set sub type
1193  particle->SetMultipletName("k_star");
1194  // create decay table
1195  decayTable = new G4DecayTable();
1196  // create decay channel of k_star- -> kaon- + pi0
1197  // parent BR #daughters
1198  mode = new G4PhaseSpaceDecayChannel("k_star-",0.500, 2,
1199  "kaon-","pi0");
1200  // add decay table
1201  decayTable->Insert(mode);
1202  // create decay channel of k_star- -> anti_kaon0 + pi-
1203  // parent BR #daughters
1204  mode = new G4PhaseSpaceDecayChannel("k_star-",0.500, 2,
1205  "anti_kaon0","pi-");
1206  // add decay table
1207  decayTable->Insert(mode);
1208  particle->SetDecayTable(decayTable);
1209 
1210 
1211  // anti_k_star0
1212  particle = new G4ExcitedMesons(
1213  "anti_k_star0", 895.55*MeV, 47.3*MeV, 0.0*eplus,
1214  2, -1, 0,
1215  1, -1, 0,
1216  "meson", 0, 0, -313,
1217  false, 0.0, NULL);
1218  // set sub type
1219  particle->SetMultipletName("k_star");
1220  // create decay table
1221  decayTable = new G4DecayTable();
1222  // create decay channel of anti_k_star0 -> kaon- + pi+
1223  // parent BR #daughters
1224  mode = new G4PhaseSpaceDecayChannel("anti_k_star0",0.500, 2,
1225  "kaon-","pi+");
1226  // add decay table
1227  decayTable->Insert(mode);
1228  // create decay channel of anti_k_star0 -> anti_kaon0 + pi0
1229  // parent BR #daughters
1230  mode = new G4PhaseSpaceDecayChannel("anti_k_star0",0.500, 2,
1231  "anti_kaon0","pi0");
1232  // add decay table
1233  decayTable->Insert(mode);
1234  particle->SetDecayTable(decayTable);
1235 
1236 }
1237 
1238 
1239 
1240 
1241 
1242 
1243 
1244 
1245 
1246 
1247 
1248 
1249 
1250 
1251 
1252 
1253 
1254 
1255