49 const G4double G4IsotopeMagneticMomentTable::levelTolerance = 2.0*
keV;
59 if ( !getenv(
"G4IONMAGNETICMOMENT")) {
61 if (GetVerboseLevel()>1) {
62 G4cout <<
"G4IsotopeMagneticMomentTable::G4IsotopeMagneticMomentTable(): "
63 <<
"Please setenv G4IONMAGNETICMOMENT for the magnetic moment data."
68 "Please setenv G4IONMAGNETICMOMENT");
74 "Please setenv G4IONMAGNETICMOMENT");
78 G4String file = getenv(
"G4IONMAGNETICMOMENT");
79 std::ifstream DataFile(file);
83 if (GetVerboseLevel()>0) {
84 G4cout <<
"G4IsotopeMagneticMomentTable::G4IsotopeMagneticMomentTable(): "
85 << file <<
" is not found " <<
G4endl;
91 "Can not open G4IONMAGNETICMOMENT file");
95 char inputChars[80]={
' '};
97 while ( !DataFile.eof() ) {
98 DataFile.getline(inputChars, 80);
100 G4int ionA, ionZ, ionJ, isomer;
104 if (inputChars[0] !=
'#' && inputLine.length() != 0) {
105 std::istringstream tmpstream(inputLine);
106 tmpstream >> ionZ >> ionName >> ionA
108 >> ionLife >> ionLifeUnit
120 fIsotopeList.push_back(fProperty);
135 for (
size_t i = 0 ; i< fIsotopeList.size(); i++) {
136 delete fIsotopeList[i];
138 fIsotopeList.clear();
157 for (
size_t i = 0 ; i< fIsotopeList.size(); ++i) {
198 for (
size_t i = 0 ; i< fIsotopeList.size(); ++i) {
218 if (std::fabs(fP->
GetEnergy() - E) < levelTolerance) {
236 for (
size_t i = 0 ; i< fIsotopeList.size(); ++i) {
void SetAtomicMass(G4int A)
virtual G4IsotopeProperty * GetIsotopeByIsoLvl(G4int Z, G4int A, G4int lvl=0)
static constexpr double proton_mass_c2
G4int GetAtomicNumber() const
G4IsotopeMagneticMomentTable & operator=(const G4IsotopeMagneticMomentTable &right)
G4int GetIsomerLevel() const
void SetMagneticMoment(G4double M)
virtual ~G4IsotopeMagneticMomentTable()
G4GLOB_DLL std::ostream G4cout
double A(double temperature)
G4double GetEnergy() const
static constexpr double eplus
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
static constexpr double c_squared
void SetEnergy(G4double E)
virtual G4bool FindIsotope(G4IsotopeProperty *property)
G4IsotopeMagneticMomentTable()
static constexpr double MeV
static constexpr double hbar_Planck
static constexpr double keV
void SetAtomicNumber(G4int Z)
G4int GetAtomicMass() const
void SetIsomerLevel(G4int level)
virtual G4IsotopeProperty * GetIsotope(G4int Z, G4int A, G4double E, G4Ions::G4FloatLevelBase flb=G4Ions::G4FloatLevelBase::no_Float)