Import Geant4 11.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2023-12-08 10:43:34 +01:00
parent dd1f179cda
commit 860a2b92bf
3962 changed files with 139318 additions and 164259 deletions
+19 -24
View File
@@ -23,9 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
@@ -36,33 +33,32 @@
// ----------------------------------------------------------------------
#include "G4AntiNeutrinoE.hh"
#include "G4SystemOfUnits.hh"
#include "G4ParticleTable.hh"
// ######################################################################
// ### ANTI NEUTRINO E ###
// ######################################################################
#include "G4ParticleTable.hh"
#include "G4String.hh"
#include "G4SystemOfUnits.hh"
G4AntiNeutrinoE* G4AntiNeutrinoE::theInstance = nullptr;
G4AntiNeutrinoE* G4AntiNeutrinoE::Definition()
{
if (theInstance !=nullptr) return theInstance;
if (theInstance != nullptr) return theInstance;
const G4String name = "anti_nu_e";
// search in particle table]
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
G4ParticleDefinition* anInstance = 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
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
// clang-format off
anInstance = new G4ParticleDefinition(
name, 0.0*MeV, 0.0*MeV, 0.0,
1, 0, 0,
@@ -71,19 +67,18 @@ G4AntiNeutrinoE* G4AntiNeutrinoE::Definition()
true, -1.0, nullptr,
false, "e"
);
// clang-format on
}
theInstance = static_cast<G4AntiNeutrinoE*>(anInstance);
return theInstance;
}
G4AntiNeutrinoE* G4AntiNeutrinoE::AntiNeutrinoEDefinition()
G4AntiNeutrinoE* G4AntiNeutrinoE::AntiNeutrinoEDefinition()
{
return Definition();
}
G4AntiNeutrinoE* G4AntiNeutrinoE::AntiNeutrinoE()
G4AntiNeutrinoE* G4AntiNeutrinoE::AntiNeutrinoE()
{
return Definition();
}
@@ -23,46 +23,43 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
// History: first implementation, based on object model of
// 4th April 1996, G.Cosmo
// 4th April 1996, G.Cosmo
// by H.Kurashige,7 July 1996
// **********************************************************************
// New impelemenataion as an utility class M.Asai, 26 July 2004
// ----------------------------------------------------------------------
#include "G4AntiNeutrinoMu.hh"
#include "G4SystemOfUnits.hh"
#include "G4ParticleTable.hh"
// ######################################################################
// ### ANTI MU NEUTRINO ###
// ######################################################################
#include "G4ParticleTable.hh"
#include "G4String.hh"
#include "G4SystemOfUnits.hh"
G4AntiNeutrinoMu* G4AntiNeutrinoMu::theInstance = nullptr;
G4AntiNeutrinoMu* G4AntiNeutrinoMu::Definition()
{
if (theInstance !=nullptr) return theInstance;
if (theInstance != nullptr) return theInstance;
const G4String name = "anti_nu_mu";
// search in particle table]
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
G4ParticleDefinition* anInstance = 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
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
// clang-format off
anInstance = new G4ParticleDefinition(
name, 0.0*MeV, 0.0*MeV, 0.0,
1, 0, 0,
@@ -71,18 +68,18 @@ G4AntiNeutrinoMu* G4AntiNeutrinoMu::Definition()
true, -1.0, nullptr,
false, "mu"
);
// clang-format on
}
theInstance = static_cast<G4AntiNeutrinoMu*>(anInstance);
return theInstance;
}
G4AntiNeutrinoMu* G4AntiNeutrinoMu::AntiNeutrinoMuDefinition()
G4AntiNeutrinoMu* G4AntiNeutrinoMu::AntiNeutrinoMuDefinition()
{
return Definition();
}
G4AntiNeutrinoMu* G4AntiNeutrinoMu::AntiNeutrinoMu()
G4AntiNeutrinoMu* G4AntiNeutrinoMu::AntiNeutrinoMu()
{
return Definition();
}
@@ -23,47 +23,43 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
// History: first implementation, based on object model of
// 4th April 1996, G.Cosmo
// 4th April 1996, G.Cosmo
// by H.Kurashige,7 July 1996
// **********************************************************************
// New impelemenataion as an utility class M.Asai, 26 July 2004
// ----------------------------------------------------------------------
#include "G4AntiNeutrinoTau.hh"
#include "G4SystemOfUnits.hh"
#include "G4ParticleTable.hh"
#include "G4String.hh"
#include "G4SystemOfUnits.hh"
// ######################################################################
// ### ANTI TAU NEUTRINO ###
// ######################################################################
G4AntiNeutrinoTau* G4AntiNeutrinoTau::theInstance = nullptr;
G4AntiNeutrinoTau* G4AntiNeutrinoTau::Definition()
{
if (theInstance !=nullptr) return theInstance;
if (theInstance != nullptr) return theInstance;
const G4String name = "anti_nu_tau";
// search in particle table]
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
G4ParticleDefinition* anInstance = 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
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
// clang-format off
anInstance = new G4ParticleDefinition(
name, 0.0*MeV, 0.0*MeV, 0.0,
1, 0, 0,
@@ -72,18 +68,18 @@ G4AntiNeutrinoTau* G4AntiNeutrinoTau::Definition()
true, -1.0, nullptr,
false, "tau"
);
// clang-format on
}
theInstance = static_cast<G4AntiNeutrinoTau*>(anInstance);
return theInstance;
}
G4AntiNeutrinoTau* G4AntiNeutrinoTau::AntiNeutrinoTauDefinition()
G4AntiNeutrinoTau* G4AntiNeutrinoTau::AntiNeutrinoTauDefinition()
{
return Definition();
}
G4AntiNeutrinoTau* G4AntiNeutrinoTau::AntiNeutrinoTau()
G4AntiNeutrinoTau* G4AntiNeutrinoTau::AntiNeutrinoTau()
{
return Definition();
}
+27 -31
View File
@@ -23,9 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
@@ -36,37 +33,37 @@
// ----------------------------------------------------------------------
#include "G4Electron.hh"
#include "G4PhysicalConstants.hh"
#include "G4SystemOfUnits.hh"
#include "G4ParticleTable.hh"
// ######################################################################
// ### ELECTRON ###
// ######################################################################
#include "G4ParticleTable.hh"
#include "G4PhysicalConstants.hh"
#include "G4String.hh"
#include "G4SystemOfUnits.hh"
#include "G4Types.hh"
G4Electron* G4Electron::theInstance = nullptr;
G4Electron* G4Electron::Definition()
{
if (theInstance !=nullptr) return theInstance;
if (theInstance != nullptr) return theInstance;
const G4String name = "e-";
// search in particle table]
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
G4ParticleDefinition* anInstance = 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
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
// use constants in CLHEP
// static const double electron_mass_c2 = 0.51099906 * MeV;
// use constants in CLHEP
// static const double electron_mass_c2 = 0.51099906 * MeV;
// clang-format off
anInstance = new G4ParticleDefinition(
name, electron_mass_c2, 0.0*MeV, -1.*eplus,
1, 0, 0,
@@ -75,24 +72,23 @@ G4Electron* G4Electron::Definition()
true, -1.0, nullptr,
false, "e"
);
// Bohr Magnetron
G4double muB = -0.5*eplus*hbar_Planck/(electron_mass_c2/c_squared) ;
anInstance->SetPDGMagneticMoment( muB * 1.00115965218076 );
// clang-format on
// Bohr Magnetron
G4double muB = -0.5 * eplus * hbar_Planck / (electron_mass_c2 / c_squared);
anInstance->SetPDGMagneticMoment(muB * 1.00115965218076);
}
theInstance = static_cast<G4Electron*>(anInstance);
return theInstance;
}
G4Electron* G4Electron::ElectronDefinition()
G4Electron* G4Electron::ElectronDefinition()
{
return Definition();
}
G4Electron* G4Electron::Electron()
G4Electron* G4Electron::Electron()
{
return Definition();
}
@@ -23,31 +23,24 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
//
//
// --------------------------------------------------------------
// GEANT 4 class implementatLepton file
// GEANT 4 class implementatLepton file
//
#include "G4LeptonConstructor.hh"
#include "G4ParticleDefinition.hh"
#include "G4ParticleTable.hh"
// Leptons
#include "G4MuonPlus.hh"
#include "G4AntiNeutrinoE.hh"
#include "G4AntiNeutrinoMu.hh"
#include "G4AntiNeutrinoTau.hh"
#include "G4Electron.hh"
#include "G4MuonMinus.hh"
#include "G4MuonPlus.hh"
#include "G4NeutrinoE.hh"
#include "G4NeutrinoMu.hh"
#include "G4NeutrinoTau.hh"
#include "G4Positron.hh"
#include "G4TauMinus.hh"
#include "G4TauPlus.hh"
#include "G4Electron.hh"
#include "G4Positron.hh"
#include "G4NeutrinoTau.hh"
#include "G4AntiNeutrinoTau.hh"
#include "G4NeutrinoMu.hh"
#include "G4AntiNeutrinoMu.hh"
#include "G4NeutrinoE.hh"
#include "G4AntiNeutrinoE.hh"
void G4LeptonConstructor::ConstructParticle()
{
+33 -34
View File
@@ -23,9 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
@@ -36,36 +33,37 @@
// ----------------------------------------------------------------------
#include "G4MuonMinus.hh"
#include "G4PhysicalConstants.hh"
#include "G4SystemOfUnits.hh"
#include "G4ParticleTable.hh"
#include "G4MuonDecayChannel.hh"
#include "G4DecayTable.hh"
#include "G4MuonDecayChannel.hh"
#include "G4ParticleTable.hh"
#include "G4PhysicalConstants.hh"
#include "G4String.hh"
#include "G4SystemOfUnits.hh"
#include "G4Types.hh"
#include "G4VDecayChannel.hh"
// ######################################################################
// ### MUONMINUS ###
// ######################################################################
G4MuonMinus* G4MuonMinus::theInstance = nullptr;
G4MuonMinus* G4MuonMinus::Definition()
{
if (theInstance !=nullptr) return theInstance;
if (theInstance != nullptr) return theInstance;
const G4String name = "mu-";
// search in particle table]
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
G4ParticleDefinition* anInstance = 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
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
// clang-format off
anInstance = new G4ParticleDefinition(
name, 0.1056583715*GeV, 2.99598e-16*MeV, -1.*eplus,
1, 0, 0,
@@ -74,30 +72,31 @@ G4MuonMinus* G4MuonMinus::Definition()
false, 2196.98*ns, nullptr,
false, "mu"
);
// clang-format on
// Bohr Magnetron
G4double muB = -0.5*eplus*hbar_Planck/(anInstance->GetPDGMass()/c_squared) ;
anInstance->SetPDGMagneticMoment( muB * 1.0011659209);
G4double muB = -0.5 * eplus * hbar_Planck / (anInstance->GetPDGMass() / c_squared);
//create Decay Table
auto table = new G4DecayTable();
anInstance->SetPDGMagneticMoment(muB * 1.0011659209);
// create a decay channel
G4VDecayChannel* mode = new G4MuonDecayChannel("mu-",1.00);
table->Insert(mode);
anInstance->SetDecayTable(table);
// create Decay Table
auto table = new G4DecayTable();
// create a decay channel
G4VDecayChannel* mode = new G4MuonDecayChannel("mu-", 1.00);
table->Insert(mode);
anInstance->SetDecayTable(table);
}
theInstance = static_cast<G4MuonMinus*>(anInstance);
return theInstance;
}
G4MuonMinus* G4MuonMinus::MuonMinusDefinition()
G4MuonMinus* G4MuonMinus::MuonMinusDefinition()
{
return Definition();
}
G4MuonMinus* G4MuonMinus::MuonMinus()
G4MuonMinus* G4MuonMinus::MuonMinus()
{
return Definition();
}
+34 -35
View File
@@ -23,9 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
@@ -36,36 +33,37 @@
// ----------------------------------------------------------------------
#include "G4MuonPlus.hh"
#include "G4PhysicalConstants.hh"
#include "G4SystemOfUnits.hh"
#include "G4ParticleTable.hh"
#include "G4MuonDecayChannel.hh"
#include "G4DecayTable.hh"
#include "G4MuonDecayChannel.hh"
#include "G4ParticleTable.hh"
#include "G4PhysicalConstants.hh"
#include "G4String.hh"
#include "G4SystemOfUnits.hh"
#include "G4Types.hh"
#include "G4VDecayChannel.hh"
// ######################################################################
// ### MUONPLUS ###
// ######################################################################
G4MuonPlus* G4MuonPlus::theInstance = nullptr;
G4MuonPlus* G4MuonPlus::Definition()
{
if (theInstance !=nullptr) return theInstance;
if (theInstance != nullptr) return theInstance;
const G4String name = "mu+";
// search in particle table]
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
G4ParticleDefinition* anInstance = 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
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
// clang-format off
anInstance = new G4ParticleDefinition(
name, 0.1056583715*GeV, 2.99598e-16*MeV, +1.*eplus,
1, 0, 0,
@@ -74,29 +72,30 @@ G4MuonPlus* G4MuonPlus::Definition()
false, 2196.98*ns, nullptr,
false, "mu"
);
// Bohr Magnetron
G4double muB = 0.5*eplus*hbar_Planck/(anInstance->GetPDGMass()/c_squared) ;
anInstance->SetPDGMagneticMoment( muB * 1.0011659209);
// clang-format on
//create Decay Table
auto table = new G4DecayTable();
// create a decay channel
G4VDecayChannel* mode = new G4MuonDecayChannel("mu+",1.00);
table->Insert(mode);
anInstance->SetDecayTable(table);
// Bohr Magnetron
G4double muB = 0.5 * eplus * hbar_Planck / (anInstance->GetPDGMass() / c_squared);
anInstance->SetPDGMagneticMoment(muB * 1.0011659209);
// create Decay Table
auto table = new G4DecayTable();
// create a decay channel
G4VDecayChannel* mode = new G4MuonDecayChannel("mu+", 1.00);
table->Insert(mode);
anInstance->SetDecayTable(table);
}
theInstance = static_cast<G4MuonPlus*>(anInstance);
return theInstance;
}
G4MuonPlus* G4MuonPlus::MuonPlusDefinition()
G4MuonPlus* G4MuonPlus::MuonPlusDefinition()
{
return Definition();
}
G4MuonPlus* G4MuonPlus::MuonPlus()
G4MuonPlus* G4MuonPlus::MuonPlus()
{
return Definition();
}
+21 -24
View File
@@ -23,46 +23,43 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
// History: first implementation, based on object model of
// 4th April 1996, G.Cosmo
// 4th April 1996, G.Cosmo
// by H.Kurashige,7 July 1996
// **********************************************************************
// New impelemenataion as an utility class M.Asai, 26 July 2004
// ----------------------------------------------------------------------
#include "G4NeutrinoE.hh"
#include "G4SystemOfUnits.hh"
#include "G4ParticleTable.hh"
// ######################################################################
// ### NEUTRINO E ###
// ######################################################################
#include "G4ParticleTable.hh"
#include "G4String.hh"
#include "G4SystemOfUnits.hh"
G4NeutrinoE* G4NeutrinoE::theInstance = nullptr;
G4NeutrinoE* G4NeutrinoE::Definition()
{
if (theInstance !=nullptr) return theInstance;
if (theInstance != nullptr) return theInstance;
const G4String name = "nu_e";
// search in particle table]
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
G4ParticleDefinition* anInstance = 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
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
// clang-format off
anInstance = new G4ParticleDefinition(
name, 0.0*MeV, 0.0*MeV, 0.0,
1, 0, 0,
@@ -71,18 +68,18 @@ G4NeutrinoE* G4NeutrinoE::Definition()
true, -1.0, nullptr,
false, "e"
);
// clang-format on
}
theInstance = static_cast<G4NeutrinoE*>(anInstance);
return theInstance;
}
G4NeutrinoE* G4NeutrinoE::NeutrinoEDefinition()
G4NeutrinoE* G4NeutrinoE::NeutrinoEDefinition()
{
return Definition();
}
G4NeutrinoE* G4NeutrinoE::NeutrinoE()
G4NeutrinoE* G4NeutrinoE::NeutrinoE()
{
return Definition();
}
+21 -25
View File
@@ -23,46 +23,43 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
// History: first implementation, based on object model of
// 4th April 1996, G.Cosmo
// 4th April 1996, G.Cosmo
// by H.Kurashige,7 July 1996
// **********************************************************************
// New impelemenataion as an utility class M.Asai, 26 July 2004
// ----------------------------------------------------------------------
#include "G4NeutrinoMu.hh"
#include "G4SystemOfUnits.hh"
#include "G4ParticleTable.hh"
// ######################################################################
// ### MU NEUTRINO ###
// ######################################################################
#include "G4ParticleTable.hh"
#include "G4String.hh"
#include "G4SystemOfUnits.hh"
G4NeutrinoMu* G4NeutrinoMu::theInstance = nullptr;
G4NeutrinoMu* G4NeutrinoMu::Definition()
{
if (theInstance !=nullptr) return theInstance;
if (theInstance != nullptr) return theInstance;
const G4String name = "nu_mu";
// search in particle table]
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
G4ParticleDefinition* anInstance = 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
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
// clang-format off
anInstance = new G4ParticleDefinition(
name, 0.0*MeV, 0.0*MeV, 0.0,
1, 0, 0,
@@ -71,19 +68,18 @@ G4NeutrinoMu* G4NeutrinoMu::Definition()
true, -1.0, nullptr,
false, "mu"
);
// clang-format on
}
theInstance = static_cast<G4NeutrinoMu*>(anInstance);
return theInstance;
}
G4NeutrinoMu* G4NeutrinoMu::NeutrinoMuDefinition()
G4NeutrinoMu* G4NeutrinoMu::NeutrinoMuDefinition()
{
return Definition();
}
G4NeutrinoMu* G4NeutrinoMu::NeutrinoMu()
G4NeutrinoMu* G4NeutrinoMu::NeutrinoMu()
{
return Definition();
}
+21 -24
View File
@@ -23,46 +23,43 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
// History: first implementation, based on object model of
// 4th April 1996, G.Cosmo
// 4th April 1996, G.Cosmo
// by H.Kurashige,7 July 1996
// **********************************************************************
// New impelemenataion as an utility class M.Asai, 26 July 2004
// ----------------------------------------------------------------------
#include "G4NeutrinoTau.hh"
#include "G4SystemOfUnits.hh"
#include "G4ParticleTable.hh"
// ######################################################################
// ### TAU NEUTRINO ###
// ######################################################################
#include "G4ParticleTable.hh"
#include "G4String.hh"
#include "G4SystemOfUnits.hh"
G4NeutrinoTau* G4NeutrinoTau::theInstance = nullptr;
G4NeutrinoTau* G4NeutrinoTau::Definition()
{
if (theInstance !=nullptr) return theInstance;
if (theInstance != nullptr) return theInstance;
const G4String name = "nu_tau";
// search in particle table]
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
G4ParticleDefinition* anInstance = 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
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
// clang-format off
anInstance = new G4ParticleDefinition(
name, 0.0*MeV, 0.0*MeV, 0.0,
1, 0, 0,
@@ -71,18 +68,18 @@ G4NeutrinoTau* G4NeutrinoTau::Definition()
true, -1.0, nullptr,
false, "tau"
);
// clang-format on
}
theInstance = static_cast<G4NeutrinoTau*>(anInstance);
return theInstance;
}
G4NeutrinoTau* G4NeutrinoTau::NeutrinoTauDefinition()
G4NeutrinoTau* G4NeutrinoTau::NeutrinoTauDefinition()
{
return Definition();
}
G4NeutrinoTau* G4NeutrinoTau::NeutrinoTau()
G4NeutrinoTau* G4NeutrinoTau::NeutrinoTau()
{
return Definition();
}
+27 -32
View File
@@ -23,9 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
@@ -36,36 +33,36 @@
// ----------------------------------------------------------------------
#include "G4Positron.hh"
#include "G4PhysicalConstants.hh"
#include "G4SystemOfUnits.hh"
#include "G4ParticleTable.hh"
// ######################################################################
// ### POSITRON ###
// ######################################################################
#include "G4PhysicalConstants.hh"
#include "G4String.hh"
#include "G4SystemOfUnits.hh"
#include "G4Types.hh"
G4Positron* G4Positron::theInstance = nullptr;
G4Positron* G4Positron::Definition()
{
if (theInstance !=nullptr) return theInstance;
if (theInstance != nullptr) return theInstance;
const G4String name = "e+";
// search in particle table]
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
G4ParticleDefinition* anInstance = 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
// use constants in CLHEP
// static const double electron_mass_c2 = 0.51099906 * MeV;
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
// use constants in CLHEP
// static const double electron_mass_c2 = 0.51099906 * MeV;
// clang-format off
anInstance = new G4ParticleDefinition(
name, electron_mass_c2, 0.0*MeV, +1.*eplus,
1, 0, 0,
@@ -74,25 +71,23 @@ G4Positron* G4Positron::Definition()
true, -1.0, nullptr,
false, "e"
);
// Bohr Magnetron
G4double muB = 0.5*eplus*hbar_Planck/(electron_mass_c2/c_squared) ;
anInstance->SetPDGMagneticMoment( muB * 1.00115965218076 );
// clang-format on
// Bohr Magnetron
G4double muB = 0.5 * eplus * hbar_Planck / (electron_mass_c2 / c_squared);
anInstance->SetPDGMagneticMoment(muB * 1.00115965218076);
}
theInstance = static_cast<G4Positron*>(anInstance);
return theInstance;
}
G4Positron* G4Positron::PositronDefinition()
G4Positron* G4Positron::PositronDefinition()
{
return Definition();
}
G4Positron* G4Positron::Positron()
G4Positron* G4Positron::Positron()
{
return Definition();
}
+66 -69
View File
@@ -23,51 +23,49 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
// History: first implementation, based on object model of
// 4th April 1996, G.Cosmo
// 7 July 1996 H.Kurashige
// 7 July 1996 H.Kurashige
// **********************************************************************
// New impelemenataion as an utility class M.Asai, 26 July 2004
// ----------------------------------------------------------------------
#include "G4TauMinus.hh"
#include "G4PhysicalConstants.hh"
#include "G4SystemOfUnits.hh"
#include "G4ParticleTable.hh"
#include "G4PhaseSpaceDecayChannel.hh"
#include "G4TauLeptonicDecayChannel.hh"
#include "G4DecayTable.hh"
#include "G4ParticleTable.hh"
#include "G4PhaseSpaceDecayChannel.hh"
#include "G4PhysicalConstants.hh"
#include "G4String.hh"
#include "G4SystemOfUnits.hh"
#include "G4TauLeptonicDecayChannel.hh"
#include "G4Types.hh"
#include "G4VDecayChannel.hh"
// ######################################################################
// ### TAUMINUS ###
// ######################################################################
G4TauMinus* G4TauMinus::theInstance = nullptr;
G4TauMinus* G4TauMinus::Definition()
{
if (theInstance !=nullptr) return theInstance;
if (theInstance != nullptr) return theInstance;
const G4String name = "tau-";
// search in particle table]
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
G4ParticleDefinition* anInstance = 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
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
// clang-format off
anInstance = new G4ParticleDefinition(
name, 1.77686*GeV, 2.267e-9*MeV, -1.*eplus,
1, 0, 0,
@@ -76,64 +74,63 @@ G4TauMinus* G4TauMinus::Definition()
false, 290.3e-6*ns, nullptr,
false, "tau"
);
// clang-format on
// Bohr Magnetron
G4double muB = -0.5*eplus*hbar_Planck/(anInstance->GetPDGMass()/c_squared) ;
anInstance->SetPDGMagneticMoment( muB * 1.00118);
// Bohr Magnetron
G4double muB = -0.5 * eplus * hbar_Planck / (anInstance->GetPDGMass() / c_squared);
//create Decay Table
auto table = new G4DecayTable();
anInstance->SetPDGMagneticMoment(muB * 1.00118);
// create decay channels
G4VDecayChannel* mode;
// tau- -> mu- + anti_nu_mu + nu_tau
mode = new G4TauLeptonicDecayChannel("tau-",0.1736,"mu-");
table->Insert(mode);
// tau- -> e- + anti_nu_e + nu_tau
mode = new G4TauLeptonicDecayChannel("tau-",0.1784,"e-");
table->Insert(mode);
// tau- -> pi- + nu_tau
mode = new G4PhaseSpaceDecayChannel("tau-",0.1106,2,"pi-","nu_tau");
table->Insert(mode);
// tau- -> pi0 + pi- + nu_tau
mode = new G4PhaseSpaceDecayChannel("tau-",0.2541,3,"pi0","pi-","nu_tau");
table->Insert(mode);
// tau- -> pi0 + pi0 + pi- + nu_tau
mode = new G4PhaseSpaceDecayChannel();
mode->SetParent("tau-");
mode->SetBR(0.0917);
mode->SetNumberOfDaughters(4);
mode->SetDaughter(0,"pi0");
mode->SetDaughter(1,"pi0");
mode->SetDaughter(2,"pi-");
mode->SetDaughter(3,"nu_tau");
table->Insert(mode);
// tau- -> pi- + pi- + pi+ + nu_tau
mode = new G4PhaseSpaceDecayChannel();
mode->SetParent("tau-");
mode->SetBR(0.0946);
mode->SetNumberOfDaughters(4);
mode->SetDaughter(0,"pi-");
mode->SetDaughter(1,"pi-");
mode->SetDaughter(2,"pi+");
mode->SetDaughter(3,"nu_tau");
table->Insert(mode);
// create Decay Table
auto table = new G4DecayTable();
anInstance->SetDecayTable(table);
// create decay channels
G4VDecayChannel* mode;
// tau- -> mu- + anti_nu_mu + nu_tau
mode = new G4TauLeptonicDecayChannel("tau-", 0.1736, "mu-");
table->Insert(mode);
// tau- -> e- + anti_nu_e + nu_tau
mode = new G4TauLeptonicDecayChannel("tau-", 0.1784, "e-");
table->Insert(mode);
// tau- -> pi- + nu_tau
mode = new G4PhaseSpaceDecayChannel("tau-", 0.1106, 2, "pi-", "nu_tau");
table->Insert(mode);
// tau- -> pi0 + pi- + nu_tau
mode = new G4PhaseSpaceDecayChannel("tau-", 0.2541, 3, "pi0", "pi-", "nu_tau");
table->Insert(mode);
// tau- -> pi0 + pi0 + pi- + nu_tau
mode = new G4PhaseSpaceDecayChannel();
mode->SetParent("tau-");
mode->SetBR(0.0917);
mode->SetNumberOfDaughters(4);
mode->SetDaughter(0, "pi0");
mode->SetDaughter(1, "pi0");
mode->SetDaughter(2, "pi-");
mode->SetDaughter(3, "nu_tau");
table->Insert(mode);
// tau- -> pi- + pi- + pi+ + nu_tau
mode = new G4PhaseSpaceDecayChannel();
mode->SetParent("tau-");
mode->SetBR(0.0946);
mode->SetNumberOfDaughters(4);
mode->SetDaughter(0, "pi-");
mode->SetDaughter(1, "pi-");
mode->SetDaughter(2, "pi+");
mode->SetDaughter(3, "nu_tau");
table->Insert(mode);
anInstance->SetDecayTable(table);
}
theInstance = static_cast<G4TauMinus*>(anInstance);
return theInstance;
}
G4TauMinus* G4TauMinus::TauMinusDefinition()
G4TauMinus* G4TauMinus::TauMinusDefinition()
{
return Definition();
}
G4TauMinus* G4TauMinus::TauMinus()
G4TauMinus* G4TauMinus::TauMinus()
{
return Definition();
}
+67 -68
View File
@@ -23,51 +23,49 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
// History: first implementation, based on object model of
// 4th April 1996, G.Cosmo
// 7 July 1996 H.Kurashige
// 7 July 1996 H.Kurashige
// **********************************************************************
// New impelemenataion as an utility class M.Asai, 26 July 2004
// ----------------------------------------------------------------------
#include "G4TauPlus.hh"
#include "G4PhysicalConstants.hh"
#include "G4SystemOfUnits.hh"
#include "G4ParticleTable.hh"
#include "G4PhaseSpaceDecayChannel.hh"
#include "G4TauLeptonicDecayChannel.hh"
#include "G4DecayTable.hh"
#include "G4ParticleTable.hh"
#include "G4PhaseSpaceDecayChannel.hh"
#include "G4PhysicalConstants.hh"
#include "G4String.hh"
#include "G4SystemOfUnits.hh"
#include "G4TauLeptonicDecayChannel.hh"
#include "G4Types.hh"
#include "G4VDecayChannel.hh"
// ######################################################################
// ### TAPLUS ###
// ######################################################################
G4TauPlus* G4TauPlus::theInstance = nullptr;
G4TauPlus* G4TauPlus::Definition()
{
if (theInstance !=nullptr) return theInstance;
if (theInstance != nullptr) return theInstance;
const G4String name = "tau+";
// search in particle table]
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
G4ParticleDefinition* anInstance = 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
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
// clang-format off
anInstance = new G4ParticleDefinition(
name, 1.77686*GeV, 2.267e-9*MeV, 1.*eplus,
1, 0, 0,
@@ -76,62 +74,63 @@ G4TauPlus* G4TauPlus::Definition()
false, 290.3e-6*ns, nullptr,
false, "tau"
);
// Bohr Magnetron
G4double muB = 0.5*eplus*hbar_Planck/(anInstance->GetPDGMass()/c_squared) ;
anInstance->SetPDGMagneticMoment( muB * 1.00118);
// clang-format on
//create Decay Table
auto table = new G4DecayTable();
// Bohr Magnetron
G4double muB = 0.5 * eplus * hbar_Planck / (anInstance->GetPDGMass() / c_squared);
// create decay channels
G4VDecayChannel* mode;
// tau+ -> mu+ + nu_mu + anti_nu_tau
mode = new G4TauLeptonicDecayChannel("tau+",0.1736,"mu+");
table->Insert(mode);
// tau+ -> e+ + nu_e + anti_nu_tau
mode = new G4TauLeptonicDecayChannel("tau+",0.1784,"e+");
table->Insert(mode);
// tau+ -> pi+ + anti_nu_tau
mode = new G4PhaseSpaceDecayChannel("tau+",0.1106,2,"pi+","anti_nu_tau");
table->Insert(mode);
// tau+ -> pi0 + pi0 + pi+ + anti_nu_tau
mode = new G4PhaseSpaceDecayChannel("tau+",0.2541,3,"pi0","pi+","anti_nu_tau");
table->Insert(mode);
// tau+ -> pi0 + pi0 + pi+ + anti_nu_tau
mode = new G4PhaseSpaceDecayChannel();
mode->SetParent("tau+");
mode->SetBR(0.0917);
mode->SetNumberOfDaughters(4);
mode->SetDaughter(0,"pi0");
mode->SetDaughter(1,"pi0");
mode->SetDaughter(2,"pi+");
mode->SetDaughter(3,"anti_nu_tau");
table->Insert(mode);
// tau+ -> pi+ + pi+ + pi- + anti_nu_tau
mode = new G4PhaseSpaceDecayChannel();
mode->SetParent("tau+");
mode->SetBR(0.0946);
mode->SetNumberOfDaughters(4);
mode->SetDaughter(0,"pi+");
mode->SetDaughter(1,"pi+");
mode->SetDaughter(2,"pi-");
mode->SetDaughter(3,"anti_nu_tau");
table->Insert(mode);
anInstance->SetPDGMagneticMoment(muB * 1.00118);
anInstance->SetDecayTable(table);
// create Decay Table
auto table = new G4DecayTable();
// create decay channels
G4VDecayChannel* mode;
// tau+ -> mu+ + nu_mu + anti_nu_tau
mode = new G4TauLeptonicDecayChannel("tau+", 0.1736, "mu+");
table->Insert(mode);
// tau+ -> e+ + nu_e + anti_nu_tau
mode = new G4TauLeptonicDecayChannel("tau+", 0.1784, "e+");
table->Insert(mode);
// tau+ -> pi+ + anti_nu_tau
mode = new G4PhaseSpaceDecayChannel("tau+", 0.1106, 2, "pi+", "anti_nu_tau");
table->Insert(mode);
// tau+ -> pi0 + pi0 + pi+ + anti_nu_tau
mode = new G4PhaseSpaceDecayChannel("tau+", 0.2541, 3, "pi0", "pi+", "anti_nu_tau");
table->Insert(mode);
// tau+ -> pi0 + pi0 + pi+ + anti_nu_tau
mode = new G4PhaseSpaceDecayChannel();
mode->SetParent("tau+");
mode->SetBR(0.0917);
mode->SetNumberOfDaughters(4);
mode->SetDaughter(0, "pi0");
mode->SetDaughter(1, "pi0");
mode->SetDaughter(2, "pi+");
mode->SetDaughter(3, "anti_nu_tau");
table->Insert(mode);
// tau+ -> pi+ + pi+ + pi- + anti_nu_tau
mode = new G4PhaseSpaceDecayChannel();
mode->SetParent("tau+");
mode->SetBR(0.0946);
mode->SetNumberOfDaughters(4);
mode->SetDaughter(0, "pi+");
mode->SetDaughter(1, "pi+");
mode->SetDaughter(2, "pi-");
mode->SetDaughter(3, "anti_nu_tau");
table->Insert(mode);
anInstance->SetDecayTable(table);
}
theInstance = static_cast<G4TauPlus*>(anInstance);
return theInstance;
}
G4TauPlus* G4TauPlus::TauPlusDefinition()
G4TauPlus* G4TauPlus::TauPlusDefinition()
{
return Definition();
}
G4TauPlus* G4TauPlus::TauPlus()
G4TauPlus* G4TauPlus::TauPlus()
{
return Definition();
}