source: trunk/source/particles/shortlived/src/G4ShortLivedConstructor.cc @ 1329

Last change on this file since 1329 was 1315, checked in by garnier, 14 years ago

update geant4-09-04-beta-cand-01 interfaces-V09-03-09 vis-V09-03-08

File size: 40.8 KB
Line 
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// $Id: G4ShortLivedConstructor.cc,v 1.19 2010/06/11 05:50:20 kurasige Exp $
28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
29//
30//
31// --------------------------------------------------------------
32//      GEANT 4 class implementation file
33//
34//      Add "rho0"                         25  Feb. 2000 H.Kurashige
35//      Fix spin/isospin number for quarks 06  Apr. 2001 H.Kurashige
36//      update quark mass                  11  Oct. 2006 H.Kurashige
37//      update meson/baryon masses         11  Oct. 2006 H.Kurashige
38//      Add AntiNucleiConstructor          11  June 2010 H.Kurashige
39
40#include "G4ShortLivedConstructor.hh"
41
42#include "G4ParticleDefinition.hh"
43#include "G4ParticleTable.hh"
44#include "G4ShortLivedTable.hh"
45#include "G4PhaseSpaceDecayChannel.hh"
46#include "G4VDecayChannel.hh"
47#include "G4DecayTable.hh"
48
49G4bool G4ShortLivedConstructor::isConstructed = false;
50
51G4ShortLivedConstructor::G4ShortLivedConstructor()
52{
53}
54
55G4ShortLivedConstructor::~G4ShortLivedConstructor()
56{
57}
58
59
60void G4ShortLivedConstructor::ConstructParticle()
61{
62  if (!isConstructed){
63    ConstructQuarks();
64    ConstructResonances();
65    ConstructAntiNuclei();
66    isConstructed = true;
67  }
68}
69
70#include "G4AntiNucleiConstructor.hh"
71void G4ShortLivedConstructor::ConstructAntiNuclei()
72{
73  G4AntiNucleiConstructor antiN;
74  antiN.Construct();
75
76}
77
78#include "G4DiQuarks.hh"
79#include "G4Quarks.hh"
80#include "G4Gluons.hh"
81void G4ShortLivedConstructor::ConstructQuarks()
82{
83  G4ParticleDefinition* particle;
84
85  //    Construct Quraks/Gluons as dynamic object
86  //    Arguments for constructor are as follows
87  //               name             mass          width         charge
88  //             2*spin           parity  C-conjugation
89  //          2*Isospin       2*Isospin3       G-parity
90  //               type    lepton number  baryon number   PDG encoding
91  //             stable         lifetime    decay table
92
93  // gluon
94  particle = new G4Gluons(           
95              "gluon",         0.0*MeV,       0.0*MeV,     0.0*eplus, 
96                    2,              -1,             0,         
97                    0,               0,             0,             
98             "gluons",               0,             0,          21,
99                 true,            -1.0,          NULL);
100  particle->SetAntiPDGEncoding(21);
101  // u-quark
102  particle = new G4Quarks(           
103            "u_quark",         2.4*MeV,       0.0*MeV,   2./3.*eplus, 
104                    1,              +1,             0,         
105                    1,              +1,             0,             
106             "quarks",               0,             0,           2,
107                 true,            -1.0,          NULL);
108  // d-quark
109  particle = new G4Quarks(           
110            "d_quark",         4.8*MeV,       0.0*MeV,  -1./3.*eplus, 
111                    1,              +1,             0,         
112                    1,              -1,             0,             
113             "quarks",               0,             0,           1,
114                 true,            -1.0,          NULL);
115  // s-quark
116  particle = new G4Quarks(           
117            "s_quark",       104.0*MeV,       0.0*MeV,  -1./3.*eplus, 
118                    1,              +1,             0,         
119                    0,               0,             0,             
120             "quarks",               0,             0,           3,
121                 true,            -1.0,          NULL);
122  // c-quark
123  particle = new G4Quarks(           
124            "c_quark",        1.27*GeV,       0.0*MeV,  +2./3.*eplus, 
125                    1,              +1,             0,         
126                    0,               0,             0,             
127             "quarks",               0,             0,           4,
128                 true,            -1.0,          NULL);
129  // b-quark
130  particle = new G4Quarks(           
131            "b_quark",        4.68*GeV,       0.0*MeV,  -1./3.*eplus, 
132                    1,              +1,             0,         
133                    0,               0,             0,             
134             "quarks",               0,             0,           5,
135                 true,            -1.0,          NULL);
136  // t-quark
137  particle = new G4Quarks(           
138            "t_quark",       171.2*GeV,       0.0*MeV,  +2./3.*eplus, 
139                    1,              +1,             0,         
140                    0,               0,             0,             
141             "quarks",               0,             0,           6,
142                 true,            -1.0,          NULL);
143  // anti u-quark
144  particle = new G4Quarks(           
145       "anti_u_quark",         2.4*MeV,       0.0*MeV,   -2./3.*eplus, 
146                    1,              +1,             0,         
147                    1,              -1,             0,             
148             "quarks",               0,             0,          -2,
149                 true,            -1.0,          NULL);
150  // anti d-quark
151  particle = new G4Quarks(           
152       "anti_d_quark",         4.8*MeV,       0.0*MeV,   1./3.*eplus, 
153                    1,              +1,             0,         
154                    1,              +1,             0,             
155             "quarks",               0,             0,          -1,
156                 true,            -1.0,          NULL);
157  // s-quark
158  particle = new G4Quarks(           
159       "anti_s_quark",       104.0*MeV,       0.0*MeV,   1./3.*eplus, 
160                    1,              +1,             0,         
161                    0,               0,             0,             
162             "quarks",               0,             0,          -3,
163                 true,            -1.0,          NULL);
164  // c-quark
165  particle = new G4Quarks(           
166       "anti_c_quark",        1.27*GeV,       0.0*MeV,  -2./3.*eplus, 
167                    1,              +1,             0,         
168                    0,               0,             0,             
169             "quarks",               0,             0,          -4,
170                 true,            -1.0,          NULL);
171  // b-quark
172  particle = new G4Quarks(           
173       "anti_b_quark",        4.68*GeV,       0.0*MeV,   1./3.*eplus, 
174                    1,              +1,             0,         
175                    0,               0,             0,             
176             "quarks",               0,             0,          -5,
177                 true,            -1.0,          NULL);
178  // t-quark
179  particle = new G4Quarks(           
180       "anti_t_quark",       171.2*GeV,       0.0*MeV,  -2./3.*eplus, 
181                    1,              +1,             0,         
182                    0,               0,             0,             
183             "quarks",               0,             0,          -6,
184                 true,            -1.0,          NULL);
185
186   // uu1-Diquark
187  particle = new G4DiQuarks(           
188        "uu1_diquark",         4.8*MeV,       0.0*MeV,   4./3.*eplus, 
189                    2,              +1,             0,         
190                    2,              +2,             0,             
191           "diquarks",               0,             0,        2203,
192                 true,            -1.0,          NULL);
193    // ud1-Diquark
194  particle = new G4DiQuarks(           
195         "ud1_diquark",        7.2*MeV,       0.0*MeV,   1./3.*eplus, 
196                    2,              +1,             0,         
197                    2,              +0,             0,             
198           "diquarks",               0,             0,         2103,
199                 true,            -1.0,          NULL);
200    // dd1-Diquark
201  particle = new G4DiQuarks(           
202        "dd1_diquark",         9.6*MeV,       0.0*MeV,   -2./3.*eplus, 
203                    2,              +1,             0,         
204                    2,              -2,             0,             
205           "diquarks",               0,             0,         1103,
206                 true,            -1.0,          NULL);
207   
208   // ud0-Diquark
209  particle = new G4DiQuarks(           
210        "ud0_diquark",         7.3*MeV,       0.0*MeV,   1./3.*eplus, 
211                    0,              +1,             0,         
212                    0,              +0,             0,             
213           "diquarks",               0,             0,         2101,
214                 true,            -1.0,          NULL);
215   
216   // sd1-Diquark
217  particle = new G4DiQuarks(           
218        "sd1_diquark",       108.8*MeV,       0.0*MeV,   -2./3.*eplus, 
219                    2,              +1,             0,         
220                    1,              -1,             0,             
221           "diquarks",               0,             0,         3103,
222                 true,            -1.0,          NULL);
223   
224  // su1-Diquark
225  particle = new G4DiQuarks(           
226        "su1_diquark",       106.4*MeV,       0.0*MeV,   1./3.*eplus, 
227                    2,              +1,             0,         
228                    1,              +1,             0,             
229           "diquarks",               0,             0,         3203,
230                 true,            -1.0,          NULL);
231
232    // sd0-Diquark
233  particle = new G4DiQuarks(           
234        "sd0_diquark",       108.0*MeV,       0.0*MeV,   -2./3.*eplus, 
235                    0,              +1,             0,         
236                    1,              -1,             0,             
237           "diquarks",               0,             0,         3101,
238                 true,            -1.0,          NULL);
239   
240  // su0-Diquark
241  particle = new G4DiQuarks(           
242        "su0_diquark",       106.4*MeV,       0.0*MeV,   1./3.*eplus, 
243                    0,              +1,             0,         
244                    1,              +1,             0,             
245           "diquarks",               0,             0,         3201,
246                 true,            -1.0,          NULL);
247
248   // anti uu1-Diquark
249  particle = new G4DiQuarks(           
250   "anti_uu1_diquark",         4.8*MeV,       0.0*MeV,  -4./3.*eplus, 
251                    2,              +1,             0,         
252                    2,              -2,             0,             
253           "diquarks",               0,             0,       -2203,
254                 true,            -1.0,          NULL);
255    // anti ud1-Diquark
256  particle = new G4DiQuarks(           
257   "anti_ud1_diquark",         7.2*MeV,       0.0*MeV,  -1./3.*eplus, 
258                    2,              +1,             0,         
259                    2,              +0,             0,             
260           "diquarks",               0,             0,        -2103,
261                 true,            -1.0,          NULL);
262    // anti dd1-Diquark
263  particle = new G4DiQuarks(           
264   "anti_dd1_diquark",         9.6*MeV,       0.0*MeV,    2./3.*eplus, 
265                    2,              +1,             0,         
266                    2,              +2,             0,             
267           "diquarks",               0,             0,        -1103,
268                 true,            -1.0,          NULL);
269   
270   // anti ud0-Diquark
271  particle = new G4DiQuarks(           
272   "anti_ud0_diquark",         7.3*MeV,       0.0*MeV,  -1./3.*eplus, 
273                    0,              +1,             0,         
274                    0,              +0,             0,             
275           "diquarks",               0,             0,        -2101,
276                 true,            -1.0,          NULL);
277   
278   // anti  sd1-Diquark
279  particle = new G4DiQuarks(           
280   "anti_sd1_diquark",       108.8*MeV,       0.0*MeV,    2./3.*eplus, 
281                    2,              +1,             0,         
282                    1,              +1,             0,             
283           "diquarks",               0,             0,        -3103,
284                 true,            -1.0,          NULL);
285   
286  // anti su1-Diquark
287  particle = new G4DiQuarks(           
288   "anti_su1_diquark",       106.4*MeV,       0.0*MeV,  -1./3.*eplus, 
289                    2,              +1,             0,         
290                    1,              -1,             0,             
291           "diquarks",               0,             0,        -3203,
292                 true,            -1.0,          NULL);
293
294    // anti sd0-Diquark
295  particle = new G4DiQuarks(           
296   "anti_sd0_diquark",       108.0*MeV,       0.0*MeV,    2./3.*eplus, 
297                    0,              +1,             0,         
298                    1,              +1,             0,             
299           "diquarks",               0,             0,        -3101,
300                 true,            -1.0,          NULL);
301   
302  // anti su0-Diquark
303  particle = new G4DiQuarks(           
304   "anti_su0_diquark",       106.4*MeV,       0.0*MeV,  -1./3.*eplus, 
305                    0,              +1,             0,         
306                    1,              -1,             0,             
307           "diquarks",               0,             0,        -3201,
308                 true,            -1.0,          NULL);
309    // ss1-Diquark
310  particle = new G4DiQuarks(           
311        "ss1_diquark",       208.0*MeV,       0.0*MeV,   -2./3.*eplus, 
312                    2,              +1,             0,         
313                    0,               0,             0,             
314           "diquarks",               0,             0,         3303,
315                 true,            -1.0,          NULL);
316   
317    // anti ss1-Diquark
318  particle = new G4DiQuarks(           
319        "anti_ss1_diquark",  208.0*MeV,       0.0*MeV,    2./3.*eplus, 
320                    2,              +1,             0,         
321                    0,               0,             0,             
322           "diquarks",               0,             0,        -3303,
323                 true,            -1.0,          NULL);
324
325  particle = NULL;     
326}
327
328#include "G4ExcitedNucleonConstructor.hh"
329#include "G4ExcitedDeltaConstructor.hh"
330#include "G4ExcitedLambdaConstructor.hh"
331#include "G4ExcitedSigmaConstructor.hh"
332#include "G4ExcitedXiConstructor.hh"
333#include "G4ExcitedMesonConstructor.hh"
334void G4ShortLivedConstructor::ConstructResonances()
335{
336  ConstructBaryons();
337  ConstructMesons();
338
339  // N*
340  G4ExcitedNucleonConstructor nucleons;
341  nucleons.Construct();
342
343  // Delta*
344  G4ExcitedDeltaConstructor deltas;
345  deltas.Construct();
346
347  // Lambda*
348  G4ExcitedLambdaConstructor lamdas;
349  lamdas.Construct();
350
351  // Sigma*
352  G4ExcitedSigmaConstructor sigmas;
353  sigmas.Construct();
354
355  // Xi*
356  G4ExcitedXiConstructor xis;
357  xis.Construct();
358 
359  // Mesons
360  G4ExcitedMesonConstructor mesons;
361  mesons.Construct();
362
363}
364
365
366#include "G4ExcitedBaryons.hh"
367void G4ShortLivedConstructor::ConstructBaryons()
368{
369  G4DecayTable*   decayTable;
370  G4VDecayChannel* mode;
371  G4ExcitedBaryons* particle;
372
373  //    Construct Resonace particles as dynamic object
374  //    Arguments for constructor are as follows
375  //               name             mass          width         charge
376  //             2*spin           parity  C-conjugation
377  //          2*Isospin       2*Isospin3       G-parity
378  //               type    lepton number  baryon number   PDG encoding
379  //             stable         lifetime    decay table
380
381  // delta baryons
382  //  delta(1232)++
383  particle = new G4ExcitedBaryons(           
384            "delta++",       1.232*GeV,     120.0*MeV,    +2.0*eplus, 
385                    3,              +1,             0,         
386                    3,              +3,             0,             
387             "baryon",               0,            +1,          2224,
388                false,             0.0,          NULL);
389  // set sub type
390  particle->SetMultipletName("delta");
391  // create decay table
392  decayTable =  new G4DecayTable();
393  // create decay channel of delta++ -> proton + pi+
394  //                                   parent    BR     #daughters
395  mode  = new G4PhaseSpaceDecayChannel("delta++",1.000, 2,
396                                                        "proton","pi+");
397  // add decay table
398  decayTable->Insert(mode);
399  particle->SetDecayTable(decayTable);
400
401  //  delta(1232)+
402  particle = new G4ExcitedBaryons(           
403             "delta+",       1.232*GeV,     120.0*MeV,    +1.0*eplus, 
404                    3,              +1,             0,         
405                    3,              +1,             0,             
406             "baryon",               0,            +1,          2214,
407                false,             0.0,          NULL);
408  // set sub type
409  particle->SetMultipletName("delta(1232)");
410  // create decay table
411  decayTable =  new G4DecayTable();
412  // create decay channel of delta+  -> proton + Gamma
413  //                                   parent    BR     #daughters
414  mode  = new G4PhaseSpaceDecayChannel("delta+", 0.01, 2,
415                                                        "proton","gamma");
416  decayTable->Insert(mode);
417  // create decay channel of delta+  -> neutron + pi+
418  //                                   parent    BR     #daughters
419  // create decay channel of delta+  -> proton + pi0
420  //                                   parent    BR     #daughters
421  mode  = new G4PhaseSpaceDecayChannel("delta+", 0.495, 2,
422                                                        "proton","pi0");
423  decayTable->Insert(mode);
424  // create decay channel of delta+  -> neutron + pi+
425  //                                   parent    BR     #daughters
426  mode  = new G4PhaseSpaceDecayChannel("delta+", 0.495, 2,
427                                                        "neutron","pi+");
428  decayTable->Insert(mode);
429  particle->SetDecayTable(decayTable);
430
431  //  delta(1232)0
432  particle = new G4ExcitedBaryons(           
433             "delta0",       1.232*GeV,     120.0*MeV,    +0.0*eplus, 
434                    3,              +1,             0,         
435                    3,              -1,             0,             
436             "baryon",               0,            +1,          2114,
437                false,             0.0,          NULL);
438  // set sub type
439  particle->SetMultipletName("delta(1232)");
440  // create decay table
441  decayTable =  new G4DecayTable();
442  // create decay channel of delta+  -> neutron + gamma
443  //                                   parent    BR     #daughters
444  mode  = new G4PhaseSpaceDecayChannel("delta0", 0.01, 2,
445                                                        "neutron","gamma");
446  decayTable->Insert(mode);
447  // create decay channel of delta+  -> proton + pi-
448  //                                   parent    BR     #daughters
449  mode  = new G4PhaseSpaceDecayChannel("delta0", 0.495, 2,
450                                                        "proton","pi-");
451  decayTable->Insert(mode);
452  // create decay channel of delta+  -> neutron + pi0
453  //                                   parent    BR     #daughters
454  mode  = new G4PhaseSpaceDecayChannel("delta0", 0.495, 2,
455                                                        "neutron","pi0");
456  decayTable->Insert(mode);
457  particle->SetDecayTable(decayTable);
458
459  //  delta(1232)-
460  particle = new G4ExcitedBaryons(           
461             "delta-",       1.232*GeV,     118.0*MeV,    -1.0*eplus, 
462                    3,              +1,             0,         
463                    3,              -3,             0,             
464             "baryon",               0,            +1,          1114,
465                false,             0.0,          NULL);
466  // set sub type
467  particle->SetMultipletName("delta(1232)");
468  // create decay table
469  decayTable =  new G4DecayTable();
470  // create decay channel of delta+  -> neutron + pi-
471  //                                   parent    BR     #daughters
472  mode  = new G4PhaseSpaceDecayChannel("delta-", 1.000, 2,
473                                                        "neutron","pi-");
474  decayTable->Insert(mode);
475  particle->SetDecayTable(decayTable);
476
477
478  ////////////////////////////
479  // anti_delta baryons
480  //  anti_delta(1232)++
481  particle = new G4ExcitedBaryons(           
482       "anti_delta++",       1.232*GeV,     120.0*MeV,    -2.0*eplus, 
483                    3,              +1,             0,         
484                    3,              -3,             0,             
485             "baryon",               0,            -1,         -2224,
486                false,             0.0,          NULL);
487  // set sub type
488  particle->SetMultipletName("delta(1232)");
489  // create decay table
490  decayTable =  new G4DecayTable();
491  // create decay channel of delta++ -> anti_proton + pi-
492  //                                        parent    BR     #daughters
493  mode  = new G4PhaseSpaceDecayChannel("anti_delta++",1.000, 2,
494                                                   "anti_proton","pi-");
495  // add decay table
496  decayTable->Insert(mode);
497  particle->SetDecayTable(decayTable);
498
499  //  anti_delta(1232)+
500  particle = new G4ExcitedBaryons(           
501        "anti_delta+",       1.232*GeV,     120.0*MeV,    -1.0*eplus, 
502                    3,              +1,             0,         
503                    3,              -1,             0,             
504             "baryon",               0,            -1,         -2214,
505                false,             0.0,          NULL);
506  // set sub type
507  particle->SetMultipletName("delta(1232)");
508  // create decay table
509  decayTable =  new G4DecayTable();
510  // create decay channel of anti_delta+  -> anti_proton + pi0
511  //                                   parent    BR     #daughters
512  mode  = new G4PhaseSpaceDecayChannel("anti_delta+", 0.500, 2,
513                                                   "anti_proton","pi0");
514  decayTable->Insert(mode);
515  // create decay channel of anti_delta+  -> anti_neutron + pi-
516  //                                   parent    BR     #daughters
517  mode  = new G4PhaseSpaceDecayChannel("anti_delta+", 0.500, 2,
518                                                  "anti_neutron","pi-");
519  decayTable->Insert(mode);
520  particle->SetDecayTable(decayTable);
521
522  //  anti_delta(1232)0
523  particle = new G4ExcitedBaryons(           
524        "anti_delta0",       1.232*GeV,     120.0*MeV,    +0.0*eplus, 
525                    3,              +1,             0,         
526                    3,              +1,             0,             
527             "baryon",               0,            -1,         -2114,
528                false,             0.0,          NULL);
529  // set sub type
530  particle->SetMultipletName("delta(1232)");
531  // create decay table
532  decayTable =  new G4DecayTable();
533  // create decay channel of anti_delta+  -> anti_proton + pi+
534  //                                   parent    BR     #daughters
535  mode  = new G4PhaseSpaceDecayChannel("anti_delta0", 0.500, 2,
536                                                        "anti_proton","pi+");
537  decayTable->Insert(mode);
538  // create decay channel of delta+  -> neutron + pi0
539  //                                   parent    BR     #daughters
540  mode  = new G4PhaseSpaceDecayChannel("anti_delta0", 0.500, 2,
541                                                        "anti_neutron","pi0");
542  decayTable->Insert(mode);
543  particle->SetDecayTable(decayTable);
544
545  //  anti_delta(1232)-
546  particle = new G4ExcitedBaryons(           
547        "anti_delta-",       1.232*GeV,     118.0*MeV,    +1.0*eplus, 
548                    3,              +1,             0,         
549                    3,              +3,             0,             
550             "baryon",               0,            -1,         -1114,
551                false,             0.0,          NULL);
552  // set sub type
553  particle->SetMultipletName("delta(1232)");
554  // create decay table
555  decayTable =  new G4DecayTable();
556  // create decay channel of delta-  -> neutron + pi+
557  //                                   parent    BR     #daughters
558  mode  = new G4PhaseSpaceDecayChannel("anti_delta-", 1.000, 2,
559                                                        "anti_neutron","pi+");
560  decayTable->Insert(mode);
561  particle->SetDecayTable(decayTable);
562
563
564
565}
566#include "G4ExcitedMesons.hh"
567void G4ShortLivedConstructor::ConstructMesons()
568{
569  G4DecayTable*   decayTable;
570  G4VDecayChannel* mode;
571  G4ExcitedMesons* particle;
572
573  //    Construct Resonace particles as dynamic object
574  //    Arguments for constructor are as follows
575  //               name             mass          width         charge
576  //             2*spin           parity  C-conjugation
577  //          2*Isospin       2*Isospin3       G-parity
578  //               type    lepton number  baryon number   PDG encoding
579  //             stable         lifetime    decay table
580
581  // vector mesons
582  // omega
583  particle = new G4ExcitedMesons(           
584              "omega",      782.65*MeV,      8.49*MeV,    +0.0*eplus, 
585                    2,              -1,            -1,         
586                    0,              +0,            -1,             
587              "meson",               0,             0,           223,
588                false,             0.0,          NULL);
589  particle->SetAntiPDGEncoding(223);
590  // set sub type
591  particle->SetMultipletName("omega");
592  // create decay table
593  decayTable =  new G4DecayTable();
594  // create decay channel of omega -> pi+ + pi- + pi0
595  //                                   parent    BR     #daughters
596  mode  = new G4PhaseSpaceDecayChannel("omega",0.891, 3,
597                                                    "pi+","pi-","pi0");
598  // add decay table
599  decayTable->Insert(mode);
600
601  // create decay channel of omega -> gamma + pi0
602  //                                   parent    BR     #daughters
603  mode  = new G4PhaseSpaceDecayChannel("omega",0.0890, 2,
604                                                    "gamma","pi0");
605  // add decay table
606  decayTable->Insert(mode);
607
608  // create decay channel of omega -> pi+ + pi-
609  //                                   parent    BR     #daughters
610  mode  = new G4PhaseSpaceDecayChannel("omega",0.0170, 2,
611                                                    "pi+","pi-");
612  // add decay table
613  decayTable->Insert(mode);
614  particle->SetDecayTable(decayTable);
615
616  // phi
617  particle = new G4ExcitedMesons(           
618                "phi",     1019.46*MeV,      4.26*MeV,    +0.0*eplus, 
619                    2,              -1,            -1,         
620                    0,              +0,            -1,             
621              "meson",               0,             0,           333,
622                false,             0.0,          NULL);
623  particle->SetAntiPDGEncoding(333);
624  // set sub type
625  particle->SetMultipletName("phi");
626   // create decay table
627  decayTable =  new G4DecayTable();
628  // create decay channel of phi -> kaon+ + kaon-
629  //                                   parent    BR     #daughters
630  mode  = new G4PhaseSpaceDecayChannel("phi",0.492, 2,
631                                                    "kaon+","kaon-");
632  decayTable->Insert(mode);
633   // create decay channel of phi -> kaon0S + kaon0L
634  //                                   parent    BR     #daughters
635  mode  = new G4PhaseSpaceDecayChannel("phi",0.340, 2,
636                                                   "kaon0S","kaon0L");
637  // add decay table
638  decayTable->Insert(mode);
639  // create decay channel of phi -> rho0 + pi0
640  //                                   parent    BR     #daughters
641  mode  = new G4PhaseSpaceDecayChannel("phi",0.153, 2,
642                                                   "rho0","pi0");
643  // add decay table
644  decayTable->Insert(mode);
645  particle->SetDecayTable(decayTable);
646 
647  // rho+
648  particle = new G4ExcitedMesons(           
649               "rho+",       775.8*MeV,     150.3*MeV,    +1.0*eplus, 
650                    2,              -1,            -1,         
651                    2,              +2,            +1,             
652              "meson",               0,             0,           213,
653                false,             0.0,          NULL);
654  // set sub type
655  particle->SetMultipletName("rho");
656  // create decay table
657  decayTable =  new G4DecayTable();
658  // create decay channel of rho+ -> pi+ + pi0
659  //                                   parent    BR     #daughters
660  mode  = new G4PhaseSpaceDecayChannel("rho+",1.000, 2,
661                                                    "pi+","pi0");
662  // add decay table
663  decayTable->Insert(mode);
664  particle->SetDecayTable(decayTable);
665
666  // rho-
667  particle = new G4ExcitedMesons(           
668               "rho-",       775.8*MeV,     150.3*MeV,    -1.0*eplus, 
669                    2,              -1,            -1,         
670                    2,              -2,            +1,             
671              "meson",               0,             0,          -213,
672                false,             0.0,          NULL);
673  // set sub type
674  particle->SetMultipletName("rho");
675  // create decay table
676  decayTable =  new G4DecayTable();
677  // create decay channel of rho- -> pi- + pi0
678  //                                   parent    BR     #daughters
679  mode  = new G4PhaseSpaceDecayChannel("rho-",1.000, 2,
680                                                    "pi-","pi0");
681  // add decay table
682  decayTable->Insert(mode);
683  particle->SetDecayTable(decayTable);
684 
685  // rho0
686  particle = new G4ExcitedMesons(           
687               "rho0",       775.49*MeV,    149.4*MeV,         0.0, 
688                    2,              -1,            -1,         
689                    2,               0,            +1,             
690              "meson",               0,             0,         113,
691                false,          0.0*ns,          NULL );
692  particle->SetAntiPDGEncoding(113);
693  // set sub type
694  particle->SetMultipletName("rho");
695  // create decay table
696  decayTable =  new G4DecayTable();
697  // create decay channel of rho0 -> pi+ + pi-
698  //                                   parent    BR     #daughters
699  mode  = new G4PhaseSpaceDecayChannel("rho0",1.000, 2,
700                                                    "pi+","pi-");
701  // add decay table
702  decayTable->Insert(mode);
703  particle->SetDecayTable(decayTable);
704
705  // a0(980)+
706  particle = new G4ExcitedMesons(           
707           "a0(980)+",       984.7*MeV,      60.0*MeV,    +1.0*eplus, 
708                    0,              +1,            +1,         
709                    2,              +2,            -1,             
710              "meson",               0,             0,       9000211,
711                false,             0.0,          NULL);
712  // set sub type
713  particle->SetMultipletName("a0(980)");
714  // create decay table
715  decayTable =  new G4DecayTable();
716  // create decay channel of a0(980)+ -> eta + pi+
717  //                                   parent    BR     #daughters
718  mode  = new G4PhaseSpaceDecayChannel("a0(980)+",1.000, 2,
719                                                    "pi+","eta");
720  // add decay table
721  decayTable->Insert(mode);
722  particle->SetDecayTable(decayTable);
723
724  // a0(980)-
725  particle = new G4ExcitedMesons(           
726           "a0(980)-",       984.7*MeV,      60.0*MeV,    -1.0*eplus, 
727                    0,              +1,            +1,         
728                    2,              -2,            -1,             
729              "meson",               0,             0,      -9000211,
730                false,             0.0,          NULL);
731  // set sub type
732  particle->SetMultipletName("a0(980)");
733  // create decay table
734  decayTable =  new G4DecayTable();
735  // create decay channel of a0(980)- -> eta + pi-
736  //                                   parent    BR     #daughters
737  mode  = new G4PhaseSpaceDecayChannel("a0(980)-",1.000, 2,
738                                                    "pi-","eta");
739  // add decay table
740  decayTable->Insert(mode);
741  particle->SetDecayTable(decayTable);
742
743  // a0(980)0
744  particle = new G4ExcitedMesons(           
745           "a0(980)0",       984.7*MeV,      75.0*MeV,           0.0,
746                    0,              +1,            +1,         
747                    2,               0,            -1,             
748              "meson",               0,             0,       9000111,
749                false,             0.0,          NULL);
750  particle->SetAntiPDGEncoding(9000111);
751  // set sub type
752  particle->SetMultipletName("a0(980)");
753  // create decay table
754  decayTable =  new G4DecayTable();
755  // create decay channel of a0(980)0 -> eta + pi0
756  //                                   parent    BR     #daughters
757  mode  = new G4PhaseSpaceDecayChannel("a0(980)0",1.000, 2,
758                                                    "pi0","eta");
759  // add decay table
760  decayTable->Insert(mode);
761  particle->SetDecayTable(decayTable);
762
763  // f0(600) (was f0(400-1200))
764  particle = new G4ExcitedMesons(           
765            "f0(600)",       800.0*MeV,     800.0*MeV,           0.0,
766                    0,              +1,            +1,         
767                    0,               0,            +1,             
768              "meson",               0,             0,       9000221,
769                false,             0.0,          NULL);
770  particle->SetAntiPDGEncoding(9000221);
771  // set sub type
772  particle->SetMultipletName("f0(600)");
773  // create decay table
774  decayTable =  new G4DecayTable();
775  // create decay channel of f0(600) -> pi + pi
776  //                                   parent    BR     #daughters
777  mode  = new G4PhaseSpaceDecayChannel("f0(600)",1.000, 2,
778                                                    "pi+","pi-");
779  // add decay table
780  decayTable->Insert(mode);
781  particle->SetDecayTable(decayTable);
782
783
784  // f0(980)
785  particle = new G4ExcitedMesons(           
786            "f0(980)",       980.0*MeV,      70.0*MeV,           0.0,
787                    0,              +1,            +1,         
788                    0,               0,            +1,             
789              "meson",               0,             0,       9010221,
790                false,             0.0,          NULL);
791  particle->SetAntiPDGEncoding(9010221);
792  // set sub type
793  particle->SetMultipletName("f0(980)");
794  // create decay table
795  decayTable =  new G4DecayTable();
796  // create decay channel of f0(980) -> pi + pi
797  //                                   parent    BR     #daughters
798  mode  = new G4PhaseSpaceDecayChannel("f0(980)",1.000, 2,
799                                                    "pi+","pi-");
800  // add decay table
801  decayTable->Insert(mode);
802  particle->SetDecayTable(decayTable);
803
804  // eta(1405)
805  particle = new G4ExcitedMesons(           
806          "eta(1405)",      1409.8*MeV,      51.1*MeV,           0.0,
807                    0,              -1,            +1,         
808                    0,               0,            +1,             
809              "meson",               0,             0,       9020221,
810                false,             0.0,          NULL);
811  particle->SetAntiPDGEncoding(9020221);
812  // set sub type
813  particle->SetMultipletName("eta(1405)");
814  // create decay table
815  decayTable =  new G4DecayTable();
816  // create decay channel of eta(1405) -> rho + rho
817  //                                   parent    BR     #daughters
818  mode  = new G4PhaseSpaceDecayChannel("eta(1405)",1.000, 2,
819                                                   "rho+","rho-");
820  // add decay table
821  decayTable->Insert(mode);
822  particle->SetDecayTable(decayTable);
823  // f0(1500)
824  particle = new G4ExcitedMesons(           
825           "f0(1500)",      1505.0*MeV,     109.0*MeV,           0.0,
826                    0,              +1,            +1,         
827                    0,               0,            +1,             
828              "meson",               0,             0,       9030221,
829                false,             0.0,          NULL);
830  particle->SetAntiPDGEncoding(9030221);
831  // set sub type
832  particle->SetMultipletName("f0(1500)");
833  // create decay table
834  decayTable =  new G4DecayTable();
835  // create decay channel of f0(1500) -> eta + eta
836  //                                   parent    BR     #daughters
837  mode  = new G4PhaseSpaceDecayChannel("f0(1500)",1.000, 2,
838                                                    "eta","eta");
839  // add decay table
840  decayTable->Insert(mode);
841  particle->SetDecayTable(decayTable);
842
843  // f0(1710)
844  particle = new G4ExcitedMesons(           
845           "f0(1710)",      1724.0*MeV,     137.0*MeV,           0.0,
846                    0,              +1,            +1,         
847                    0,               0,            +1,             
848              "meson",               0,             0,         10331,
849                false,             0.0,          NULL);
850  particle->SetAntiPDGEncoding(10331);
851  // set sub type
852  particle->SetMultipletName("f0(1710)");
853  // create decay table
854  decayTable =  new G4DecayTable();
855
856  // create decay channel of f0(1710) -> k0 + k0
857  //                                   parent    BR     #daughters
858  mode  = new G4PhaseSpaceDecayChannel("f0(1710)",0.40, 2,
859                                                    "kaon0S","kaon0S");
860  // add decay table
861  decayTable->Insert(mode);
862 
863  // create decay channel of f0(1710) -> k+ + k+
864  //                                   parent    BR     #daughters
865  mode  = new G4PhaseSpaceDecayChannel("f0(1710)",0.40, 2,
866                                                    "kaon+","kaon-");
867  // add decay table
868  decayTable->Insert(mode);
869 
870  // create decay channel of f0(1710) -> eta + eta
871  //                                   parent    BR     #daughters
872  mode  = new G4PhaseSpaceDecayChannel("f0(1710)",0.20, 2,
873                                                    "eta","eta");
874  // add decay table
875  decayTable->Insert(mode);
876  particle->SetDecayTable(decayTable);
877
878
879  // k_star+
880  particle = new G4ExcitedMesons(           
881            "k_star+",       891.66*MeV,     50.8*MeV,    +1.0*eplus, 
882                    2,              -1,             0,         
883                    1,              +1,             0,             
884              "meson",               0,             0,           323,
885                false,             0.0,          NULL);
886  // set sub type
887  particle->SetMultipletName("k_star");
888  // create decay table
889  decayTable =  new G4DecayTable();
890  // create decay channel of k_star+ -> kaon+ + pi0
891  //                                   parent    BR     #daughters
892  mode  = new G4PhaseSpaceDecayChannel("k_star+",0.500, 2,
893                                                    "kaon+","pi0");
894  // add decay table
895  decayTable->Insert(mode);
896   // create decay channel of k_star+ -> kaon+ + pi0
897  //                                   parent    BR     #daughters
898  mode  = new G4PhaseSpaceDecayChannel("k_star+",0.500, 2,
899                                                    "kaon0","pi+");
900  // add decay table
901  decayTable->Insert(mode);
902  particle->SetDecayTable(decayTable);
903 
904  // k_star0
905  particle = new G4ExcitedMesons(           
906            "k_star0",       896.00*MeV,     50.3*MeV,     0.0*eplus, 
907                    2,              -1,             0,         
908                    1,              -1,             0,             
909              "meson",               0,             0,           313,
910                false,             0.0,          NULL);
911  // set sub type
912  particle->SetMultipletName("k_star");
913  // create decay table
914  decayTable =  new G4DecayTable();
915  // create decay channel of k_star0 -> kaon+ + pi-
916  //                                   parent    BR     #daughters
917  mode  = new G4PhaseSpaceDecayChannel("k_star0",0.500, 2,
918                                                    "kaon+","pi-");
919  // add decay table
920  decayTable->Insert(mode);
921   // create decay channel of k_star0 -> kaon0 + pi0
922  //                                   parent    BR     #daughters
923  mode  = new G4PhaseSpaceDecayChannel("k_star0",0.500, 2,
924                                                    "kaon0","pi0");
925  // add decay table
926  decayTable->Insert(mode);
927  particle->SetDecayTable(decayTable);
928
929  // k_star-
930  particle = new G4ExcitedMesons(           
931            "k_star-",       891.66*MeV,     50.8*MeV,    -1.0*eplus, 
932                    2,              -1,             0,         
933                    1,              +1,             0,             
934              "meson",               0,             0,          -323,
935                false,             0.0,          NULL);
936  // set sub type
937  particle->SetMultipletName("k_star");
938  // create decay table
939  decayTable =  new G4DecayTable();
940  // create decay channel of k_star- -> kaon- + pi0
941  //                                   parent    BR     #daughters
942  mode  = new G4PhaseSpaceDecayChannel("k_star-",0.500, 2,
943                                                    "kaon-","pi0");
944  // add decay table
945  decayTable->Insert(mode);
946   // create decay channel of k_star- -> anti_kaon0 + pi0
947  //                                   parent    BR     #daughters
948  mode  = new G4PhaseSpaceDecayChannel("k_star-",0.500, 2,
949                                                    "anti_kaon0","pi+");
950  // add decay table
951  decayTable->Insert(mode);
952  particle->SetDecayTable(decayTable);
953 
954 
955  // anti_k_star0
956  particle = new G4ExcitedMesons(           
957       "anti_k_star0",       896.0*MeV,      50.3*MeV,     0.0*eplus, 
958                    2,              -1,             0,         
959                    1,              -1,             0,             
960              "meson",               0,             0,          -313,
961                false,             0.0,          NULL);
962  // set sub type
963  particle->SetMultipletName("k_star");
964  // create decay table
965  decayTable =  new G4DecayTable();
966  // create decay channel of anti_k_star0 -> kaon- + pi+
967  //                                   parent    BR     #daughters
968  mode  = new G4PhaseSpaceDecayChannel("anti_k_star0",0.500, 2,
969                                                    "kaon-","pi+");
970  // add decay table
971  decayTable->Insert(mode);
972   // create decay channel of anti_k_star0 -> anti_kaon0 + pi0
973  //                                   parent    BR     #daughters
974  mode  = new G4PhaseSpaceDecayChannel("anti_k_star0",0.500, 2,
975                                                    "anti_kaon0","pi0");
976  // add decay table
977  decayTable->Insert(mode);
978  particle->SetDecayTable(decayTable);
979 
980}
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
Note: See TracBrowser for help on using the repository browser.