220 likes | 412 Views
Progress Report. V.Ivanchenko 16 September 2008. Outline. Validation plots for 9.1ref07 Modifications in hadronic/management Nuclear masses in G4 hadronics Natural abundances in G4 hadronics. Summary for 9.1ref07. Neutron production at low energy have been improved by Jose Manuel
E N D
Progress Report V.Ivanchenko 16 September 2008
Outline • Validation plots for 9.1ref07 • Modifications in hadronic/management • Nuclear masses in G4 hadronics • Natural abundances in G4 hadronics 16.09.08 V.Ivanchenko
Summary for 9.1ref07 • Neutron production at low energy have been improved by Jose Manuel • Other distributions are stable • There is a problem in Bertini for forward neutron production at 1.2 GeV 16.09.08 V.Ivanchenko
Cleanup in hadronic/management • G4HadronicProcessStore • Include stopping and CHIPS processes • Next step – add hadronic model names (FTFP, QGSP) in hadronic Physics Lists • G4HadronicProcess base class were upgraded • No run time call to environment variables • No run time check of cross section data store • Direct fill Z and A in the G4VCrossSectionDataStore • Some performance improvement is expected 16.09.08 V.Ivanchenko
Motivation to look into masses (9.1ref-07) p + Pb 600 MeV 16.09.08 V.Ivanchenko
Nuclear Masses in G4 hadronics • The problem of 4-momentum balance may be in the code or in the test • Definitions: • MN(Z,A) – mass of the isotope (nuclear mass) • (MA(Z,A) + Z*me – Be)- atomic mass • (MA(Z,A) – A) - mass excess • (Z*mp + (A-Z)mn – MN(Z,A)) – binding energy 16.09.08 V.Ivanchenko
How access a nuclear mass in G4? • NucleiProperties public methods (first author V.Lara): • Static GetMassExcess(const G4int A, const G4int Z) • Static GetAtomicMass(const G4double A, const G4double Z) • Static GetBindingEnergy(const G4int A, const G4int Z) • In reality it is Weitzsaeker’mass formula • Static GetNuclearMass(const G4double A, const G4double Z) • In these methods pow function, string comparison and a lot of “if” operators are used • There are calls to G4NucleiPropertiesTable and G4NucleiPropertiesTheoreticalTable • This class was developed by V.Lara in 1998 and migrated to particle category in 1998 • One can express concerns to not optimal implementation • It seems that there is a bug in He3 and He4 atomic masses 16.09.08 V.Ivanchenko
How access a nuclear mass in G4? • GetNucleiPropertiesTable – container of the data – public methods • Static GetMassExcess(G4int Z, G4int A) • Static GetNuclearMass(G4int Z, G4int A) • Static GetBindingEnergy(G4int Z, G4int A) • Static GetBetaDecayEnergy(G4int Z, G4int A) • Static GetAtomicMass(G4int Z, G4int A) • IsInTable(G4int Z, G4int A) • Static G4int MaxZ(G4int A) MinZ(G4int A) • Data table are for the MassExcess; author V.Lara, data from G.Audi et al. Nucl. Phys. A595 (1995) 409; • PDG recommendation: • G.Audi et al. Nucl. Phys. A 729 (2003) 337 • Authors point out that in experiments mainly atomic mass is measured, other values are computed 16.09.08 V.Ivanchenko
How access a nuclear mass in G4? • G4NistManager: • GetIsotopeMass(G4int Z, G4int A) • G4AtomicMass(G4int Z, G4int A) • Data from NIST DB atomic masses transferred to Geant4 NIST DB in 2005 • Very fast access to isotope mass • Return 0.0 if isotope is not in the table • NIST DB is used to construct G4Isotope, G4Element, G4Material, • Masses from NIST are used only in few EM processes • G4Nucleus: • GetAtomicMass(const G4double A, const G4double Z) • Inside the direct call !: G4NucleiProperties::GetNuclearMass(G4double A, G4double Z) • G4ParticleDefinition::GetAtomicMass() // nuclear mass! 16.09.08 V.Ivanchenko
The most big difference for the given Z ΔMmax (MeV) Z 16.09.08 V.Ivanchenko
Which atomic masses to use? • NIST data are less precise (1 digit less) • PDG data are the most precise (1 digit more) 16.09.08 V.Ivanchenko
Summary on mass mini-review • G4NucleiProperties provide precise masses from review 1995 • PDG recommendation based on 2003 publication • Atomic masses of He ions need to be fixed • NIST data provided with 1 digit less accuracy • Implementation of G4NucleiProperties is not optimal: • String comparisons, pow function, indirect computation • There are difficulties with method names: • some models use AtomicMass , • some – NuclearMass, • some call for AtomicMass and get NuclearMass • some call for MassExcess • There are different methods to get mass and not obvious what is the best 16.09.08 V.Ivanchenko
What can be done in short term? • Find out and fix all places were atomic mass is used • Bertini, Abla, tests • If possible use G4NucleiProperties::GetNuclearMass • Improve G4NucleiProperties::GetNuclearMass • Substitute string comparison by pointer comparison • Reduce number of “if” operators • Tabulate electron binding energy to avoid call to pow function • Singleton with inline methods or static? 16.09.08 V.Ivanchenko
What can be done in long term? • PDG masses should be taken • Unique fast method to get nuclear mass should be provided • Rename methods, so function is corresponding to the name • Remove unnecessary methods 16.09.08 V.Ivanchenko
Natural abundances • The maximum difference for given Z is shown • Values from NIST and GHAD are very close • Some isotopes present in NIST and not in GHAD • No problems for important Z • No references in GHAD class: the source of the data unknown • Likely the update of the GHAD class should be planned 16.09.08 V.Ivanchenko