Import Geant4 11.2.0 source tree
This commit is contained in:
@@ -23,9 +23,6 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
@@ -36,34 +33,32 @@
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
#include "G4Alpha.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### ALPHA ###
|
||||
// ######################################################################
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4String.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
G4Alpha* G4Alpha::theInstance = nullptr;
|
||||
|
||||
G4Alpha* G4Alpha::Definition()
|
||||
{
|
||||
if (theInstance !=nullptr) return theInstance;
|
||||
if (theInstance != nullptr) return theInstance;
|
||||
const G4String name = "alpha";
|
||||
// search in particle table]
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance ==nullptr)
|
||||
{
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr) {
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
// clang-format off
|
||||
anInstance = new G4Ions(
|
||||
name, 3.727379*GeV, 0.0*MeV, +2.0*eplus,
|
||||
0, +1, 0,
|
||||
@@ -73,21 +68,19 @@ G4Alpha* G4Alpha::Definition()
|
||||
false, "static", -1000020040,
|
||||
0.0, 0
|
||||
);
|
||||
|
||||
// clang-format on
|
||||
}
|
||||
|
||||
theInstance = static_cast<G4Alpha*>(anInstance);
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
G4Alpha* G4Alpha::AlphaDefinition()
|
||||
G4Alpha* G4Alpha::AlphaDefinition()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
G4Alpha* G4Alpha::Alpha()
|
||||
G4Alpha* G4Alpha::Alpha()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -23,9 +23,6 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
@@ -36,34 +33,33 @@
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
#include "G4AntiAlpha.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### ANTI ALPHA ###
|
||||
// ######################################################################
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4String.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
G4AntiAlpha* G4AntiAlpha::theInstance = nullptr;
|
||||
|
||||
G4AntiAlpha* G4AntiAlpha::Definition()
|
||||
{
|
||||
if (theInstance !=nullptr) return theInstance;
|
||||
if (theInstance != nullptr) return theInstance;
|
||||
const G4String name = "anti_alpha";
|
||||
// search in particle table]
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance ==nullptr)
|
||||
{
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr) {
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
|
||||
// clang-format off
|
||||
anInstance = new G4Ions(
|
||||
name, 3.727379*GeV, 0.0*MeV, -2.0*eplus,
|
||||
0, +1, 0,
|
||||
@@ -73,21 +69,19 @@ G4AntiAlpha* G4AntiAlpha::Definition()
|
||||
false, "static", 1000020040,
|
||||
0.0, 0
|
||||
);
|
||||
|
||||
// clang-format on
|
||||
}
|
||||
|
||||
theInstance = static_cast<G4AntiAlpha*>(anInstance);
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
G4AntiAlpha* G4AntiAlpha::AntiAlphaDefinition()
|
||||
G4AntiAlpha* G4AntiAlpha::AntiAlphaDefinition()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
G4AntiAlpha* G4AntiAlpha::AntiAlpha()
|
||||
G4AntiAlpha* G4AntiAlpha::AntiAlpha()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -23,9 +23,6 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
@@ -36,35 +33,35 @@
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
#include "G4AntiDeuteron.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### ANTI DEUTERON ###
|
||||
// ######################################################################
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4String.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4Types.hh"
|
||||
|
||||
G4AntiDeuteron* G4AntiDeuteron::theInstance = nullptr;
|
||||
|
||||
G4AntiDeuteron* G4AntiDeuteron::Definition()
|
||||
{
|
||||
if (theInstance !=nullptr) return theInstance;
|
||||
if (theInstance != nullptr) return theInstance;
|
||||
const G4String name = "anti_deuteron";
|
||||
// search in particle table]
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance ==nullptr)
|
||||
{
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr) {
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
|
||||
// clang-format off
|
||||
anInstance = new G4Ions(
|
||||
name, 1.875613*GeV, 0.0*MeV, -1.0*eplus,
|
||||
2, +1, 0,
|
||||
@@ -74,24 +71,23 @@ G4AntiDeuteron* G4AntiDeuteron::Definition()
|
||||
false, "static", 1000010020,
|
||||
0.0, 0
|
||||
);
|
||||
// clang-format on
|
||||
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus*hbar_Planck/2./(proton_mass_c2 /c_squared);
|
||||
anInstance->SetPDGMagneticMoment( -0.857438230 * mN);
|
||||
|
||||
G4double mN = eplus * hbar_Planck / 2. / (proton_mass_c2 / c_squared);
|
||||
anInstance->SetPDGMagneticMoment(-0.857438230 * mN);
|
||||
}
|
||||
|
||||
theInstance = static_cast<G4AntiDeuteron*>(anInstance);
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
G4AntiDeuteron* G4AntiDeuteron::AntiDeuteronDefinition()
|
||||
G4AntiDeuteron* G4AntiDeuteron::AntiDeuteronDefinition()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
G4AntiDeuteron* G4AntiDeuteron::AntiDeuteron()
|
||||
G4AntiDeuteron* G4AntiDeuteron::AntiDeuteron()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
|
||||
@@ -28,27 +28,26 @@
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#include "G4AntiDoubleHyperDoubleNeutron.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4DecayTable.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### ANTI DOUBLEHYPERDOUBLENEUTRON ###
|
||||
// ######################################################################
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4String.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4Types.hh"
|
||||
#include "G4VDecayChannel.hh"
|
||||
|
||||
G4AntiDoubleHyperDoubleNeutron* G4AntiDoubleHyperDoubleNeutron::theInstance = nullptr;
|
||||
|
||||
|
||||
G4AntiDoubleHyperDoubleNeutron* G4AntiDoubleHyperDoubleNeutron::Definition() {
|
||||
if ( theInstance != nullptr ) return theInstance;
|
||||
G4AntiDoubleHyperDoubleNeutron* G4AntiDoubleHyperDoubleNeutron::Definition()
|
||||
{
|
||||
if (theInstance != nullptr) return theInstance;
|
||||
const G4String name = "anti_doublehyperdoubleneutron";
|
||||
// search in particle table
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
auto anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) );
|
||||
if ( anInstance == nullptr ) {
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr) {
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
@@ -58,7 +57,9 @@ G4AntiDoubleHyperDoubleNeutron* G4AntiDoubleHyperDoubleNeutron::Definition() {
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
// excitation
|
||||
|
||||
// clang-format off
|
||||
anInstance = new G4Ions( name, 4110.24*MeV, 2.501e-12*MeV, 0.0*eplus,
|
||||
0, +1, 0,
|
||||
0, 0, 0,
|
||||
@@ -66,38 +67,44 @@ G4AntiDoubleHyperDoubleNeutron* G4AntiDoubleHyperDoubleNeutron::Definition() {
|
||||
false, 0.2631*ns, nullptr,
|
||||
false, "static", 1020000040,
|
||||
0.0, 0 );
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus*hbar_Planck/2.0/(proton_mass_c2 /c_squared);
|
||||
anInstance->SetPDGMagneticMoment( 2.97896248 * mN );
|
||||
// clang-format on
|
||||
|
||||
// create Decay Table
|
||||
auto table = new G4DecayTable;
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus * hbar_Planck / 2.0 / (proton_mass_c2 / c_squared);
|
||||
anInstance->SetPDGMagneticMoment(2.97896248 * mN);
|
||||
|
||||
// create Decay Table
|
||||
auto table = new G4DecayTable;
|
||||
// create decay channels
|
||||
const G4double half_br_lambda_to_p_pim = 0.5*0.639;
|
||||
const G4double half_br_lambda_to_p_pim = 0.5 * 0.639;
|
||||
const G4double br_lambda_to_n_piz = 0.358;
|
||||
auto mode = new G4VDecayChannel*[3];
|
||||
auto mode = new G4VDecayChannel*[3];
|
||||
// anti_lambda -> anti_proton + pi+ , with 50% probability of capturing the anti_proton
|
||||
mode[0] = new G4PhaseSpaceDecayChannel( "anti_doublehyperdoubleneutron", half_br_lambda_to_p_pim, 5,
|
||||
"anti_neutron", "anti_neutron", "anti_lambda", "anti_proton", "pi+" );
|
||||
mode[1] = new G4PhaseSpaceDecayChannel( "anti_doublehyperdoubleneutron", half_br_lambda_to_p_pim, 2,
|
||||
"anti_hyperH4", "pi+" );
|
||||
mode[0] = new G4PhaseSpaceDecayChannel("anti_doublehyperdoubleneutron", half_br_lambda_to_p_pim,
|
||||
5, "anti_neutron", "anti_neutron", "anti_lambda",
|
||||
"anti_proton", "pi+");
|
||||
mode[1] = new G4PhaseSpaceDecayChannel("anti_doublehyperdoubleneutron", half_br_lambda_to_p_pim,
|
||||
2, "anti_hyperH4", "pi+");
|
||||
// anti_lambda -> anti_neutron + pi0 , without any possibility of capturing the anti_neutron
|
||||
mode[2] = new G4PhaseSpaceDecayChannel( "anti_doublehyperdoubleneutron", br_lambda_to_n_piz, 5,
|
||||
"anti_neutron", "anti_neutron", "anti_lambda", "anti_neutron", "pi0" );
|
||||
for ( G4int index = 0; index < 3; ++index ) table->Insert( mode[index] );
|
||||
delete [] mode;
|
||||
anInstance->SetDecayTable( table );
|
||||
mode[2] = new G4PhaseSpaceDecayChannel("anti_doublehyperdoubleneutron", br_lambda_to_n_piz, 5,
|
||||
"anti_neutron", "anti_neutron", "anti_lambda",
|
||||
"anti_neutron", "pi0");
|
||||
for (G4int index = 0; index < 3; ++index)
|
||||
table->Insert(mode[index]);
|
||||
delete[] mode;
|
||||
anInstance->SetDecayTable(table);
|
||||
}
|
||||
theInstance = static_cast< G4AntiDoubleHyperDoubleNeutron* >( anInstance );
|
||||
theInstance = static_cast<G4AntiDoubleHyperDoubleNeutron*>(anInstance);
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
|
||||
G4AntiDoubleHyperDoubleNeutron* G4AntiDoubleHyperDoubleNeutron::AntiDoubleHyperDoubleNeutronDefinition() {
|
||||
G4AntiDoubleHyperDoubleNeutron*
|
||||
G4AntiDoubleHyperDoubleNeutron::AntiDoubleHyperDoubleNeutronDefinition()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
|
||||
G4AntiDoubleHyperDoubleNeutron* G4AntiDoubleHyperDoubleNeutron::AntiDoubleHyperDoubleNeutron() {
|
||||
G4AntiDoubleHyperDoubleNeutron* G4AntiDoubleHyperDoubleNeutron::AntiDoubleHyperDoubleNeutron()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
@@ -28,27 +28,26 @@
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#include "G4AntiDoubleHyperH4.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4DecayTable.hh"
|
||||
|
||||
// ###############################################################
|
||||
// ### ANTI DOUBLEHYPERH4 ###
|
||||
// ###############################################################
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4String.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4Types.hh"
|
||||
#include "G4VDecayChannel.hh"
|
||||
|
||||
G4AntiDoubleHyperH4* G4AntiDoubleHyperH4::theInstance = nullptr;
|
||||
|
||||
|
||||
G4AntiDoubleHyperH4* G4AntiDoubleHyperH4::Definition() {
|
||||
if ( theInstance != nullptr ) return theInstance;
|
||||
G4AntiDoubleHyperH4* G4AntiDoubleHyperH4::Definition()
|
||||
{
|
||||
if (theInstance != nullptr) return theInstance;
|
||||
const G4String name = "anti_doublehyperH4";
|
||||
// search in particle table
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
auto anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) );
|
||||
if ( anInstance == nullptr ) {
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr) {
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
@@ -58,7 +57,9 @@ G4AntiDoubleHyperH4* G4AntiDoubleHyperH4::Definition() {
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
// excitation
|
||||
|
||||
// clang-format off
|
||||
anInstance = new G4Ions( name, 4106.72*MeV, 2.501e-12*MeV, -1.0*eplus,
|
||||
4, +1, 0,
|
||||
0, 0, 0,
|
||||
@@ -66,40 +67,43 @@ G4AntiDoubleHyperH4* G4AntiDoubleHyperH4::Definition() {
|
||||
false, 0.2631*ns, nullptr,
|
||||
false, "static", 1020010040,
|
||||
0.0, 0 );
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus*hbar_Planck/2.0/(proton_mass_c2 /c_squared);
|
||||
anInstance->SetPDGMagneticMoment( 2.97896248 * mN );
|
||||
// clang-format on
|
||||
|
||||
// create Decay Table
|
||||
auto table = new G4DecayTable;
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus * hbar_Planck / 2.0 / (proton_mass_c2 / c_squared);
|
||||
anInstance->SetPDGMagneticMoment(2.97896248 * mN);
|
||||
|
||||
// create Decay Table
|
||||
auto table = new G4DecayTable;
|
||||
// create decay channels
|
||||
const G4double half_br_lambda_to_p_pim = 0.5*0.639;
|
||||
const G4double half_br_lambda_to_n_piz = 0.5*0.358;
|
||||
auto mode = new G4VDecayChannel*[4];
|
||||
const G4double half_br_lambda_to_p_pim = 0.5 * 0.639;
|
||||
const G4double half_br_lambda_to_n_piz = 0.5 * 0.358;
|
||||
auto mode = new G4VDecayChannel*[4];
|
||||
// anti_lambda -> anti_proton + pi+ , with 50% probability of capturing the anti_proton
|
||||
mode[0] = new G4PhaseSpaceDecayChannel( "anti_doublehyperH4", half_br_lambda_to_p_pim, 3,
|
||||
"anti_hypertriton", "anti_proton", "pi+" );
|
||||
mode[1] = new G4PhaseSpaceDecayChannel( "anti_doublehyperH4", half_br_lambda_to_p_pim, 2,
|
||||
"anti_hyperalpha", "pi+" );
|
||||
mode[0] = new G4PhaseSpaceDecayChannel("anti_doublehyperH4", half_br_lambda_to_p_pim, 3,
|
||||
"anti_hypertriton", "anti_proton", "pi+");
|
||||
mode[1] = new G4PhaseSpaceDecayChannel("anti_doublehyperH4", half_br_lambda_to_p_pim, 2,
|
||||
"anti_hyperalpha", "pi+");
|
||||
// anti_lambda -> anti_neutron + pi0 , with 50% probability of capturing the anti_neutron
|
||||
mode[2] = new G4PhaseSpaceDecayChannel( "anti_doublehyperH4", half_br_lambda_to_n_piz, 3,
|
||||
"anti_hypertriton", "anti_neutron", "pi0" );
|
||||
mode[3] = new G4PhaseSpaceDecayChannel( "anti_doublehyperH4", half_br_lambda_to_n_piz, 2,
|
||||
"anti_hyperH4", "pi0" );
|
||||
for ( G4int index = 0; index < 4; ++index ) table->Insert( mode[index] );
|
||||
delete [] mode;
|
||||
anInstance->SetDecayTable( table );
|
||||
mode[2] = new G4PhaseSpaceDecayChannel("anti_doublehyperH4", half_br_lambda_to_n_piz, 3,
|
||||
"anti_hypertriton", "anti_neutron", "pi0");
|
||||
mode[3] = new G4PhaseSpaceDecayChannel("anti_doublehyperH4", half_br_lambda_to_n_piz, 2,
|
||||
"anti_hyperH4", "pi0");
|
||||
for (G4int index = 0; index < 4; ++index)
|
||||
table->Insert(mode[index]);
|
||||
delete[] mode;
|
||||
anInstance->SetDecayTable(table);
|
||||
}
|
||||
theInstance = static_cast< G4AntiDoubleHyperH4* >( anInstance );
|
||||
theInstance = static_cast<G4AntiDoubleHyperH4*>(anInstance);
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
|
||||
G4AntiDoubleHyperH4* G4AntiDoubleHyperH4::AntiDoubleHyperH4Definition() {
|
||||
G4AntiDoubleHyperH4* G4AntiDoubleHyperH4::AntiDoubleHyperH4Definition()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
|
||||
G4AntiDoubleHyperH4* G4AntiDoubleHyperH4::AntiDoubleHyperH4() {
|
||||
G4AntiDoubleHyperH4* G4AntiDoubleHyperH4::AntiDoubleHyperH4()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
@@ -23,9 +23,6 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
@@ -36,35 +33,35 @@
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
#include "G4AntiHe3.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### ANTI He3 ###
|
||||
// ######################################################################
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4String.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4Types.hh"
|
||||
|
||||
G4AntiHe3* G4AntiHe3::theInstance = nullptr;
|
||||
|
||||
G4AntiHe3* G4AntiHe3::Definition()
|
||||
{
|
||||
if (theInstance !=nullptr) return theInstance;
|
||||
if (theInstance != nullptr) return theInstance;
|
||||
const G4String name = "anti_He3";
|
||||
// search in particle table]
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance ==nullptr)
|
||||
{
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr) {
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
|
||||
// clang-format off
|
||||
anInstance = new G4Ions(
|
||||
name, 2.808391*GeV, 0.0*MeV, -2.0*eplus,
|
||||
1, +1, 0,
|
||||
@@ -74,25 +71,23 @@ G4AntiHe3* G4AntiHe3::Definition()
|
||||
false, "static", 1000020030,
|
||||
0.0, 0
|
||||
);
|
||||
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus*hbar_Planck/2./(proton_mass_c2 /c_squared);
|
||||
anInstance->SetPDGMagneticMoment( 2.12762485 * mN);
|
||||
// clang-format on
|
||||
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus * hbar_Planck / 2. / (proton_mass_c2 / c_squared);
|
||||
anInstance->SetPDGMagneticMoment(2.12762485 * mN);
|
||||
}
|
||||
|
||||
theInstance = static_cast<G4AntiHe3*>(anInstance);
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
G4AntiHe3* G4AntiHe3::AntiHe3Definition()
|
||||
G4AntiHe3* G4AntiHe3::AntiHe3Definition()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
G4AntiHe3* G4AntiHe3::AntiHe3()
|
||||
G4AntiHe3* G4AntiHe3::AntiHe3()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -28,27 +28,26 @@
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#include "G4AntiHyperAlpha.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4DecayTable.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### ANTI HYPERALPHA ###
|
||||
// ######################################################################
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4String.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4Types.hh"
|
||||
#include "G4VDecayChannel.hh"
|
||||
|
||||
G4AntiHyperAlpha* G4AntiHyperAlpha::theInstance = nullptr;
|
||||
|
||||
|
||||
G4AntiHyperAlpha* G4AntiHyperAlpha::Definition() {
|
||||
if ( theInstance != nullptr ) return theInstance;
|
||||
G4AntiHyperAlpha* G4AntiHyperAlpha::Definition()
|
||||
{
|
||||
if (theInstance != nullptr) return theInstance;
|
||||
const G4String name = "anti_hyperalpha";
|
||||
// search in particle table
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
auto anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) );
|
||||
if ( anInstance == nullptr ) {
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr) {
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
@@ -58,7 +57,9 @@ G4AntiHyperAlpha* G4AntiHyperAlpha::Definition() {
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
// excitation
|
||||
|
||||
// clang-format off
|
||||
anInstance = new G4Ions( name, 3921.87*MeV, 2.501e-12*MeV, -2.0*eplus,
|
||||
0, +1, 0,
|
||||
0, 0, 0,
|
||||
@@ -66,15 +67,17 @@ G4AntiHyperAlpha* G4AntiHyperAlpha::Definition() {
|
||||
false, 0.2631*ns, nullptr,
|
||||
false, "static", 1010020040,
|
||||
0.0, 0 );
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus*hbar_Planck/2.0/(proton_mass_c2 /c_squared);
|
||||
anInstance->SetPDGMagneticMoment( 2.97896248 * mN );
|
||||
// clang-format on
|
||||
|
||||
// create Decay Table
|
||||
auto table = new G4DecayTable;
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus * hbar_Planck / 2.0 / (proton_mass_c2 / c_squared);
|
||||
anInstance->SetPDGMagneticMoment(2.97896248 * mN);
|
||||
|
||||
// create Decay Table
|
||||
auto table = new G4DecayTable;
|
||||
// create decay channels
|
||||
/*
|
||||
// The decay "mode[1]" produces the secondary "anti_Li4" which is not existing
|
||||
/*
|
||||
// The decay "mode[1]" produces the secondary "anti_Li4" which is not existing
|
||||
// in Geant4: we therefore skip it for the time being (similarly for hyperalpha,
|
||||
// to keep the symmetry between particle and anti-particle).
|
||||
const G4double half_br_lambda_to_p_pim = 0.5*0.639;
|
||||
@@ -94,31 +97,32 @@ G4AntiHyperAlpha* G4AntiHyperAlpha::Definition() {
|
||||
*/
|
||||
// Replacement decay for the time being
|
||||
const G4double br_lambda_to_p_pim = 0.639;
|
||||
const G4double half_br_lambda_to_n_piz = 0.5*0.358;
|
||||
auto mode = new G4VDecayChannel*[3];
|
||||
const G4double half_br_lambda_to_n_piz = 0.5 * 0.358;
|
||||
auto mode = new G4VDecayChannel*[3];
|
||||
// anti_lambda -> anti_proton + pi+ , with 0% probability of capturing the anti_proton
|
||||
mode[0] = new G4PhaseSpaceDecayChannel( "anti_hyperalpha", br_lambda_to_p_pim, 3,
|
||||
"anti_He3", "anti_proton", "pi+" );
|
||||
mode[0] = new G4PhaseSpaceDecayChannel("anti_hyperalpha", br_lambda_to_p_pim, 3, "anti_He3",
|
||||
"anti_proton", "pi+");
|
||||
// anti_lambda -> anti_neutron + pi0 , with 50% probability of capturing the anti_neutron
|
||||
mode[1] = new G4PhaseSpaceDecayChannel( "anti_hyperalpha", half_br_lambda_to_n_piz, 3,
|
||||
"anti_He3", "anti_neutron", "pi0" );
|
||||
mode[2] = new G4PhaseSpaceDecayChannel( "anti_hyperalpha", half_br_lambda_to_n_piz, 2,
|
||||
"anti_alpha", "pi0" );
|
||||
for ( G4int index = 0; index < 3; ++index ) table->Insert( mode[index] );
|
||||
mode[1] = new G4PhaseSpaceDecayChannel("anti_hyperalpha", half_br_lambda_to_n_piz, 3,
|
||||
"anti_He3", "anti_neutron", "pi0");
|
||||
mode[2] = new G4PhaseSpaceDecayChannel("anti_hyperalpha", half_br_lambda_to_n_piz, 2,
|
||||
"anti_alpha", "pi0");
|
||||
for (G4int index = 0; index < 3; ++index)
|
||||
table->Insert(mode[index]);
|
||||
//---
|
||||
delete [] mode;
|
||||
anInstance->SetDecayTable( table );
|
||||
delete[] mode;
|
||||
anInstance->SetDecayTable(table);
|
||||
}
|
||||
theInstance = static_cast< G4AntiHyperAlpha* >( anInstance );
|
||||
theInstance = static_cast<G4AntiHyperAlpha*>(anInstance);
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
|
||||
G4AntiHyperAlpha* G4AntiHyperAlpha::AntiHyperAlphaDefinition() {
|
||||
G4AntiHyperAlpha* G4AntiHyperAlpha::AntiHyperAlphaDefinition()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
|
||||
G4AntiHyperAlpha* G4AntiHyperAlpha::AntiHyperAlpha() {
|
||||
G4AntiHyperAlpha* G4AntiHyperAlpha::AntiHyperAlpha()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
@@ -28,27 +28,26 @@
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#include "G4AntiHyperH4.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4DecayTable.hh"
|
||||
|
||||
// ###############################################################
|
||||
// ### ANTI HYPERH4 ###
|
||||
// ###############################################################
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4String.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4Types.hh"
|
||||
#include "G4VDecayChannel.hh"
|
||||
|
||||
G4AntiHyperH4* G4AntiHyperH4::theInstance = nullptr;
|
||||
|
||||
|
||||
G4AntiHyperH4* G4AntiHyperH4::Definition() {
|
||||
if ( theInstance != nullptr ) return theInstance;
|
||||
G4AntiHyperH4* G4AntiHyperH4::Definition()
|
||||
{
|
||||
if (theInstance != nullptr) return theInstance;
|
||||
const G4String name = "anti_hyperH4";
|
||||
// search in particle table
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
auto anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) );
|
||||
if ( anInstance == nullptr ) {
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr) {
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
@@ -58,7 +57,9 @@ G4AntiHyperH4* G4AntiHyperH4::Definition() {
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
// excitation
|
||||
|
||||
// clang-format off
|
||||
anInstance = new G4Ions( name, 3922.40*MeV, 2.501e-12*MeV, -1.0*eplus,
|
||||
4, +1, 0,
|
||||
0, 0, 0,
|
||||
@@ -66,15 +67,17 @@ G4AntiHyperH4* G4AntiHyperH4::Definition() {
|
||||
false, 0.2631*ns, nullptr,
|
||||
false, "static", 1010010040,
|
||||
0.0, 0 );
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus*hbar_Planck/2.0/(proton_mass_c2 /c_squared);
|
||||
anInstance->SetPDGMagneticMoment( 2.97896248 * mN );
|
||||
// clang-format on
|
||||
|
||||
// create Decay Table
|
||||
auto table = new G4DecayTable;
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus * hbar_Planck / 2.0 / (proton_mass_c2 / c_squared);
|
||||
anInstance->SetPDGMagneticMoment(2.97896248 * mN);
|
||||
|
||||
// create Decay Table
|
||||
auto table = new G4DecayTable;
|
||||
// create decay channels
|
||||
/*
|
||||
// The decay "mode[3]" produces the secondary "anti_H4" which is not existing
|
||||
// The decay "mode[3]" produces the secondary "anti_H4" which is not existing
|
||||
// in Geant4: we therefore skip it for the time being (similarly for hyperH4,
|
||||
// to keep the symmetry between particle and anti-particle).
|
||||
const G4double half_br_lambda_to_p_pim = 0.5*0.639;
|
||||
@@ -92,33 +95,34 @@ G4AntiHyperH4* G4AntiHyperH4::Definition() {
|
||||
"anti_H4", "pi0" );
|
||||
for ( G4int index = 0; index < 4; ++index ) table->Insert( mode[index] );
|
||||
*/
|
||||
// Replacement decay for the time being
|
||||
const G4double half_br_lambda_to_p_pim = 0.5*0.639;
|
||||
// Replacement decay for the time being
|
||||
const G4double half_br_lambda_to_p_pim = 0.5 * 0.639;
|
||||
const G4double br_lambda_to_n_piz = 0.358;
|
||||
auto mode = new G4VDecayChannel*[3];
|
||||
auto mode = new G4VDecayChannel*[3];
|
||||
// anti_lambda -> anti_proton + pi+ , with 50% probability of capturing the anti_proton
|
||||
mode[0] = new G4PhaseSpaceDecayChannel( "anti_hyperH4", half_br_lambda_to_p_pim, 3,
|
||||
"anti_triton", "anti_proton", "pi+" );
|
||||
mode[1] = new G4PhaseSpaceDecayChannel( "anti_hyperH4", half_br_lambda_to_p_pim, 2,
|
||||
"anti_alpha", "pi+" );
|
||||
mode[0] = new G4PhaseSpaceDecayChannel("anti_hyperH4", half_br_lambda_to_p_pim, 3,
|
||||
"anti_triton", "anti_proton", "pi+");
|
||||
mode[1] =
|
||||
new G4PhaseSpaceDecayChannel("anti_hyperH4", half_br_lambda_to_p_pim, 2, "anti_alpha", "pi+");
|
||||
// anti_lambda -> anti_neutron + pi0 , with 0% probability of capturing the anti_neutron
|
||||
mode[2] = new G4PhaseSpaceDecayChannel( "anti_hyperH4", br_lambda_to_n_piz, 3,
|
||||
"anti_triton", "anti_neutron", "pi0" );
|
||||
for ( G4int index = 0; index < 3; ++index ) table->Insert( mode[index] );
|
||||
mode[2] = new G4PhaseSpaceDecayChannel("anti_hyperH4", br_lambda_to_n_piz, 3, "anti_triton",
|
||||
"anti_neutron", "pi0");
|
||||
for (G4int index = 0; index < 3; ++index)
|
||||
table->Insert(mode[index]);
|
||||
//---
|
||||
delete [] mode;
|
||||
anInstance->SetDecayTable( table );
|
||||
delete[] mode;
|
||||
anInstance->SetDecayTable(table);
|
||||
}
|
||||
theInstance = static_cast< G4AntiHyperH4* >( anInstance );
|
||||
theInstance = static_cast<G4AntiHyperH4*>(anInstance);
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
|
||||
G4AntiHyperH4* G4AntiHyperH4::AntiHyperH4Definition() {
|
||||
G4AntiHyperH4* G4AntiHyperH4::AntiHyperH4Definition()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
|
||||
G4AntiHyperH4* G4AntiHyperH4::AntiHyperH4() {
|
||||
G4AntiHyperH4* G4AntiHyperH4::AntiHyperH4()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
@@ -28,27 +28,26 @@
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#include "G4AntiHyperHe5.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4DecayTable.hh"
|
||||
|
||||
// ##################################################################
|
||||
// ### ANTI HYPERHE5 ###
|
||||
// ##################################################################
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4String.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4Types.hh"
|
||||
#include "G4VDecayChannel.hh"
|
||||
|
||||
G4AntiHyperHe5* G4AntiHyperHe5::theInstance = nullptr;
|
||||
|
||||
|
||||
G4AntiHyperHe5* G4AntiHyperHe5::Definition() {
|
||||
if ( theInstance != nullptr ) return theInstance;
|
||||
G4AntiHyperHe5* G4AntiHyperHe5::Definition()
|
||||
{
|
||||
if (theInstance != nullptr) return theInstance;
|
||||
const G4String name = "anti_hyperHe5";
|
||||
// search in particle table
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
auto anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) );
|
||||
if ( anInstance == nullptr ) {
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr) {
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
@@ -58,7 +57,9 @@ G4AntiHyperHe5* G4AntiHyperHe5::Definition() {
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
// excitation
|
||||
|
||||
// clang-format off
|
||||
anInstance = new G4Ions( name, 4840.00*MeV, 2.501e-12*MeV, -2.0*eplus,
|
||||
3, +1, 0,
|
||||
0, 0, 0,
|
||||
@@ -66,12 +67,14 @@ G4AntiHyperHe5* G4AntiHyperHe5::Definition() {
|
||||
false, 0.2631*ns, nullptr,
|
||||
false, "static", 1010020050,
|
||||
0.0, 0 );
|
||||
// clang-format on
|
||||
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus*hbar_Planck/2.0/(proton_mass_c2 /c_squared);
|
||||
anInstance->SetPDGMagneticMoment( 2.97896248 * mN );
|
||||
G4double mN = eplus * hbar_Planck / 2.0 / (proton_mass_c2 / c_squared);
|
||||
anInstance->SetPDGMagneticMoment(2.97896248 * mN);
|
||||
|
||||
// create Decay Table
|
||||
auto table = new G4DecayTable;
|
||||
auto table = new G4DecayTable;
|
||||
// create decay channels
|
||||
/*
|
||||
// The decays "mode[1]" and "mode[3]" produce the secondaries "anti_Li5" and "anti_He5",
|
||||
@@ -92,31 +95,32 @@ G4AntiHyperHe5* G4AntiHyperHe5::Definition() {
|
||||
"anti_He5", "pi0" );
|
||||
for ( G4int index = 0; index < 4; ++index ) table->Insert( mode[index] );
|
||||
*/
|
||||
// Replacement decay for the time being
|
||||
// Replacement decay for the time being
|
||||
const G4double br_lambda_to_p_pim = 0.639;
|
||||
const G4double br_lambda_to_n_piz = 0.358;
|
||||
auto mode = new G4VDecayChannel*[2];
|
||||
auto mode = new G4VDecayChannel*[2];
|
||||
// anti_lambda -> anti_proton + pi+ , with 0% probability of capturing the anti_proton
|
||||
mode[0] = new G4PhaseSpaceDecayChannel( "anti_hyperHe5", br_lambda_to_p_pim, 3,
|
||||
"anti_alpha", "anti_proton", "pi+" );
|
||||
mode[0] = new G4PhaseSpaceDecayChannel("anti_hyperHe5", br_lambda_to_p_pim, 3, "anti_alpha",
|
||||
"anti_proton", "pi+");
|
||||
// anti_lambda -> anti_neutron + pi0 , with 0% probability of capturing the anti_neutron
|
||||
mode[1] = new G4PhaseSpaceDecayChannel( "anti_hyperHe5", br_lambda_to_n_piz, 3,
|
||||
"anti_alpha", "anti_neutron", "pi0" );
|
||||
for ( G4int index = 0; index < 2; ++index ) table->Insert( mode[index] );
|
||||
mode[1] = new G4PhaseSpaceDecayChannel("anti_hyperHe5", br_lambda_to_n_piz, 3, "anti_alpha",
|
||||
"anti_neutron", "pi0");
|
||||
for (G4int index = 0; index < 2; ++index)
|
||||
table->Insert(mode[index]);
|
||||
//---
|
||||
delete [] mode;
|
||||
anInstance->SetDecayTable( table );
|
||||
delete[] mode;
|
||||
anInstance->SetDecayTable(table);
|
||||
}
|
||||
theInstance = static_cast< G4AntiHyperHe5* >( anInstance );
|
||||
theInstance = static_cast<G4AntiHyperHe5*>(anInstance);
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
|
||||
G4AntiHyperHe5* G4AntiHyperHe5::AntiHyperHe5Definition() {
|
||||
G4AntiHyperHe5* G4AntiHyperHe5::AntiHyperHe5Definition()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
|
||||
G4AntiHyperHe5* G4AntiHyperHe5::AntiHyperHe5() {
|
||||
G4AntiHyperHe5* G4AntiHyperHe5::AntiHyperHe5()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
@@ -28,27 +28,26 @@
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#include "G4AntiHyperTriton.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4DecayTable.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### ANTI HYPERTRITON ###
|
||||
// ######################################################################
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4String.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4Types.hh"
|
||||
#include "G4VDecayChannel.hh"
|
||||
|
||||
G4AntiHyperTriton* G4AntiHyperTriton::theInstance = nullptr;
|
||||
|
||||
|
||||
G4AntiHyperTriton* G4AntiHyperTriton::Definition() {
|
||||
if ( theInstance != nullptr ) return theInstance;
|
||||
G4AntiHyperTriton* G4AntiHyperTriton::Definition()
|
||||
{
|
||||
if (theInstance != nullptr) return theInstance;
|
||||
const G4String name = "anti_hypertriton";
|
||||
// search in particle table
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
auto anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) );
|
||||
if ( anInstance == nullptr ) {
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr) {
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
@@ -58,7 +57,9 @@ G4AntiHyperTriton* G4AntiHyperTriton::Definition() {
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
// excitation
|
||||
|
||||
// clang-format off
|
||||
anInstance = new G4Ions( name, 2991.17*MeV, 2.501e-12*MeV, -1.0*eplus,
|
||||
1, +1, 0,
|
||||
0, 0, 0,
|
||||
@@ -66,40 +67,43 @@ G4AntiHyperTriton* G4AntiHyperTriton::Definition() {
|
||||
false, 0.2631*ns, nullptr,
|
||||
false, "static", 1010010030,
|
||||
0.0, 0 );
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus*hbar_Planck/2.0/(proton_mass_c2 /c_squared);
|
||||
anInstance->SetPDGMagneticMoment( 2.97896248 * mN );
|
||||
// clang-format on
|
||||
|
||||
// create Decay Table
|
||||
auto table = new G4DecayTable;
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus * hbar_Planck / 2.0 / (proton_mass_c2 / c_squared);
|
||||
anInstance->SetPDGMagneticMoment(2.97896248 * mN);
|
||||
|
||||
// create Decay Table
|
||||
auto table = new G4DecayTable;
|
||||
// create decay channels
|
||||
const G4double half_br_lambda_to_p_pim = 0.5*0.639;
|
||||
const G4double half_br_lambda_to_n_piz = 0.5*0.358;
|
||||
auto mode = new G4VDecayChannel*[4];
|
||||
const G4double half_br_lambda_to_p_pim = 0.5 * 0.639;
|
||||
const G4double half_br_lambda_to_n_piz = 0.5 * 0.358;
|
||||
auto mode = new G4VDecayChannel*[4];
|
||||
// anti_lambda -> anti_proton + pi+ , with 50% probability of capturing the anti_proton
|
||||
mode[0] = new G4PhaseSpaceDecayChannel( "anti_hypertriton", half_br_lambda_to_p_pim, 3,
|
||||
"anti_deuteron", "anti_proton", "pi+" );
|
||||
mode[1] = new G4PhaseSpaceDecayChannel( "anti_hypertriton", half_br_lambda_to_p_pim, 2,
|
||||
"anti_He3", "pi+" );
|
||||
mode[0] = new G4PhaseSpaceDecayChannel("anti_hypertriton", half_br_lambda_to_p_pim, 3,
|
||||
"anti_deuteron", "anti_proton", "pi+");
|
||||
mode[1] = new G4PhaseSpaceDecayChannel("anti_hypertriton", half_br_lambda_to_p_pim, 2,
|
||||
"anti_He3", "pi+");
|
||||
// anti_lambda -> anti_neutron + pi0 , with 50% probability of capturing the anti_neutron
|
||||
mode[2] = new G4PhaseSpaceDecayChannel( "anti_hypertriton", half_br_lambda_to_n_piz, 3,
|
||||
"anti_deuteron", "anti_neutron", "pi0" );
|
||||
mode[3] = new G4PhaseSpaceDecayChannel( "anti_hypertriton", half_br_lambda_to_n_piz, 2,
|
||||
"anti_triton", "pi0" );
|
||||
for ( G4int index = 0; index < 4; ++index ) table->Insert( mode[index] );
|
||||
delete [] mode;
|
||||
anInstance->SetDecayTable( table );
|
||||
mode[2] = new G4PhaseSpaceDecayChannel("anti_hypertriton", half_br_lambda_to_n_piz, 3,
|
||||
"anti_deuteron", "anti_neutron", "pi0");
|
||||
mode[3] = new G4PhaseSpaceDecayChannel("anti_hypertriton", half_br_lambda_to_n_piz, 2,
|
||||
"anti_triton", "pi0");
|
||||
for (G4int index = 0; index < 4; ++index)
|
||||
table->Insert(mode[index]);
|
||||
delete[] mode;
|
||||
anInstance->SetDecayTable(table);
|
||||
}
|
||||
theInstance = static_cast< G4AntiHyperTriton* >( anInstance );
|
||||
theInstance = static_cast<G4AntiHyperTriton*>(anInstance);
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
|
||||
G4AntiHyperTriton* G4AntiHyperTriton::AntiHyperTritonDefinition() {
|
||||
G4AntiHyperTriton* G4AntiHyperTriton::AntiHyperTritonDefinition()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
|
||||
G4AntiHyperTriton* G4AntiHyperTriton::AntiHyperTriton() {
|
||||
G4AntiHyperTriton* G4AntiHyperTriton::AntiHyperTriton()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
@@ -23,9 +23,6 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
@@ -36,35 +33,35 @@
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
#include "G4AntiTriton.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### ANTI TRITON ###
|
||||
// ######################################################################
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4String.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4Types.hh"
|
||||
|
||||
G4AntiTriton* G4AntiTriton::theInstance = nullptr;
|
||||
|
||||
G4AntiTriton* G4AntiTriton::Definition()
|
||||
{
|
||||
if (theInstance !=nullptr) return theInstance;
|
||||
if (theInstance != nullptr) return theInstance;
|
||||
const G4String name = "anti_triton";
|
||||
// search in particle table]
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance ==nullptr)
|
||||
{
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr) {
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
|
||||
// clang-format off
|
||||
anInstance = new G4Ions(
|
||||
name, 2.808921*GeV, 0.0*MeV, -1.0*eplus,
|
||||
1, +1, 0,
|
||||
@@ -74,25 +71,23 @@ G4AntiTriton* G4AntiTriton::Definition()
|
||||
false, "static", 1000010030,
|
||||
0.0, 0
|
||||
);
|
||||
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus*hbar_Planck/2./(proton_mass_c2 /c_squared);
|
||||
anInstance->SetPDGMagneticMoment( -2.97896248 * mN);
|
||||
// clang-format on
|
||||
|
||||
}
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus * hbar_Planck / 2. / (proton_mass_c2 / c_squared);
|
||||
anInstance->SetPDGMagneticMoment(-2.97896248 * mN);
|
||||
}
|
||||
|
||||
theInstance = static_cast<G4AntiTriton*>(anInstance);
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
G4AntiTriton* G4AntiTriton::AntiTritonDefinition()
|
||||
G4AntiTriton* G4AntiTriton::AntiTritonDefinition()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
G4AntiTriton* G4AntiTriton::AntiTriton()
|
||||
G4AntiTriton* G4AntiTriton::AntiTriton()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -23,9 +23,6 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
@@ -36,35 +33,35 @@
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
#include "G4Deuteron.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### DEUTERON ###
|
||||
// ######################################################################
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4String.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4Types.hh"
|
||||
|
||||
G4Deuteron* G4Deuteron::theInstance = nullptr;
|
||||
|
||||
G4Deuteron* G4Deuteron::Definition()
|
||||
{
|
||||
if (theInstance !=nullptr) return theInstance;
|
||||
if (theInstance != nullptr) return theInstance;
|
||||
const G4String name = "deuteron";
|
||||
// search in particle table]
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance ==nullptr)
|
||||
{
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr) {
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
|
||||
// clang-format off
|
||||
anInstance = new G4Ions(
|
||||
name, 1.875613*GeV, 0.0*MeV, +1.0*eplus,
|
||||
2, +1, 0,
|
||||
@@ -74,25 +71,23 @@ G4Deuteron* G4Deuteron::Definition()
|
||||
false, "static", -1000010020,
|
||||
0.0, 0
|
||||
);
|
||||
// clang-format on
|
||||
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus*hbar_Planck/2./(proton_mass_c2 /c_squared);
|
||||
anInstance->SetPDGMagneticMoment( 0.857438230 * mN);
|
||||
|
||||
G4double mN = eplus * hbar_Planck / 2. / (proton_mass_c2 / c_squared);
|
||||
anInstance->SetPDGMagneticMoment(0.857438230 * mN);
|
||||
}
|
||||
|
||||
theInstance = static_cast<G4Deuteron*>(anInstance);
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
G4Deuteron* G4Deuteron::DeuteronDefinition()
|
||||
G4Deuteron* G4Deuteron::DeuteronDefinition()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
G4Deuteron* G4Deuteron::Deuteron()
|
||||
G4Deuteron* G4Deuteron::Deuteron()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -28,27 +28,26 @@
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#include "G4DoubleHyperDoubleNeutron.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4DecayTable.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### DOUBLEHYPERDOUBLENEUTRON ###
|
||||
// ######################################################################
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4String.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4Types.hh"
|
||||
#include "G4VDecayChannel.hh"
|
||||
|
||||
G4DoubleHyperDoubleNeutron* G4DoubleHyperDoubleNeutron::theInstance = nullptr;
|
||||
|
||||
|
||||
G4DoubleHyperDoubleNeutron* G4DoubleHyperDoubleNeutron::Definition() {
|
||||
if ( theInstance != nullptr ) return theInstance;
|
||||
G4DoubleHyperDoubleNeutron* G4DoubleHyperDoubleNeutron::Definition()
|
||||
{
|
||||
if (theInstance != nullptr) return theInstance;
|
||||
const G4String name = "doublehyperdoubleneutron";
|
||||
// search in particle table
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
auto anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) );
|
||||
if ( anInstance == nullptr ) {
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr) {
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
@@ -58,7 +57,9 @@ G4DoubleHyperDoubleNeutron* G4DoubleHyperDoubleNeutron::Definition() {
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
// excitation
|
||||
|
||||
// clang-format off
|
||||
anInstance = new G4Ions( name, 4110.24*MeV, 2.501e-12*MeV, 0.0*eplus,
|
||||
0, +1, 0,
|
||||
0, 0, 0,
|
||||
@@ -66,38 +67,41 @@ G4DoubleHyperDoubleNeutron* G4DoubleHyperDoubleNeutron::Definition() {
|
||||
false, 0.2631*ns, nullptr,
|
||||
false, "static", -1020000040,
|
||||
0.0, 0 );
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus*hbar_Planck/2.0/(proton_mass_c2 /c_squared);
|
||||
anInstance->SetPDGMagneticMoment( 2.97896248 * mN );
|
||||
// clang-format on
|
||||
|
||||
// create Decay Table
|
||||
auto table = new G4DecayTable;
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus * hbar_Planck / 2.0 / (proton_mass_c2 / c_squared);
|
||||
anInstance->SetPDGMagneticMoment(2.97896248 * mN);
|
||||
|
||||
// create Decay Table
|
||||
auto table = new G4DecayTable;
|
||||
// create decay channels
|
||||
const G4double half_br_lambda_to_p_pim = 0.5*0.639;
|
||||
const G4double half_br_lambda_to_p_pim = 0.5 * 0.639;
|
||||
const G4double br_lambda_to_n_piz = 0.358;
|
||||
auto mode = new G4VDecayChannel*[3];
|
||||
auto mode = new G4VDecayChannel*[3];
|
||||
// lambda -> proton + pi- , with 50% probability of capturing the proton
|
||||
mode[0] = new G4PhaseSpaceDecayChannel( "doublehyperdoubleneutron", half_br_lambda_to_p_pim, 5,
|
||||
"neutron", "neutron", "lambda", "proton", "pi-" );
|
||||
mode[1] = new G4PhaseSpaceDecayChannel( "doublehyperdoubleneutron", half_br_lambda_to_p_pim, 2,
|
||||
"hyperH4", "pi-" );
|
||||
mode[0] = new G4PhaseSpaceDecayChannel("doublehyperdoubleneutron", half_br_lambda_to_p_pim, 5,
|
||||
"neutron", "neutron", "lambda", "proton", "pi-");
|
||||
mode[1] = new G4PhaseSpaceDecayChannel("doublehyperdoubleneutron", half_br_lambda_to_p_pim, 2,
|
||||
"hyperH4", "pi-");
|
||||
// lambda -> neutron + pi0 , without any possibility of capturing the neutron
|
||||
mode[2] = new G4PhaseSpaceDecayChannel( "doublehyperdoubleneutron", br_lambda_to_n_piz, 5,
|
||||
"neutron", "neutron", "lambda", "neutron", "pi0" );
|
||||
for ( G4int index = 0; index < 3; ++index ) table->Insert( mode[index] );
|
||||
delete [] mode;
|
||||
anInstance->SetDecayTable( table );
|
||||
mode[2] = new G4PhaseSpaceDecayChannel("doublehyperdoubleneutron", br_lambda_to_n_piz, 5,
|
||||
"neutron", "neutron", "lambda", "neutron", "pi0");
|
||||
for (G4int index = 0; index < 3; ++index)
|
||||
table->Insert(mode[index]);
|
||||
delete[] mode;
|
||||
anInstance->SetDecayTable(table);
|
||||
}
|
||||
theInstance = static_cast< G4DoubleHyperDoubleNeutron* >( anInstance );
|
||||
theInstance = static_cast<G4DoubleHyperDoubleNeutron*>(anInstance);
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
|
||||
G4DoubleHyperDoubleNeutron* G4DoubleHyperDoubleNeutron::DoubleHyperDoubleNeutronDefinition() {
|
||||
G4DoubleHyperDoubleNeutron* G4DoubleHyperDoubleNeutron::DoubleHyperDoubleNeutronDefinition()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
|
||||
G4DoubleHyperDoubleNeutron* G4DoubleHyperDoubleNeutron::DoubleHyperDoubleNeutron() {
|
||||
G4DoubleHyperDoubleNeutron* G4DoubleHyperDoubleNeutron::DoubleHyperDoubleNeutron()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
@@ -28,27 +28,26 @@
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#include "G4DoubleHyperH4.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4DecayTable.hh"
|
||||
|
||||
// ###############################################################
|
||||
// ### DOUBLEHYPERH4 ###
|
||||
// ###############################################################
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4String.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4Types.hh"
|
||||
#include "G4VDecayChannel.hh"
|
||||
|
||||
G4DoubleHyperH4* G4DoubleHyperH4::theInstance = nullptr;
|
||||
|
||||
|
||||
G4DoubleHyperH4* G4DoubleHyperH4::Definition() {
|
||||
if ( theInstance != nullptr ) return theInstance;
|
||||
G4DoubleHyperH4* G4DoubleHyperH4::Definition()
|
||||
{
|
||||
if (theInstance != nullptr) return theInstance;
|
||||
const G4String name = "doublehyperH4";
|
||||
// search in particle table
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
auto anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) );
|
||||
if ( anInstance == nullptr ) {
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr) {
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
@@ -58,7 +57,9 @@ G4DoubleHyperH4* G4DoubleHyperH4::Definition() {
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
// excitation
|
||||
|
||||
// clang-format off
|
||||
anInstance = new G4Ions( name, 4106.72*MeV, 2.501e-12*MeV, +1.0*eplus,
|
||||
4, +1, 0,
|
||||
0, 0, 0,
|
||||
@@ -66,40 +67,43 @@ G4DoubleHyperH4* G4DoubleHyperH4::Definition() {
|
||||
false, 0.2631*ns, nullptr,
|
||||
false, "static", -1020010040,
|
||||
0.0, 0 );
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus*hbar_Planck/2.0/(proton_mass_c2 /c_squared);
|
||||
anInstance->SetPDGMagneticMoment( 2.97896248 * mN );
|
||||
// clang-format on
|
||||
|
||||
// create Decay Table
|
||||
auto table = new G4DecayTable;
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus * hbar_Planck / 2.0 / (proton_mass_c2 / c_squared);
|
||||
anInstance->SetPDGMagneticMoment(2.97896248 * mN);
|
||||
|
||||
// create Decay Table
|
||||
auto table = new G4DecayTable;
|
||||
// create decay channels
|
||||
const G4double half_br_lambda_to_p_pim = 0.5*0.639;
|
||||
const G4double half_br_lambda_to_n_piz = 0.5*0.358;
|
||||
auto mode = new G4VDecayChannel*[4];
|
||||
const G4double half_br_lambda_to_p_pim = 0.5 * 0.639;
|
||||
const G4double half_br_lambda_to_n_piz = 0.5 * 0.358;
|
||||
auto mode = new G4VDecayChannel*[4];
|
||||
// lambda -> proton + pi- , with 50% probability of capturing the proton
|
||||
mode[0] = new G4PhaseSpaceDecayChannel( "doublehyperH4", half_br_lambda_to_p_pim, 3,
|
||||
"hypertriton", "proton", "pi-" );
|
||||
mode[1] = new G4PhaseSpaceDecayChannel( "doublehyperH4", half_br_lambda_to_p_pim, 2,
|
||||
"hyperalpha", "pi-" );
|
||||
mode[0] = new G4PhaseSpaceDecayChannel("doublehyperH4", half_br_lambda_to_p_pim, 3,
|
||||
"hypertriton", "proton", "pi-");
|
||||
mode[1] = new G4PhaseSpaceDecayChannel("doublehyperH4", half_br_lambda_to_p_pim, 2,
|
||||
"hyperalpha", "pi-");
|
||||
// lambda -> neutron + pi0 , with 50% probability of capturing the neutron
|
||||
mode[2] = new G4PhaseSpaceDecayChannel( "doublehyperH4", half_br_lambda_to_n_piz, 3,
|
||||
"hypertriton", "neutron", "pi0" );
|
||||
mode[3] = new G4PhaseSpaceDecayChannel( "doublehyperH4", half_br_lambda_to_n_piz, 2,
|
||||
"hyperH4", "pi0" );
|
||||
for ( G4int index = 0; index < 4; ++index ) table->Insert( mode[index] );
|
||||
delete [] mode;
|
||||
anInstance->SetDecayTable( table );
|
||||
mode[2] = new G4PhaseSpaceDecayChannel("doublehyperH4", half_br_lambda_to_n_piz, 3,
|
||||
"hypertriton", "neutron", "pi0");
|
||||
mode[3] =
|
||||
new G4PhaseSpaceDecayChannel("doublehyperH4", half_br_lambda_to_n_piz, 2, "hyperH4", "pi0");
|
||||
for (G4int index = 0; index < 4; ++index)
|
||||
table->Insert(mode[index]);
|
||||
delete[] mode;
|
||||
anInstance->SetDecayTable(table);
|
||||
}
|
||||
theInstance = static_cast< G4DoubleHyperH4* >( anInstance );
|
||||
theInstance = static_cast<G4DoubleHyperH4*>(anInstance);
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
|
||||
G4DoubleHyperH4* G4DoubleHyperH4::DoubleHyperH4Definition() {
|
||||
G4DoubleHyperH4* G4DoubleHyperH4::DoubleHyperH4Definition()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
|
||||
G4DoubleHyperH4* G4DoubleHyperH4::DoubleHyperH4() {
|
||||
G4DoubleHyperH4* G4DoubleHyperH4::DoubleHyperH4()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
@@ -23,9 +23,6 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
@@ -36,38 +33,37 @@
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
#include "G4GenericIon.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### GenericIon ###
|
||||
// ######################################################################
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4String.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
G4GenericIon* G4GenericIon::theInstance = nullptr;
|
||||
|
||||
G4GenericIon* G4GenericIon::Definition()
|
||||
{
|
||||
if (theInstance !=nullptr) return theInstance;
|
||||
if (theInstance != nullptr) return theInstance;
|
||||
const G4String name = "GenericIon";
|
||||
// search in particle table]
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance ==nullptr)
|
||||
{
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
//!!!!
|
||||
//!!!! this particle should not be used for tracking
|
||||
//!!!! all properties except name and type are meaningless
|
||||
//!!!!
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr) {
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
//!!!!
|
||||
//!!!! this particle should not be used for tracking
|
||||
//!!!! all properties except name and type are meaningless
|
||||
//!!!!
|
||||
|
||||
// clang-format off
|
||||
anInstance = new G4Ions(
|
||||
name, 0.9382723*GeV, 0.0*MeV, eplus,
|
||||
1, +1, 0,
|
||||
@@ -77,6 +73,7 @@ G4GenericIon* G4GenericIon::Definition()
|
||||
false, "generic", 0,
|
||||
0.0
|
||||
);
|
||||
// clang-format on
|
||||
}
|
||||
|
||||
theInstance = static_cast<G4GenericIon*>(anInstance);
|
||||
@@ -84,13 +81,12 @@ G4GenericIon* G4GenericIon::Definition()
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
G4GenericIon* G4GenericIon::GenericIonDefinition()
|
||||
{
|
||||
G4GenericIon* G4GenericIon::GenericIonDefinition()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
G4GenericIon* G4GenericIon::GenericIon()
|
||||
{
|
||||
G4GenericIon* G4GenericIon::GenericIon()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
|
||||
@@ -23,25 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
// History:
|
||||
// History:
|
||||
// December 2016, K.L.Genser - first implementation
|
||||
// based on G4GenericIon
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
#include "G4GenericMuonicAtom.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### GenericMuonicAtom ###
|
||||
// ######################################################################
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4String.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
G4GenericMuonicAtom* G4GenericMuonicAtom::theInstance = nullptr;
|
||||
|
||||
G4GenericMuonicAtom* G4GenericMuonicAtom::Definition()
|
||||
@@ -50,23 +45,23 @@ G4GenericMuonicAtom* G4GenericMuonicAtom::Definition()
|
||||
const G4String name = "GenericMuonicAtom";
|
||||
// search in particle table]
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
auto anInstance = static_cast<G4MuonicAtom*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr)
|
||||
{
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
//!!!!
|
||||
//!!!! this particle should not be used for tracking
|
||||
//!!!! all properties except the name and type are meaningless
|
||||
//!!!!
|
||||
auto anInstance = static_cast<G4MuonicAtom*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr) {
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
//!!!!
|
||||
//!!!! this particle should not be used for tracking
|
||||
//!!!! all properties except the name and type are meaningless
|
||||
//!!!!
|
||||
// clang-format off
|
||||
anInstance = new G4MuonicAtom(
|
||||
name, 0.9382723*GeV, 0.0*MeV, eplus,
|
||||
1, +1, 0,
|
||||
@@ -76,13 +71,14 @@ G4GenericMuonicAtom* G4GenericMuonicAtom::Definition()
|
||||
false, "generic", nullptr,
|
||||
0.0
|
||||
);
|
||||
// clang-format on
|
||||
}
|
||||
|
||||
theInstance = static_cast<G4GenericMuonicAtom*>(anInstance);
|
||||
// static const int tmpVerbosityFlag = 2;
|
||||
// static const int tmpVerbosityFlag = 2;
|
||||
// if ( tmpVerbosityFlag > 1 ) {
|
||||
// G4cout << __func__
|
||||
// << " theInstance "
|
||||
// G4cout << __func__
|
||||
// << " theInstance "
|
||||
// << theInstance
|
||||
// << G4endl;
|
||||
// if (theInstance!=nullptr) {
|
||||
@@ -95,13 +91,12 @@ G4GenericMuonicAtom* G4GenericMuonicAtom::Definition()
|
||||
}
|
||||
|
||||
// do not inline to avoid undefined reference
|
||||
G4GenericMuonicAtom* G4GenericMuonicAtom::GenericMuonicAtomDefinition()
|
||||
{
|
||||
G4GenericMuonicAtom* G4GenericMuonicAtom::GenericMuonicAtomDefinition()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
G4GenericMuonicAtom* G4GenericMuonicAtom::GenericMuonicAtom()
|
||||
{
|
||||
G4GenericMuonicAtom* G4GenericMuonicAtom::GenericMuonicAtom()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
|
||||
@@ -23,9 +23,6 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
@@ -36,35 +33,35 @@
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
#include "G4He3.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### He3 ###
|
||||
// ######################################################################
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4String.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4Types.hh"
|
||||
|
||||
G4He3* G4He3::theInstance = nullptr;
|
||||
|
||||
G4He3* G4He3::Definition()
|
||||
{
|
||||
if (theInstance !=nullptr) return theInstance;
|
||||
if (theInstance != nullptr) return theInstance;
|
||||
const G4String name = "He3";
|
||||
// search in particle table]
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance ==nullptr)
|
||||
{
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr) {
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
|
||||
// clang-format off
|
||||
anInstance = new G4Ions(
|
||||
name, 2.808391*GeV, 0.0*MeV, +2.0*eplus,
|
||||
1, +1, 0,
|
||||
@@ -74,25 +71,23 @@ G4He3* G4He3::Definition()
|
||||
false, "static", -1000020030,
|
||||
0.0, 0
|
||||
);
|
||||
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus*hbar_Planck/2./(proton_mass_c2 /c_squared);
|
||||
anInstance->SetPDGMagneticMoment( -2.12762485 * mN);
|
||||
// clang-format on
|
||||
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus * hbar_Planck / 2. / (proton_mass_c2 / c_squared);
|
||||
anInstance->SetPDGMagneticMoment(-2.12762485 * mN);
|
||||
}
|
||||
|
||||
theInstance = static_cast<G4He3*>(anInstance);
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
G4He3* G4He3::He3Definition()
|
||||
G4He3* G4He3::He3Definition()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
G4He3* G4He3::He3()
|
||||
G4He3* G4He3::He3()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -28,27 +28,26 @@
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#include "G4HyperAlpha.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4DecayTable.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### HYPERALPHA ###
|
||||
// ######################################################################
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4String.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4Types.hh"
|
||||
#include "G4VDecayChannel.hh"
|
||||
|
||||
G4HyperAlpha* G4HyperAlpha::theInstance = nullptr;
|
||||
|
||||
|
||||
G4HyperAlpha* G4HyperAlpha::Definition() {
|
||||
if ( theInstance != nullptr ) return theInstance;
|
||||
G4HyperAlpha* G4HyperAlpha::Definition()
|
||||
{
|
||||
if (theInstance != nullptr) return theInstance;
|
||||
const G4String name = "hyperalpha";
|
||||
// search in particle table
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
auto anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) );
|
||||
if ( anInstance == nullptr ) {
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr) {
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
@@ -58,7 +57,9 @@ G4HyperAlpha* G4HyperAlpha::Definition() {
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
// excitation
|
||||
|
||||
// clang-format off
|
||||
anInstance = new G4Ions( name, 3921.87*MeV, 2.501e-12*MeV, +2.0*eplus,
|
||||
0, +1, 0,
|
||||
0, 0, 0,
|
||||
@@ -66,12 +67,14 @@ G4HyperAlpha* G4HyperAlpha::Definition() {
|
||||
false, 0.2631*ns, nullptr,
|
||||
false, "static", -1010020040,
|
||||
0.0, 0 );
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus*hbar_Planck/2.0/(proton_mass_c2 /c_squared);
|
||||
anInstance->SetPDGMagneticMoment( 2.97896248 * mN );
|
||||
// clang-format on
|
||||
|
||||
// create Decay Table
|
||||
auto table = new G4DecayTable;
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus * hbar_Planck / 2.0 / (proton_mass_c2 / c_squared);
|
||||
anInstance->SetPDGMagneticMoment(2.97896248 * mN);
|
||||
|
||||
// create Decay Table
|
||||
auto table = new G4DecayTable;
|
||||
// create decay channels
|
||||
/*
|
||||
// The decay "mode[1]" produces the secondary "Li4" whose corresponding anti-particle
|
||||
@@ -82,43 +85,44 @@ G4HyperAlpha* G4HyperAlpha::Definition() {
|
||||
G4VDecayChannel** mode = new G4VDecayChannel*[4];
|
||||
// lambda -> proton + pi- , with 50% probability of capturing the proton
|
||||
mode[0] = new G4PhaseSpaceDecayChannel( "hyperalpha", half_br_lambda_to_p_pim, 3,
|
||||
"He3", "proton", "pi-" );
|
||||
"He3", "proton", "pi-" );
|
||||
mode[1] = new G4PhaseSpaceDecayChannel( "hyperalpha", half_br_lambda_to_p_pim, 2,
|
||||
"Li4", "pi-" );
|
||||
"Li4", "pi-" );
|
||||
// lambda -> neutron + pi0 , with 50% probability of capturing the neutron
|
||||
mode[2] = new G4PhaseSpaceDecayChannel( "hyperalpha", half_br_lambda_to_n_piz, 3,
|
||||
"He3", "neutron", "pi0" );
|
||||
"He3", "neutron", "pi0" );
|
||||
mode[3] = new G4PhaseSpaceDecayChannel( "hyperalpha", half_br_lambda_to_n_piz, 2,
|
||||
"alpha", "pi0" );
|
||||
"alpha", "pi0" );
|
||||
for ( G4int index = 0; index < 4; ++index ) table->Insert( mode[index] );
|
||||
*/
|
||||
// Replacement decay for the time being
|
||||
const G4double br_lambda_to_p_pim = 0.639;
|
||||
const G4double half_br_lambda_to_n_piz = 0.5*0.358;
|
||||
auto mode = new G4VDecayChannel*[3];
|
||||
const G4double half_br_lambda_to_n_piz = 0.5 * 0.358;
|
||||
auto mode = new G4VDecayChannel*[3];
|
||||
// lambda -> proton + pi- , with 0% probability of capturing the proton
|
||||
mode[0] = new G4PhaseSpaceDecayChannel( "hyperalpha", br_lambda_to_p_pim, 3,
|
||||
"He3", "proton", "pi-" );
|
||||
mode[0] =
|
||||
new G4PhaseSpaceDecayChannel("hyperalpha", br_lambda_to_p_pim, 3, "He3", "proton", "pi-");
|
||||
// lambda -> neutron + pi0 , with 50% probability of capturing the neutron
|
||||
mode[1] = new G4PhaseSpaceDecayChannel( "hyperalpha", half_br_lambda_to_n_piz, 3,
|
||||
"He3", "neutron", "pi0" );
|
||||
mode[2] = new G4PhaseSpaceDecayChannel( "hyperalpha", half_br_lambda_to_n_piz, 2,
|
||||
"alpha", "pi0" );
|
||||
for ( G4int index = 0; index < 3; ++index ) table->Insert( mode[index] );
|
||||
mode[1] = new G4PhaseSpaceDecayChannel("hyperalpha", half_br_lambda_to_n_piz, 3, "He3",
|
||||
"neutron", "pi0");
|
||||
mode[2] =
|
||||
new G4PhaseSpaceDecayChannel("hyperalpha", half_br_lambda_to_n_piz, 2, "alpha", "pi0");
|
||||
for (G4int index = 0; index < 3; ++index)
|
||||
table->Insert(mode[index]);
|
||||
//---
|
||||
delete [] mode;
|
||||
anInstance->SetDecayTable( table );
|
||||
delete[] mode;
|
||||
anInstance->SetDecayTable(table);
|
||||
}
|
||||
theInstance = static_cast< G4HyperAlpha* >( anInstance );
|
||||
theInstance = static_cast<G4HyperAlpha*>(anInstance);
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
|
||||
G4HyperAlpha* G4HyperAlpha::HyperAlphaDefinition() {
|
||||
G4HyperAlpha* G4HyperAlpha::HyperAlphaDefinition()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
|
||||
G4HyperAlpha* G4HyperAlpha::HyperAlpha() {
|
||||
G4HyperAlpha* G4HyperAlpha::HyperAlpha()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
@@ -28,27 +28,26 @@
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#include "G4HyperH4.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4DecayTable.hh"
|
||||
|
||||
// ###############################################################
|
||||
// ### HYPERH4 ###
|
||||
// ###############################################################
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4String.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4Types.hh"
|
||||
#include "G4VDecayChannel.hh"
|
||||
|
||||
G4HyperH4* G4HyperH4::theInstance = nullptr;
|
||||
|
||||
|
||||
G4HyperH4* G4HyperH4::Definition() {
|
||||
if ( theInstance != nullptr ) return theInstance;
|
||||
G4HyperH4* G4HyperH4::Definition()
|
||||
{
|
||||
if (theInstance != nullptr) return theInstance;
|
||||
const G4String name = "hyperH4";
|
||||
// search in particle table
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
auto anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) );
|
||||
if ( anInstance == nullptr ) {
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr) {
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
@@ -58,7 +57,9 @@ G4HyperH4* G4HyperH4::Definition() {
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
// excitation
|
||||
|
||||
// clang-format off
|
||||
anInstance = new G4Ions( name, 3922.40*MeV, 2.501e-12*MeV, +1.0*eplus,
|
||||
4, +1, 0,
|
||||
0, 0, 0,
|
||||
@@ -66,59 +67,61 @@ G4HyperH4* G4HyperH4::Definition() {
|
||||
false, 0.2631*ns, nullptr,
|
||||
false, "static", -1010010040,
|
||||
0.0, 0 );
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus*hbar_Planck/2.0/(proton_mass_c2 /c_squared);
|
||||
anInstance->SetPDGMagneticMoment( 2.97896248 * mN );
|
||||
// clang-format on
|
||||
|
||||
// create Decay Table
|
||||
auto table = new G4DecayTable;
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus * hbar_Planck / 2.0 / (proton_mass_c2 / c_squared);
|
||||
anInstance->SetPDGMagneticMoment(2.97896248 * mN);
|
||||
|
||||
// create Decay Table
|
||||
auto table = new G4DecayTable;
|
||||
// create decay channels
|
||||
/*
|
||||
// The decay "mode[3]" produces the secondary "H4" whose corresponding
|
||||
// anti-particle is not existing in Geant4: we therefore skip it for the time
|
||||
// being, to keep the symmetry with the decays of anti_hyperH4.
|
||||
// being, to keep the symmetry with the decays of anti_hyperH4.
|
||||
const G4double half_br_lambda_to_p_pim = 0.5*0.639;
|
||||
const G4double half_br_lambda_to_n_piz = 0.5*0.358;
|
||||
G4VDecayChannel** mode = new G4VDecayChannel*[4];
|
||||
// lambda -> proton + pi- , with 50% probability of capturing the proton
|
||||
mode[0] = new G4PhaseSpaceDecayChannel( "hyperH4", half_br_lambda_to_p_pim, 3,
|
||||
"triton", "proton", "pi-" );
|
||||
"triton", "proton", "pi-" );
|
||||
mode[1] = new G4PhaseSpaceDecayChannel( "hyperH4", half_br_lambda_to_p_pim, 2,
|
||||
"alpha", "pi-" );
|
||||
"alpha", "pi-" );
|
||||
// lambda -> neutron + pi0 , with 50% probability of capturing the neutron
|
||||
mode[2] = new G4PhaseSpaceDecayChannel( "hyperH4", half_br_lambda_to_n_piz, 3,
|
||||
"triton", "neutron", "pi0" );
|
||||
"triton", "neutron", "pi0" );
|
||||
mode[3] = new G4PhaseSpaceDecayChannel( "hyperH4", half_br_lambda_to_n_piz, 2,
|
||||
"H4", "pi0" );
|
||||
"H4", "pi0" );
|
||||
for ( G4int index = 0; index < 4; ++index ) table->Insert( mode[index] );
|
||||
*/
|
||||
// Replacement decay for the time being
|
||||
const G4double half_br_lambda_to_p_pim = 0.5*0.639;
|
||||
// Replacement decay for the time being
|
||||
const G4double half_br_lambda_to_p_pim = 0.5 * 0.639;
|
||||
const G4double br_lambda_to_n_piz = 0.358;
|
||||
auto mode = new G4VDecayChannel*[3];
|
||||
auto mode = new G4VDecayChannel*[3];
|
||||
// lambda -> proton + pi- , with 50% probability of capturing the proton
|
||||
mode[0] = new G4PhaseSpaceDecayChannel( "hyperH4", half_br_lambda_to_p_pim, 3,
|
||||
"triton", "proton", "pi-" );
|
||||
mode[1] = new G4PhaseSpaceDecayChannel( "hyperH4", half_br_lambda_to_p_pim, 2,
|
||||
"alpha", "pi-" );
|
||||
mode[0] = new G4PhaseSpaceDecayChannel("hyperH4", half_br_lambda_to_p_pim, 3, "triton",
|
||||
"proton", "pi-");
|
||||
mode[1] = new G4PhaseSpaceDecayChannel("hyperH4", half_br_lambda_to_p_pim, 2, "alpha", "pi-");
|
||||
// lambda -> neutron + pi0 , with 0% probability of capturing the neutron
|
||||
mode[2] = new G4PhaseSpaceDecayChannel( "hyperH4", br_lambda_to_n_piz, 3,
|
||||
"triton", "neutron", "pi0" );
|
||||
for ( G4int index = 0; index < 3; ++index ) table->Insert( mode[index] );
|
||||
mode[2] =
|
||||
new G4PhaseSpaceDecayChannel("hyperH4", br_lambda_to_n_piz, 3, "triton", "neutron", "pi0");
|
||||
for (G4int index = 0; index < 3; ++index)
|
||||
table->Insert(mode[index]);
|
||||
//---
|
||||
delete [] mode;
|
||||
anInstance->SetDecayTable( table );
|
||||
delete[] mode;
|
||||
anInstance->SetDecayTable(table);
|
||||
}
|
||||
theInstance = static_cast< G4HyperH4* >( anInstance );
|
||||
theInstance = static_cast<G4HyperH4*>(anInstance);
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
|
||||
G4HyperH4* G4HyperH4::HyperH4Definition() {
|
||||
G4HyperH4* G4HyperH4::HyperH4Definition()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
|
||||
G4HyperH4* G4HyperH4::HyperH4() {
|
||||
G4HyperH4* G4HyperH4::HyperH4()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
@@ -28,27 +28,26 @@
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#include "G4HyperHe5.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4DecayTable.hh"
|
||||
|
||||
// ###################################################################
|
||||
// ### HYPERHE5 ###
|
||||
// ###################################################################
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4String.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4Types.hh"
|
||||
#include "G4VDecayChannel.hh"
|
||||
|
||||
G4HyperHe5* G4HyperHe5::theInstance = nullptr;
|
||||
|
||||
|
||||
G4HyperHe5* G4HyperHe5::Definition() {
|
||||
if ( theInstance != nullptr ) return theInstance;
|
||||
G4HyperHe5* G4HyperHe5::Definition()
|
||||
{
|
||||
if (theInstance != nullptr) return theInstance;
|
||||
const G4String name = "hyperHe5";
|
||||
// search in particle table
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
auto anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) );
|
||||
if ( anInstance == nullptr ) {
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr) {
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
@@ -58,7 +57,9 @@ G4HyperHe5* G4HyperHe5::Definition() {
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
// excitation
|
||||
|
||||
// clang-format off
|
||||
anInstance = new G4Ions( name, 4840.00*MeV, 2.501e-12*MeV, +2.0*eplus,
|
||||
3, +1, 0,
|
||||
0, 0, 0,
|
||||
@@ -66,58 +67,61 @@ G4HyperHe5* G4HyperHe5::Definition() {
|
||||
false, 0.2631*ns, nullptr,
|
||||
false, "static", -1010020050,
|
||||
0.0, 0 );
|
||||
// clang-format on
|
||||
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus*hbar_Planck/2.0/(proton_mass_c2 /c_squared);
|
||||
anInstance->SetPDGMagneticMoment( 2.97896248 * mN );
|
||||
G4double mN = eplus * hbar_Planck / 2.0 / (proton_mass_c2 / c_squared);
|
||||
anInstance->SetPDGMagneticMoment(2.97896248 * mN);
|
||||
|
||||
// create Decay Table
|
||||
auto table = new G4DecayTable;
|
||||
auto table = new G4DecayTable;
|
||||
// create decay channels
|
||||
/*
|
||||
// The decays "mode[1]" and "mode[3]" produce the secondaries "Li5" and "He5",
|
||||
// respectively, whose corresponding anti-particles are not existing in Geant4:
|
||||
// respectively, whose corresponding anti-particles are not existing in Geant4:
|
||||
// we therefore skip them for the time being, to keep the symmetry with the decays
|
||||
// of anti_hyperHe5.
|
||||
// of anti_hyperHe5.
|
||||
const G4double half_br_lambda_to_p_pim = 0.5*0.639;
|
||||
const G4double half_br_lambda_to_n_piz = 0.5*0.358;
|
||||
G4VDecayChannel** mode = new G4VDecayChannel*[4];
|
||||
// lambda -> proton + pi- , with 50% probability of capturing the proton
|
||||
mode[0] = new G4PhaseSpaceDecayChannel( "hyperHe5", half_br_lambda_to_p_pim, 3,
|
||||
"alpha", "proton", "pi-" );
|
||||
"alpha", "proton", "pi-" );
|
||||
mode[1] = new G4PhaseSpaceDecayChannel( "hyperHe5", half_br_lambda_to_p_pim, 2,
|
||||
"Li5", "pi-" );
|
||||
"Li5", "pi-" );
|
||||
// lambda -> neutron + pi0 , with 50% probability of capturing the neutron
|
||||
mode[2] = new G4PhaseSpaceDecayChannel( "hyperHe5", half_br_lambda_to_n_piz, 3,
|
||||
"alpha", "neutron", "pi0" );
|
||||
"alpha", "neutron", "pi0" );
|
||||
mode[3] = new G4PhaseSpaceDecayChannel( "hyperHe5", half_br_lambda_to_n_piz, 2,
|
||||
"He5", "pi0" );
|
||||
"He5", "pi0" );
|
||||
for ( G4int index = 0; index < 4; ++index ) table->Insert( mode[index] );
|
||||
*/
|
||||
// Replacement decay for the time being
|
||||
// Replacement decay for the time being
|
||||
const G4double br_lambda_to_p_pim = 0.639;
|
||||
const G4double br_lambda_to_n_piz = 0.358;
|
||||
auto mode = new G4VDecayChannel*[2];
|
||||
auto mode = new G4VDecayChannel*[2];
|
||||
// lambda -> proton + pi- , with 0% probability of capturing the proton
|
||||
mode[0] = new G4PhaseSpaceDecayChannel( "hyperHe5", br_lambda_to_p_pim, 3,
|
||||
"alpha", "proton", "pi-" );
|
||||
mode[0] =
|
||||
new G4PhaseSpaceDecayChannel("hyperHe5", br_lambda_to_p_pim, 3, "alpha", "proton", "pi-");
|
||||
// lambda -> neutron + pi0 , with 0% probability of capturing the neutron
|
||||
mode[1] = new G4PhaseSpaceDecayChannel( "hyperHe5", br_lambda_to_n_piz, 3,
|
||||
"alpha", "neutron", "pi0" );
|
||||
for ( G4int index = 0; index < 2; ++index ) table->Insert( mode[index] );
|
||||
mode[1] =
|
||||
new G4PhaseSpaceDecayChannel("hyperHe5", br_lambda_to_n_piz, 3, "alpha", "neutron", "pi0");
|
||||
for (G4int index = 0; index < 2; ++index)
|
||||
table->Insert(mode[index]);
|
||||
//---
|
||||
delete [] mode;
|
||||
anInstance->SetDecayTable( table );
|
||||
delete[] mode;
|
||||
anInstance->SetDecayTable(table);
|
||||
}
|
||||
theInstance = static_cast< G4HyperHe5* >( anInstance );
|
||||
theInstance = static_cast<G4HyperHe5*>(anInstance);
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
|
||||
G4HyperHe5* G4HyperHe5::HyperHe5Definition() {
|
||||
G4HyperHe5* G4HyperHe5::HyperHe5Definition()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
|
||||
G4HyperHe5* G4HyperHe5::HyperHe5() {
|
||||
G4HyperHe5* G4HyperHe5::HyperHe5()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
@@ -28,27 +28,26 @@
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#include "G4HyperTriton.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4DecayTable.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### HYPERTRITON ###
|
||||
// ######################################################################
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4String.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4Types.hh"
|
||||
#include "G4VDecayChannel.hh"
|
||||
|
||||
G4HyperTriton* G4HyperTriton::theInstance = nullptr;
|
||||
|
||||
|
||||
G4HyperTriton* G4HyperTriton::Definition() {
|
||||
if ( theInstance != nullptr ) return theInstance;
|
||||
G4HyperTriton* G4HyperTriton::Definition()
|
||||
{
|
||||
if (theInstance != nullptr) return theInstance;
|
||||
const G4String name = "hypertriton";
|
||||
// search in particle table
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
auto anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) );
|
||||
if ( anInstance == nullptr ) {
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr) {
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
@@ -58,7 +57,9 @@ G4HyperTriton* G4HyperTriton::Definition() {
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
// excitation
|
||||
|
||||
// clang-format off
|
||||
anInstance = new G4Ions( name, 2991.17*MeV, 2.501e-12*MeV, +1.0*eplus,
|
||||
1, +1, 0,
|
||||
0, 0, 0,
|
||||
@@ -66,40 +67,42 @@ G4HyperTriton* G4HyperTriton::Definition() {
|
||||
false, 0.2631*ns, nullptr,
|
||||
false, "static", -1010010030,
|
||||
0.0, 0 );
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus*hbar_Planck/2.0/(proton_mass_c2 /c_squared);
|
||||
anInstance->SetPDGMagneticMoment( 2.97896248 * mN );
|
||||
// clang-format on
|
||||
|
||||
// create Decay Table
|
||||
auto table = new G4DecayTable;
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus * hbar_Planck / 2.0 / (proton_mass_c2 / c_squared);
|
||||
anInstance->SetPDGMagneticMoment(2.97896248 * mN);
|
||||
|
||||
// create Decay Table
|
||||
auto table = new G4DecayTable;
|
||||
// create decay channels
|
||||
const G4double half_br_lambda_to_p_pim = 0.5*0.639;
|
||||
const G4double half_br_lambda_to_n_piz = 0.5*0.358;
|
||||
auto mode = new G4VDecayChannel*[4];
|
||||
const G4double half_br_lambda_to_p_pim = 0.5 * 0.639;
|
||||
const G4double half_br_lambda_to_n_piz = 0.5 * 0.358;
|
||||
auto mode = new G4VDecayChannel*[4];
|
||||
// lambda -> proton + pi- , with 50% probability of capturing the proton
|
||||
mode[0] = new G4PhaseSpaceDecayChannel( "hypertriton", half_br_lambda_to_p_pim, 3,
|
||||
"deuteron", "proton", "pi-" );
|
||||
mode[1] = new G4PhaseSpaceDecayChannel( "hypertriton", half_br_lambda_to_p_pim, 2,
|
||||
"He3", "pi-" );
|
||||
mode[0] = new G4PhaseSpaceDecayChannel("hypertriton", half_br_lambda_to_p_pim, 3, "deuteron",
|
||||
"proton", "pi-");
|
||||
mode[1] = new G4PhaseSpaceDecayChannel("hypertriton", half_br_lambda_to_p_pim, 2, "He3", "pi-");
|
||||
// lambda -> neutron + pi0 , with 50% probability of capturing the neutron
|
||||
mode[2] = new G4PhaseSpaceDecayChannel( "hypertriton", half_br_lambda_to_n_piz, 3,
|
||||
"deuteron", "neutron", "pi0" );
|
||||
mode[3] = new G4PhaseSpaceDecayChannel( "hypertriton", half_br_lambda_to_n_piz, 2,
|
||||
"triton", "pi0" );
|
||||
for ( G4int index = 0; index < 4; ++index ) table->Insert( mode[index] );
|
||||
delete [] mode;
|
||||
anInstance->SetDecayTable( table );
|
||||
mode[2] = new G4PhaseSpaceDecayChannel("hypertriton", half_br_lambda_to_n_piz, 3, "deuteron",
|
||||
"neutron", "pi0");
|
||||
mode[3] =
|
||||
new G4PhaseSpaceDecayChannel("hypertriton", half_br_lambda_to_n_piz, 2, "triton", "pi0");
|
||||
for (G4int index = 0; index < 4; ++index)
|
||||
table->Insert(mode[index]);
|
||||
delete[] mode;
|
||||
anInstance->SetDecayTable(table);
|
||||
}
|
||||
theInstance = static_cast< G4HyperTriton* >( anInstance );
|
||||
theInstance = static_cast<G4HyperTriton*>(anInstance);
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
|
||||
G4HyperTriton* G4HyperTriton::HyperTritonDefinition() {
|
||||
G4HyperTriton* G4HyperTriton::HyperTritonDefinition()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
|
||||
G4HyperTriton* G4HyperTriton::HyperTriton() {
|
||||
G4HyperTriton* G4HyperTriton::HyperTriton()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
@@ -23,28 +23,22 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
|
||||
#include "G4IonConstructor.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
// Nuclei
|
||||
#include "G4Alpha.hh"
|
||||
#include "G4Deuteron.hh"
|
||||
#include "G4Triton.hh"
|
||||
#include "G4He3.hh"
|
||||
#include "G4GenericIon.hh"
|
||||
#include "G4He3.hh"
|
||||
#include "G4Triton.hh"
|
||||
// AntiNuclei
|
||||
#include "G4AntiAlpha.hh"
|
||||
#include "G4AntiDeuteron.hh"
|
||||
#include "G4AntiTriton.hh"
|
||||
#include "G4AntiHe3.hh"
|
||||
#include "G4AntiTriton.hh"
|
||||
// Hyper-nuclei
|
||||
#include "G4DoubleHyperDoubleNeutron.hh"
|
||||
#include "G4DoubleHyperH4.hh"
|
||||
@@ -60,7 +54,6 @@
|
||||
#include "G4AntiHyperHe5.hh"
|
||||
#include "G4AntiHyperTriton.hh"
|
||||
|
||||
|
||||
void G4IonConstructor::ConstructParticle()
|
||||
{
|
||||
ConstructLightIons();
|
||||
|
||||
@@ -23,9 +23,6 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
@@ -36,35 +33,35 @@
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
#include "G4Triton.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### TRITON ###
|
||||
// ######################################################################
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4String.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4Types.hh"
|
||||
|
||||
G4Triton* G4Triton::theInstance = nullptr;
|
||||
|
||||
G4Triton* G4Triton::Definition()
|
||||
{
|
||||
if (theInstance !=nullptr) return theInstance;
|
||||
if (theInstance != nullptr) return theInstance;
|
||||
const G4String name = "triton";
|
||||
// search in particle table]
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance ==nullptr)
|
||||
{
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
auto anInstance = static_cast<G4Ions*>(pTable->FindParticle(name));
|
||||
if (anInstance == nullptr) {
|
||||
// create particle
|
||||
//
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
// shortlived subType anti_encoding
|
||||
// excitation
|
||||
|
||||
// clang-format off
|
||||
anInstance = new G4Ions(
|
||||
name, 2.808921*GeV, 0.0*MeV, +1.0*eplus,
|
||||
1, +1, 0,
|
||||
@@ -74,23 +71,23 @@ G4Triton* G4Triton::Definition()
|
||||
false, "static", -1000010030,
|
||||
0.0, 0
|
||||
);
|
||||
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus*hbar_Planck/2./(proton_mass_c2 /c_squared);
|
||||
anInstance->SetPDGMagneticMoment( 2.97896248 * mN);
|
||||
// clang-format on
|
||||
|
||||
}
|
||||
// Magnetic Moment
|
||||
G4double mN = eplus * hbar_Planck / 2. / (proton_mass_c2 / c_squared);
|
||||
anInstance->SetPDGMagneticMoment(2.97896248 * mN);
|
||||
}
|
||||
|
||||
theInstance = static_cast<G4Triton*>(anInstance);
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
G4Triton* G4Triton::TritonDefinition()
|
||||
G4Triton* G4Triton::TritonDefinition()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
G4Triton* G4Triton::Triton()
|
||||
G4Triton* G4Triton::Triton()
|
||||
{
|
||||
return Definition();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user