#include <G4NucleiProperties.hh>
Public Member Functions | |
~G4NucleiProperties () | |
G4NucleiProperties () | |
Static Public Member Functions | |
static G4double | GetNuclearMass (const G4double A, const G4double Z) |
static G4double | GetNuclearMass (const G4int A, const G4int Z) |
static bool | IsInStableTable (const G4double A, const G4double Z) |
static bool | IsInStableTable (const G4int A, const G4int Z) |
static G4double | GetBindingEnergy (const G4int A, const G4int Z) |
static G4double | GetBindingEnergy (const G4double A, const G4double Z) |
static G4double | GetMassExcess (const G4int A, const G4int Z) |
static G4double | GetMassExcess (const G4double A, const G4double Z) |
Definition at line 50 of file G4NucleiProperties.hh.
G4NucleiProperties::~G4NucleiProperties | ( | ) | [inline] |
G4NucleiProperties::G4NucleiProperties | ( | ) | [inline] |
Definition at line 216 of file G4NucleiProperties.cc.
References GetBindingEnergy().
00217 { 00218 G4int iA = G4int(A); 00219 G4int iZ = G4int(Z); 00220 return GetBindingEnergy(iA,iZ); 00221 }
Definition at line 223 of file G4NucleiProperties.cc.
References G4cerr, and G4endl.
Referenced by G4KaonMinusAbsorptionAtRest::AtRestDoIt(), G4NeutronHPInelasticBaseFS::BaseApply(), G4InuclSpecialFunctions::bindingEnergy(), G4StatMFMacroTriNucleon::CalcEnergy(), G4StatMFMacroTetraNucleon::CalcEnergy(), G4StatMFMacroBiNucleon::CalcEnergy(), G4StatMFMacroTriNucleon::CalcMeanMultiplicity(), G4StatMFMacroTetraNucleon::CalcMeanMultiplicity(), G4StatMFMacroBiNucleon::CalcMeanMultiplicity(), G4QMDNucleus::CalEnergyAndAngularMomentumInCM(), G4PiMinusStopAbsorption::DoAbsorption(), G4PiMinusStopAbsorption::Energy(), GetBindingEnergy(), G4SigmaZeroField::GetField(), G4SigmaPlusField::GetField(), G4SigmaMinusField::GetField(), G4PionZeroField::GetField(), G4PionPlusField::GetField(), G4PionMinusField::GetField(), G4KaonZeroField::GetField(), G4KaonPlusField::GetField(), G4KaonMinusField::GetField(), G4AntiProtonField::GetField(), G4NeutronHPInelasticBaseFS::InitGammas(), G4NeutronHPContAngularPar::Sample(), and G4KM_OpticalEqRhs::SetFactor().
00224 { 00225 if (A < 1 || Z < 0 || Z > A) { 00226 #ifdef G4VERBOSE 00227 if (G4ParticleTable::GetParticleTable()->GetVerboseLevel()>0) { 00228 G4cerr << "G4NucleiProperties::GetMassExccess: Wrong values for A = " 00229 << A << " and Z = " << Z << G4endl; 00230 } 00231 #endif 00232 return 0.0; 00233 00234 } else { 00235 if (G4NucleiPropertiesTableAME03::IsInTable(Z,A)) { 00236 return G4NucleiPropertiesTableAME03::GetBindingEnergy(Z,A); 00237 } else if (G4NucleiPropertiesTheoreticalTable::IsInTable(Z,A)) { 00238 return G4NucleiPropertiesTheoreticalTable::GetBindingEnergy(Z,A); 00239 }else { 00240 return BindingEnergy(A,Z); 00241 } 00242 00243 } 00244 }
Definition at line 157 of file G4NucleiProperties.cc.
References GetMassExcess().
00158 { 00159 G4int iA = G4int(A); 00160 G4int iZ = G4int(Z); 00161 return GetMassExcess(iA,iZ); 00162 }
Definition at line 164 of file G4NucleiProperties.cc.
References G4cerr, G4endl, and G4ParticleTable::GetParticleTable().
Referenced by G4BEDeuteronChannel::G4BEDeuteronChannel(), G4StatMFFragment::GetEnergy(), GetMassExcess(), and G4BertiniEvaporationChannel::getQ().
00165 { 00166 if (A < 1 || Z < 0 || Z > A) { 00167 #ifdef G4VERBOSE 00168 if (G4ParticleTable::GetParticleTable()->GetVerboseLevel()>0) { 00169 G4cerr << "G4NucleiProperties::GetMassExccess: Wrong values for A = " 00170 << A << " and Z = " << Z << G4endl; 00171 } 00172 #endif 00173 return 0.0; 00174 00175 } else { 00176 00177 if (G4NucleiPropertiesTableAME03::IsInTable(Z,A)){ 00178 return G4NucleiPropertiesTableAME03::GetMassExcess(Z,A); 00179 } else if (G4NucleiPropertiesTheoreticalTable::IsInTable(Z,A)){ 00180 return G4NucleiPropertiesTheoreticalTable::GetMassExcess(Z,A); 00181 } else { 00182 return MassExcess(A,Z); 00183 } 00184 } 00185 00186 }
Definition at line 71 of file G4NucleiProperties.cc.
References G4ParticleTable::FindParticle(), G4cerr, G4endl, G4ParticleTable::GetParticleTable(), and G4ParticleDefinition::GetPDGMass().
00072 { 00073 if (mass_proton <= 0.0 ) { 00074 const G4ParticleDefinition * nucleus = 0; 00075 nucleus = G4ParticleTable::GetParticleTable()->FindParticle("proton"); // proton 00076 if (nucleus!=0) mass_proton = nucleus->GetPDGMass(); 00077 nucleus = G4ParticleTable::GetParticleTable()->FindParticle("neutron"); // neutron 00078 if (nucleus!=0) mass_neutron = nucleus->GetPDGMass(); 00079 nucleus = G4ParticleTable::GetParticleTable()->FindParticle("deuteron"); // deuteron 00080 if (nucleus!=0) mass_deuteron = nucleus->GetPDGMass(); 00081 nucleus = G4ParticleTable::GetParticleTable()->FindParticle("triton"); // triton 00082 if (nucleus!=0) mass_triton = nucleus->GetPDGMass(); 00083 nucleus = G4ParticleTable::GetParticleTable()->FindParticle("alpha"); // alpha 00084 if (nucleus!=0) mass_alpha = nucleus->GetPDGMass(); 00085 nucleus = G4ParticleTable::GetParticleTable()->FindParticle("He3"); // He3 00086 if (nucleus!=0) mass_He3 = nucleus->GetPDGMass(); 00087 00088 } 00089 00090 if (A < 1 || Z < 0 || Z > A) { 00091 #ifdef G4VERBOSE 00092 if (G4ParticleTable::GetParticleTable()->GetVerboseLevel()>0) { 00093 G4cerr << "G4NucleiProperties::GetNuclearMass: Wrong values for A = " << A 00094 << " and Z = " << Z << G4endl; 00095 } 00096 #endif 00097 return 0.0; 00098 } 00099 00100 G4double mass= -1.; 00101 if ( (Z<=2) ) { 00102 // light nuclei 00103 if ( (Z==1)&&(A==1) ) { 00104 mass = mass_proton; 00105 } else if ( (Z==0)&&(A==1) ) { 00106 mass = mass_neutron; 00107 } else if ( (Z==1)&&(A==2) ) { 00108 mass = mass_deuteron; 00109 } else if ( (Z==1)&&(A==3) ) { 00110 mass = mass_triton; 00111 } else if ( (Z==2)&&(A==4) ) { 00112 mass = mass_alpha; 00113 } else if ( (Z==2)&&(A==3) ) { 00114 mass = mass_He3; 00115 } 00116 } 00117 00118 if (mass < 0.) { 00119 if (G4NucleiPropertiesTableAME03::IsInTable(Z,A)) { 00120 // AME 03 table 00121 mass = G4NucleiPropertiesTableAME03::GetNuclearMass(Z,A); 00122 } else if (G4NucleiPropertiesTheoreticalTable::IsInTable(Z,A)){ 00123 // Theoretical table 00124 mass = G4NucleiPropertiesTheoreticalTable::GetNuclearMass(Z,A); 00125 } else { 00126 mass = NuclearMass(G4double(A),G4double(Z)); 00127 } 00128 } 00129 00130 if (mass < 0.) mass = 0.0; 00131 return mass; 00132 }
Definition at line 53 of file G4NucleiProperties.cc.
Referenced by G4PreCompoundModel::ApplyYourself(), G4ParaFissionModel::ApplyYourself(), G4NeutronRadCapture::ApplyYourself(), G4NeutronHPCaptureFS::ApplyYourself(), G4MuMinusCapturePrecompound::ApplyYourself(), G4LowEIonFragmentation::ApplyYourself(), G4INCLXXInterface::ApplyYourself(), G4HadronElastic::ApplyYourself(), G4EMDissociation::ApplyYourself(), G4EmCaptureCascade::ApplyYourself(), G4ChargeExchange::ApplyYourself(), G4Nucleus::AtomicMass(), G4MuonMinusCaptureAtRest::AtRestDoIt(), G4NeutronHPInelasticBaseFS::BaseApply(), G4InuclEvaporation::BreakItUp(), G4BertiniEvaporation::BreakItUp(), G4StopTheoDeexcitation::BreakUp(), G4UnstableFragmentBreakUp::BreakUpFragment(), G4HadronicProcess::CheckEnergyMomentumConservation(), G4HadronicProcess::CheckResult(), G4NeutronHPInelasticCompFS::CompositeApply(), G4Fragment::ComputeGroundStateMass(), G4HadronElastic::ComputeMomentumCMS(), G4PiMinusStopAbsorption::DoAbsorption(), G4PiMinusStopAbsorption::Energy(), G4B9FermiFragment::G4B9FermiFragment(), G4Be8FermiFragment::G4Be8FermiFragment(), G4EvaporationChannel::G4EvaporationChannel(), G4GEMChannel::G4GEMChannel(), G4He5FermiFragment::G4He5FermiFragment(), G4Li5FermiFragment::G4Li5FermiFragment(), G4UnstableFragmentBreakUp::G4UnstableFragmentBreakUp(), G4VFermiFragment::G4VFermiFragment(), G4FermiFragmentsPool::GetConfigurationList(), G4NeutronHPorLFissionData::GetCrossSection(), G4NeutronHPorLElasticData::GetCrossSection(), G4NeutronHPorLEInelasticData::GetCrossSection(), G4NeutronHPorLCaptureData::GetCrossSection(), G4NeutronHPInelasticData::GetCrossSection(), G4NeutronHPFissionData::GetCrossSection(), G4NeutronHPElasticData::GetCrossSection(), G4NeutronHPCaptureData::GetCrossSection(), G4TripathiLightCrossSection::GetElementCrossSection(), G4IonsKoxCrossSection::GetElementCrossSection(), G4PromptPhotonEvaporation::GetEmissionProbability(), G4GEMChannel::GetEmissionProbability(), G4EvaporationChannel::GetEmissionProbability(), G4IonsShenCrossSection::GetIsoCrossSection(), G4QMDNucleus::GetNuclearMass(), G4HyperNucleiProperties::GetNuclearMass(), G4InuclNuclei::getNucleiMass(), G4IonTable::GetNucleusMass(), G4NeutronHPThermalBoost::GetThermalEnergy(), G4VPreCompoundFragment::Initialize(), G4GeneratorPrecompoundInterface::Propagate(), G4NuclNuclDiffuseElastic::SampleInvariantT(), G4DiffuseElastic::SampleInvariantT(), G4AntiNuclElastic::SampleInvariantT(), G4IonCoulombScatteringModel::SampleSecondaries(), G4hCoulombScatteringModel::SampleSecondaries(), G4eCoulombScatteringModel::SampleSecondaries(), G4ScreeningMottCrossSection::SetupKinematic(), G4QTauNuclearCrossSection::ThresholdEnergy(), G4QPhotonNuclearCrossSection::ThresholdEnergy(), G4QMuonNuclearCrossSection::ThresholdEnergy(), and G4QElectronNuclearCrossSection::ThresholdEnergy().
00054 { 00055 G4double mass=0.0; 00056 00057 if (std::fabs(A - G4int(A)) > 1.e-10) { 00058 mass = NuclearMass(A,Z); 00059 00060 } else { 00061 // use mass table 00062 G4int iZ = G4int(Z); 00063 G4int iA = G4int(A); 00064 mass =GetNuclearMass(iA,iZ); 00065 } 00066 00067 return mass; 00068 }
Definition at line 141 of file G4NucleiProperties.cc.
References G4cerr, G4endl, and G4ParticleTable::GetParticleTable().
00142 { 00143 if (A < 1 || Z < 0 || Z > A) { 00144 #ifdef G4VERBOSE 00145 if (G4ParticleTable::GetParticleTable()->GetVerboseLevel()>0) { 00146 G4cerr << "G4NucleiProperties::IsInStableTable: Wrong values for A = " 00147 << A << " and Z = " << Z << G4endl; 00148 } 00149 #endif 00150 return false; 00151 } 00152 00153 return G4NucleiPropertiesTableAME03::IsInTable(Z,A); 00154 00155 }
Definition at line 134 of file G4NucleiProperties.cc.
Referenced by G4IonTable::CreateAllIon(), G4QTauNuclearCrossSection::ThresholdEnergy(), G4QPhotonNuclearCrossSection::ThresholdEnergy(), G4QMuonNuclearCrossSection::ThresholdEnergy(), and G4QElectronNuclearCrossSection::ThresholdEnergy().
00135 { 00136 G4int iA = G4int(A); 00137 G4int iZ = G4int(Z); 00138 return IsInStableTable(iA, iZ); 00139 }