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

Last change on this file since 1330 was 1315, checked in by garnier, 15 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.