44{
45 if (theInstance != nullptr) return theInstance;
46 const G4String
name =
"hyperH4";
47
50 if (anInstance == nullptr) {
51
52
53
54
55
56
57
58
59
60
61
62
63 anInstance =
new G4Ions( name, 3922.40*MeV, 2.501e-12*MeV, +1.0*eplus,
64 4, +1, 0,
65 0, 0, 0,
66 "nucleus", 0, +4, 1010010040,
67 false, 0.2631*
ns,
nullptr,
68 false, "static", -1010010040,
69 0.0, 0 );
70
71
72
73 G4double mN = eplus * hbar_Planck / 2.0 / (proton_mass_c2 / c_squared);
74 anInstance->SetPDGMagneticMoment(2.97896248 * mN);
75
76
77 auto table = new G4DecayTable;
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99 const G4double half_br_lambda_to_p_pim = 0.5 * 0.639;
100 const G4double br_lambda_to_n_piz = 0.358;
101 auto mode = new G4VDecayChannel*[3];
102
103 mode[0] = new G4PhaseSpaceDecayChannel("hyperH4", half_br_lambda_to_p_pim, 3, "triton",
104 "proton", "pi-");
105 mode[1] = new G4PhaseSpaceDecayChannel("hyperH4", half_br_lambda_to_p_pim, 2, "alpha", "pi-");
106
107 mode[2] =
108 new G4PhaseSpaceDecayChannel("hyperH4", br_lambda_to_n_piz, 3, "triton", "neutron", "pi0");
109 for (
G4int index = 0; index < 3; ++index)
110 table->Insert(mode[index]);
111
112 delete[] mode;
113 anInstance->SetDecayTable(table);
114 }
115 theInstance = static_cast<G4HyperH4*>(anInstance);
116 return theInstance;
117}
G4Ions(const G4String &aName, G4double mass, G4double width, G4double charge, G4int iSpin, G4int iParity, G4int iConjugation, G4int iIsospin, G4int iIsospin3, G4int gParity, const G4String &pType, G4int lepton, G4int baryon, G4int encoding, G4bool stable, G4double lifetime, G4DecayTable *decaytable, G4bool shortlived, const G4String &subType="", G4int anti_encoding=0, G4double excitation=0.0, G4int isomer=0)
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
static G4ParticleTable * GetParticleTable()
const char * name(G4int ptype)