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,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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
{
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user