Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/particles/shortlived/src/G4ShortLivedConstructor.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

  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 
 37 #include "G4ShortLivedConstructor.hh"
 38 
 39 #include "G4DecayTable.hh"
 40 #include "G4DiQuarks.hh"
 41 #include "G4ExcitedBaryons.hh"
 42 #include "G4ExcitedDeltaConstructor.hh"
 43 #include "G4ExcitedLambdaConstructor.hh"
 44 #include "G4ExcitedMesonConstructor.hh"
 45 #include "G4ExcitedMesons.hh"
 46 #include "G4ExcitedNucleonConstructor.hh"
 47 #include "G4ExcitedSigmaConstructor.hh"
 48 #include "G4ExcitedXiConstructor.hh"
 49 #include "G4Gluons.hh"
 50 #include "G4ParticleDefinition.hh"
 51 #include "G4PhaseSpaceDecayChannel.hh"
 52 #include "G4Quarks.hh"
 53 #include "G4SystemOfUnits.hh"
 54 #include "G4VDecayChannel.hh"
 55 
 56 G4bool G4ShortLivedConstructor::isConstructed = false;
 57 
 58 void G4ShortLivedConstructor::ConstructParticle()
 59 {
 60   if (!isConstructed) {
 61     ConstructQuarks();
 62     ConstructResonances();
 63     isConstructed = true;
 64   }
 65 }
 66 
 67 void G4ShortLivedConstructor::ConstructQuarks()
 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 
582 void G4ShortLivedConstructor::ConstructResonances()
583 {
584   ConstructBaryons();
585   ConstructMesons();
586 
587   // N*
588   G4ExcitedNucleonConstructor nucleons;
589   nucleons.Construct();
590 
591   // Delta*
592   G4ExcitedDeltaConstructor deltas;
593   deltas.Construct();
594 
595   // Lambda*
596   G4ExcitedLambdaConstructor lamdas;
597   lamdas.Construct();
598 
599   // Sigma*
600   G4ExcitedSigmaConstructor sigmas;
601   sigmas.Construct();
602 
603   // Xi*
604   G4ExcitedXiConstructor xis;
605   xis.Construct();
606 
607   // Mesons
608   G4ExcitedMesonConstructor mesons;
609   mesons.Construct();
610 }
611 
612 void G4ShortLivedConstructor::ConstructBaryons()
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 
818 void G4ShortLivedConstructor::ConstructMesons()
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 }
1250