00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "BesShortLivedConstructor.hh"
00012
00013 #include "G4ParticleDefinition.hh"
00014 #include "G4ParticleTable.hh"
00015 #include "G4ShortLivedTable.hh"
00016 #include "G4PhaseSpaceDecayChannel.hh"
00017 #include "G4VDecayChannel.hh"
00018 #include "G4DecayTable.hh"
00019
00020 G4bool BesShortLivedConstructor::isConstructed = false;
00021
00022 BesShortLivedConstructor::BesShortLivedConstructor()
00023 {
00024 }
00025
00026 BesShortLivedConstructor::~BesShortLivedConstructor()
00027 {
00028 }
00029
00030
00031 void BesShortLivedConstructor::ConstructParticle()
00032 {
00033 if (!isConstructed){
00034 ConstructResonances();
00035 isConstructed = true;
00036 }
00037 }
00038
00039
00040 #include "G4ExcitedNucleonConstructor.hh"
00041 #include "G4ExcitedDeltaConstructor.hh"
00042 #include "G4ExcitedLambdaConstructor.hh"
00043 #include "G4ExcitedSigmaConstructor.hh"
00044 #include "G4ExcitedXiConstructor.hh"
00045 #include "G4ExcitedMesonConstructor.hh"
00046 void BesShortLivedConstructor::ConstructResonances()
00047 {
00048 ConstructBaryons();
00049 ConstructMesons();
00050
00051
00052 G4ExcitedNucleonConstructor nucleons;
00053 nucleons.Construct();
00054
00055
00056 G4ExcitedDeltaConstructor deltas;
00057 deltas.Construct();
00058
00059
00060 G4ExcitedLambdaConstructor lamdas;
00061 lamdas.Construct();
00062
00063
00064 G4ExcitedSigmaConstructor sigmas;
00065 sigmas.Construct();
00066
00067
00068 G4ExcitedXiConstructor xis;
00069 xis.Construct();
00070
00071
00072 G4ExcitedMesonConstructor mesons;
00073 mesons.Construct();
00074
00075 }
00076
00077
00078 #include "G4ExcitedBaryons.hh"
00079 void BesShortLivedConstructor::ConstructBaryons()
00080 {
00081 G4DecayTable* decayTable;
00082 G4VDecayChannel* mode;
00083 G4ExcitedBaryons* particle;
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095 particle = new G4ExcitedBaryons(
00096 "delta++", 1.232*GeV, 115.0*MeV, +2.0*eplus,
00097 3, +1, 0,
00098 3, +3, 0,
00099 "baryon", 0, +1, 2224,
00100 false, 0.0, NULL);
00101
00102 particle->SetMultipletName("delta");
00103
00104 decayTable = new G4DecayTable();
00105
00106
00107 mode = new G4PhaseSpaceDecayChannel("delta++",1.000, 2,
00108 "proton","pi+");
00109
00110 decayTable->Insert(mode);
00111 particle->SetDecayTable(decayTable);
00112
00113
00114 particle = new G4ExcitedBaryons(
00115 "delta+", 1.232*GeV, 115.0*MeV, +1.0*eplus,
00116 3, +1, 0,
00117 3, +1, 0,
00118 "baryon", 0, +1, 2214,
00119 false, 0.0, NULL);
00120
00121 particle->SetMultipletName("delta(1232)");
00122
00123 decayTable = new G4DecayTable();
00124
00125
00126 mode = new G4PhaseSpaceDecayChannel("delta+", 0.01, 2,
00127 "proton","gamma");
00128 decayTable->Insert(mode);
00129
00130
00131
00132
00133 mode = new G4PhaseSpaceDecayChannel("delta+", 0.495, 2,
00134 "proton","pi0");
00135 decayTable->Insert(mode);
00136
00137
00138 mode = new G4PhaseSpaceDecayChannel("delta+", 0.495, 2,
00139 "neutron","pi+");
00140 decayTable->Insert(mode);
00141 particle->SetDecayTable(decayTable);
00142
00143
00144 particle = new G4ExcitedBaryons(
00145 "delta0", 1.232*GeV, 115.0*MeV, +0.0*eplus,
00146 3, +1, 0,
00147 3, -1, 0,
00148 "baryon", 0, +1, 2114,
00149 false, 0.0, NULL);
00150
00151 particle->SetMultipletName("delta(1232)");
00152
00153 decayTable = new G4DecayTable();
00154
00155
00156 mode = new G4PhaseSpaceDecayChannel("delta0", 0.01, 2,
00157 "neutron","gamma");
00158 decayTable->Insert(mode);
00159
00160
00161 mode = new G4PhaseSpaceDecayChannel("delta0", 0.495, 2,
00162 "proton","pi-");
00163 decayTable->Insert(mode);
00164
00165
00166 mode = new G4PhaseSpaceDecayChannel("delta0", 0.495, 2,
00167 "neutron","pi0");
00168 decayTable->Insert(mode);
00169 particle->SetDecayTable(decayTable);
00170
00171
00172 particle = new G4ExcitedBaryons(
00173 "delta-", 1.232*GeV, 115.0*MeV, -1.0*eplus,
00174 3, +1, 0,
00175 3, -3, 0,
00176 "baryon", 0, +1, 1114,
00177 false, 0.0, NULL);
00178
00179 particle->SetMultipletName("delta(1232)");
00180
00181 decayTable = new G4DecayTable();
00182
00183
00184 mode = new G4PhaseSpaceDecayChannel("delta-", 1.000, 2,
00185 "neutron","pi-");
00186 decayTable->Insert(mode);
00187 particle->SetDecayTable(decayTable);
00188
00189
00191
00192
00193 particle = new G4ExcitedBaryons(
00194 "anti_delta++", 1.232*GeV, 115.0*MeV, -2.0*eplus,
00195 3, +1, 0,
00196 3, -3, 0,
00197 "baryon", 0, -1, -2224,
00198 false, 0.0, NULL);
00199
00200 particle->SetMultipletName("delta(1232)");
00201
00202 decayTable = new G4DecayTable();
00203
00204
00205 mode = new G4PhaseSpaceDecayChannel("anti_delta++",1.000, 2,
00206 "anti_proton","pi-");
00207
00208 decayTable->Insert(mode);
00209 particle->SetDecayTable(decayTable);
00210
00211
00212 particle = new G4ExcitedBaryons(
00213 "anti_delta+", 1.232*GeV, 115.0*MeV, -1.0*eplus,
00214 3, +1, 0,
00215 3, -1, 0,
00216 "baryon", 0, -1, -2214,
00217 false, 0.0, NULL);
00218
00219 particle->SetMultipletName("delta(1232)");
00220
00221 decayTable = new G4DecayTable();
00222
00223
00224 mode = new G4PhaseSpaceDecayChannel("anti_delta+", 0.500, 2,
00225 "anti_proton","pi0");
00226 decayTable->Insert(mode);
00227
00228
00229 mode = new G4PhaseSpaceDecayChannel("anti_delta+", 0.500, 2,
00230 "anti_neutron","pi-");
00231 decayTable->Insert(mode);
00232 particle->SetDecayTable(decayTable);
00233
00234
00235 particle = new G4ExcitedBaryons(
00236 "anti_delta0", 1.232*GeV, 115.0*MeV, +0.0*eplus,
00237 3, +1, 0,
00238 3, +1, 0,
00239 "baryon", 0, -1, -2114,
00240 false, 0.0, NULL);
00241
00242 particle->SetMultipletName("delta(1232)");
00243
00244 decayTable = new G4DecayTable();
00245
00246
00247 mode = new G4PhaseSpaceDecayChannel("anti_delta0", 0.500, 2,
00248 "anti_proton","pi+");
00249 decayTable->Insert(mode);
00250
00251
00252 mode = new G4PhaseSpaceDecayChannel("anti_delta0", 0.500, 2,
00253 "anti_neutron","pi0");
00254 decayTable->Insert(mode);
00255 particle->SetDecayTable(decayTable);
00256
00257
00258 particle = new G4ExcitedBaryons(
00259 "anti_delta-", 1.232*GeV, 115.0*MeV, +1.0*eplus,
00260 3, +1, 0,
00261 3, +3, 0,
00262 "baryon", 0, -1, -1114,
00263 false, 0.0, NULL);
00264
00265 particle->SetMultipletName("delta(1232)");
00266
00267 decayTable = new G4DecayTable();
00268
00269
00270 mode = new G4PhaseSpaceDecayChannel("anti_delta-", 1.000, 2,
00271 "anti_neutron","pi+");
00272 decayTable->Insert(mode);
00273 particle->SetDecayTable(decayTable);
00274
00275
00276
00277 }
00278 #include "G4ExcitedMesons.hh"
00279 void BesShortLivedConstructor::ConstructMesons()
00280 {
00281 G4DecayTable* decayTable;
00282 G4VDecayChannel* mode;
00283 G4ExcitedMesons* particle;
00284
00285
00286
00287
00288
00289
00290
00291
00292
00293
00294
00295 particle = new G4ExcitedMesons(
00296 "omega", 781.94*MeV, 8.41*MeV, +0.0*eplus,
00297 2, -1, -1,
00298 0, +0, -1,
00299 "meson", 0, 0, 223,
00300 false, 0.0, NULL);
00301 particle->SetAntiPDGEncoding(223);
00302
00303 particle->SetMultipletName("omega");
00304
00305 decayTable = new G4DecayTable();
00306
00307
00308 mode = new G4PhaseSpaceDecayChannel("omega",0.888, 3,
00309 "pi+","pi-","pi0");
00310
00311 decayTable->Insert(mode);
00312 particle->SetDecayTable(decayTable);
00313
00314
00315 particle = new G4ExcitedMesons(
00316 "phi", 1019.4*MeV, 4.43*MeV, +0.0*eplus,
00317 2, -1, -1,
00318 0, +0, -1,
00319 "meson", 0, 0, 333,
00320 false, 0.0, NULL);
00321 particle->SetAntiPDGEncoding(333);
00322
00323 particle->SetMultipletName("phi");
00324
00325 decayTable = new G4DecayTable();
00326
00327
00328 mode = new G4PhaseSpaceDecayChannel("phi",0.491, 2,
00329 "kaon+","kaon-");
00330 decayTable->Insert(mode);
00331
00332
00333 mode = new G4PhaseSpaceDecayChannel("phi",0.343, 2,
00334 "kaon0S","kaon0L");
00335
00336 decayTable->Insert(mode);
00337
00338
00339 mode = new G4PhaseSpaceDecayChannel("phi",0.129, 2,
00340 "rho0","pi0");
00341
00342 decayTable->Insert(mode);
00343 particle->SetDecayTable(decayTable);
00344
00345
00346 particle = new G4ExcitedMesons(
00347 "rho+", 769.9*MeV, 151.2*MeV, +1.0*eplus,
00348 2, -1, -1,
00349 2, +2, +1,
00350 "meson", 0, 0, 213,
00351 false, 0.0, NULL);
00352
00353 particle->SetMultipletName("rho");
00354
00355 decayTable = new G4DecayTable();
00356
00357
00358 mode = new G4PhaseSpaceDecayChannel("rho+",1.000, 2,
00359 "pi+","pi0");
00360
00361 decayTable->Insert(mode);
00362 particle->SetDecayTable(decayTable);
00363
00364
00365 particle = new G4ExcitedMesons(
00366 "rho-", 769.9*MeV, 151.2*MeV, -1.0*eplus,
00367 2, -1, -1,
00368 2, -2, +1,
00369 "meson", 0, 0, -213,
00370 false, 0.0, NULL);
00371
00372 particle->SetMultipletName("rho");
00373
00374 decayTable = new G4DecayTable();
00375
00376
00377 mode = new G4PhaseSpaceDecayChannel("rho-",1.000, 2,
00378 "pi-","pi0");
00379
00380 decayTable->Insert(mode);
00381 particle->SetDecayTable(decayTable);
00382
00383
00384 particle = new G4ExcitedMesons(
00385 "rho0", 770.0*MeV, 150.7*MeV, 0.0,
00386 2, -1, -1,
00387 2, 0, +1,
00388 "meson", 0, 0, 113,
00389 false, 0.0*ns, NULL );
00390 particle->SetAntiPDGEncoding(113);
00391
00392 particle->SetMultipletName("rho");
00393
00394 decayTable = new G4DecayTable();
00395
00396
00397 mode = new G4PhaseSpaceDecayChannel("rho0",1.000, 2,
00398 "pi+","pi-");
00399
00400 decayTable->Insert(mode);
00401 particle->SetDecayTable(decayTable);
00402
00403
00404 particle = new G4ExcitedMesons(
00405 "a0(980)+", 984.8*MeV, 60.0*MeV, +1.0*eplus,
00406 0, +1, +1,
00407 2, +2, -1,
00408 "meson", 0, 0, 9000211,
00409 false, 0.0, NULL);
00410
00411 particle->SetMultipletName("a0(980)");
00412
00413 decayTable = new G4DecayTable();
00414
00415
00416 mode = new G4PhaseSpaceDecayChannel("a0(980)+",1.000, 2,
00417 "pi+","eta");
00418
00419 decayTable->Insert(mode);
00420 particle->SetDecayTable(decayTable);
00421
00422
00423 particle = new G4ExcitedMesons(
00424 "a0(980)-", 984.8*MeV, 60.0*MeV, -1.0*eplus,
00425 0, +1, +1,
00426 2, -2, -1,
00427 "meson", 0, 0, -9000211,
00428 false, 0.0, NULL);
00429
00430 particle->SetMultipletName("a0(980)");
00431
00432 decayTable = new G4DecayTable();
00433
00434
00435 mode = new G4PhaseSpaceDecayChannel("a0(980)-",1.000, 2,
00436 "pi-","eta");
00437
00438 decayTable->Insert(mode);
00439 particle->SetDecayTable(decayTable);
00440
00441
00442 particle = new G4ExcitedMesons(
00443 "a0(980)0", 984.8*MeV, 60.0*MeV, 0.0,
00444 0, +1, +1,
00445 2, 0, -1,
00446 "meson", 0, 0, 9000111,
00447 false, 0.0, NULL);
00448 particle->SetAntiPDGEncoding(9000111);
00449
00450 particle->SetMultipletName("a0(980)");
00451
00452 decayTable = new G4DecayTable();
00453
00454
00455 mode = new G4PhaseSpaceDecayChannel("a0(980)0",1.000, 2,
00456 "pi0","eta");
00457
00458 decayTable->Insert(mode);
00459 particle->SetDecayTable(decayTable);
00460
00461
00462 particle = new G4ExcitedMesons(
00463 "f0(400-1200)", 470.0*MeV, 400.0*MeV, 0.0,
00464 0, +1, +1,
00465 0, 0, +1,
00466 "meson", 0, 0, 9000221,
00467 false, 0.0, NULL);
00468 particle->SetAntiPDGEncoding(9000221);
00469
00470 particle->SetMultipletName("f0(400-1200)");
00471
00472 decayTable = new G4DecayTable();
00473
00474
00475 mode = new G4PhaseSpaceDecayChannel("f0(400-1200)",1.000, 2,
00476 "pi+","pi-");
00477
00478 decayTable->Insert(mode);
00479 particle->SetDecayTable(decayTable);
00480
00481
00482
00483 particle = new G4ExcitedMesons(
00484 "f0(980)", 980.0*MeV, 40.0*MeV, 0.0,
00485 0, +1, +1,
00486 0, 0, +1,
00487 "meson", 0, 0, 9010221,
00488 false, 0.0, NULL);
00489 particle->SetAntiPDGEncoding(9010221);
00490
00491 particle->SetMultipletName("f0(980)");
00492
00493 decayTable = new G4DecayTable();
00494
00495
00496 mode = new G4PhaseSpaceDecayChannel("f0(980)",1.000, 2,
00497 "pi+","pi-");
00498
00499 decayTable->Insert(mode);
00500 particle->SetDecayTable(decayTable);
00501
00502
00503
00504 particle = new G4ExcitedMesons(
00505 "k_star+", 891.6*MeV, 50.8*MeV, +1.0*eplus,
00506 2, -1, 0,
00507 1, +1, 0,
00508 "meson", 0, 0, 323,
00509 false, 0.0, NULL);
00510
00511 particle->SetMultipletName("k_star");
00512
00513 decayTable = new G4DecayTable();
00514
00515
00516 mode = new G4PhaseSpaceDecayChannel("k_star+",0.500, 2,
00517 "kaon+","pi0");
00518
00519 decayTable->Insert(mode);
00520
00521
00522 mode = new G4PhaseSpaceDecayChannel("k_star+",0.500, 2,
00523 "kaon0","pi+");
00524
00525 decayTable->Insert(mode);
00526 particle->SetDecayTable(decayTable);
00527
00528
00529 particle = new G4ExcitedMesons(
00530 "k_star0", 896.1*MeV, 50.5*MeV, 0.0*eplus,
00531 2, -1, 0,
00532 1, -1, 0,
00533 "meson", 0, 0, 313,
00534 false, 0.0, NULL);
00535
00536 particle->SetMultipletName("k_star");
00537
00538 decayTable = new G4DecayTable();
00539
00540
00541 mode = new G4PhaseSpaceDecayChannel("k_star0",0.500, 2,
00542 "kaon+","pi-");
00543
00544 decayTable->Insert(mode);
00545
00546
00547 mode = new G4PhaseSpaceDecayChannel("k_star0",0.500, 2,
00548 "kaon0","pi0");
00549
00550 decayTable->Insert(mode);
00551 particle->SetDecayTable(decayTable);
00552
00553
00554 particle = new G4ExcitedMesons(
00555 "k_star-", 891.6*MeV, 50.8*MeV, -1.0*eplus,
00556 2, -1, 0,
00557 1, +1, 0,
00558 "meson", 0, 0, -323,
00559 false, 0.0, NULL);
00560
00561 particle->SetMultipletName("k_star");
00562
00563 decayTable = new G4DecayTable();
00564
00565
00566 mode = new G4PhaseSpaceDecayChannel("k_star-",0.500, 2,
00567 "kaon-","pi0");
00568
00569 decayTable->Insert(mode);
00570
00571
00572 mode = new G4PhaseSpaceDecayChannel("k_star-",0.500, 2,
00573 "anti_kaon0","pi+");
00574
00575 decayTable->Insert(mode);
00576 particle->SetDecayTable(decayTable);
00577
00578
00579
00580 particle = new G4ExcitedMesons(
00581 "anti_k_star0", 896.1*MeV, 50.5*MeV, 0.0*eplus,
00582 2, -1, 0,
00583 1, -1, 0,
00584 "meson", 0, 0, -313,
00585 false, 0.0, NULL);
00586
00587 particle->SetMultipletName("k_star");
00588
00589 decayTable = new G4DecayTable();
00590
00591
00592 mode = new G4PhaseSpaceDecayChannel("anti_k_star0",0.500, 2,
00593 "kaon-","pi+");
00594
00595 decayTable->Insert(mode);
00596
00597
00598 mode = new G4PhaseSpaceDecayChannel("anti_k_star0",0.500, 2,
00599 "anti_kaon0","pi0");
00600
00601 decayTable->Insert(mode);
00602 particle->SetDecayTable(decayTable);
00603
00604 }
00605
00606
00607
00608
00609
00610
00611
00612
00613
00614
00615
00616
00617
00618
00619
00620
00621
00622
00623