G4NucleiProperties Class Reference

#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)


Detailed Description

Definition at line 50 of file G4NucleiProperties.hh.


Constructor & Destructor Documentation

G4NucleiProperties::~G4NucleiProperties (  )  [inline]

Definition at line 59 of file G4NucleiProperties.hh.

00059 { };

G4NucleiProperties::G4NucleiProperties (  )  [inline]

Definition at line 62 of file G4NucleiProperties.hh.

00062 {};


Member Function Documentation

G4double G4NucleiProperties::GetBindingEnergy ( const G4double  A,
const G4double  Z 
) [static]

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 }

G4double G4NucleiProperties::GetBindingEnergy ( const G4int  A,
const G4int  Z 
) [static]

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 }

G4double G4NucleiProperties::GetMassExcess ( const G4double  A,
const G4double  Z 
) [static]

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 }

G4double G4NucleiProperties::GetMassExcess ( const G4int  A,
const G4int  Z 
) [static]

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 }

G4double G4NucleiProperties::GetNuclearMass ( const G4int  A,
const G4int  Z 
) [static]

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 }

G4double G4NucleiProperties::GetNuclearMass ( const G4double  A,
const G4double  Z 
) [static]

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 }

G4bool G4NucleiProperties::IsInStableTable ( const G4int  A,
const G4int  Z 
) [static]

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 }

G4bool G4NucleiProperties::IsInStableTable ( const G4double  A,
const G4double  Z 
) [static]

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 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:52:45 2013 for Geant4 by  doxygen 1.4.7