00001 // 00002 // ******************************************************************** 00003 // * License and Disclaimer * 00004 // * * 00005 // * The Geant4 software is copyright of the Copyright Holders of * 00006 // * the Geant4 Collaboration. It is provided under the terms and * 00007 // * conditions of the Geant4 Software License, included in the file * 00008 // * LICENSE and available at http://cern.ch/geant4/license . These * 00009 // * include a list of copyright holders. * 00010 // * * 00011 // * Neither the authors of this software system, nor their employing * 00012 // * institutes,nor the agencies providing financial support for this * 00013 // * work make any representation or warranty, express or implied, * 00014 // * regarding this software system or assume any liability for its * 00015 // * use. Please see the license in the file LICENSE and URL above * 00016 // * for the full disclaimer and the limitation of liability. * 00017 // * * 00018 // * This code implementation is the result of the scientific and * 00019 // * technical work of the GEANT4 collaboration. * 00020 // * By using, copying, modifying or distributing the software (or * 00021 // * any work based on the software) you agree to acknowledge its * 00022 // * use in resulting scientific publications, and indicate your * 00023 // * acceptance of all terms of the Geant4 Software license. * 00024 // ******************************************************************** 00025 // 00026 // 00027 // $Id$ 00028 // 00029 // 00030 // ------------------------------------------------------------ 00031 // GEANT 4 class header file 00032 // 00033 // ------------------------------------------------------------ 00034 // New design using G4VIsotopeTable 5 Oct. 99 H.Kurashige 00035 // Add Magnetic Moment 14 Mar 07 H.Kurashige 00036 00037 #ifndef G4IsotopeProperty_h 00038 #define G4IsotopeProperty_h 1 00039 00040 #include "globals.hh" 00041 class G4DecayTable; 00042 class G4IsotopeProperty 00043 { 00044 // Class Description 00045 // G4IsotopeProperty contains properties of an isotope 00046 // 00047 00048 public: 00049 G4IsotopeProperty(); 00050 00051 // copy construictor 00052 G4IsotopeProperty(const G4IsotopeProperty& right); 00053 00054 // Assignment operator 00055 G4IsotopeProperty & operator=(G4IsotopeProperty& right); 00056 00057 // equal / unequal operator 00058 G4int operator==(const G4IsotopeProperty &right) const; 00059 G4int operator!=(const G4IsotopeProperty &right) const; 00060 00061 // destructor 00062 virtual ~G4IsotopeProperty(); 00063 00064 00065 public: // With Description 00066 // Set/Get Atomic Number 00067 G4int GetAtomicNumber() const; 00068 void SetAtomicNumber(G4int Z); 00069 00070 // Set/Get Atomic Mass 00071 G4int GetAtomicMass() const; 00072 void SetAtomicMass(G4int A); 00073 00074 // Set/Get spin 00075 G4int GetiSpin() const; 00076 void SetiSpin(G4int J); 00077 00078 // Set/Get Magentic Moment 00079 G4double GetMagneticMoment() const; 00080 void SetMagneticMoment(G4double M); 00081 00082 // Set/Get Excited Energy 00083 G4double GetEnergy() const; 00084 void SetEnergy(G4double E); 00085 00086 // Set/Get life time 00087 G4double GetLifeTime() const; 00088 void SetLifeTime(G4double T); 00089 00090 // Set/Get decay table 00091 G4DecayTable* GetDecayTable() const; 00092 void SetDecayTable(G4DecayTable* table); 00093 00094 // Dump out information 00095 void DumpInfo() const; 00096 00097 private: 00098 G4int fAtomicNumber; // number of proton 00099 G4int fAtomicMass; // number of nucleon 00100 G4int fISpin; // total angular momentum (in unit of 1/2) 00101 G4double fEnergy; // excited energy 00102 G4double fLifeTime; // lifeTime 00103 G4DecayTable* fDecayTable; // decay Table 00104 G4double fMagneticMoment; // magnetic moment 00105 }; 00106 00107 inline 00108 G4int G4IsotopeProperty::GetAtomicNumber() const 00109 { 00110 return fAtomicNumber; 00111 } 00112 00113 inline 00114 void G4IsotopeProperty::SetAtomicNumber(G4int Z) 00115 { 00116 fAtomicNumber = Z; 00117 } 00118 00119 inline 00120 G4int G4IsotopeProperty::GetAtomicMass() const 00121 { 00122 return fAtomicMass; 00123 } 00124 00125 inline 00126 void G4IsotopeProperty::SetAtomicMass(G4int A) 00127 { 00128 fAtomicMass = A; 00129 } 00130 00131 inline 00132 G4int G4IsotopeProperty::GetiSpin() const 00133 { 00134 return fISpin; 00135 } 00136 00137 inline 00138 void G4IsotopeProperty::SetiSpin(G4int J) 00139 { 00140 fISpin = J; 00141 } 00142 00143 inline 00144 G4double G4IsotopeProperty::GetMagneticMoment() const 00145 { 00146 return fMagneticMoment; 00147 } 00148 00149 inline 00150 void G4IsotopeProperty::SetMagneticMoment(G4double M) 00151 { 00152 fMagneticMoment = M; 00153 } 00154 00155 inline 00156 G4double G4IsotopeProperty::GetEnergy() const 00157 { 00158 return fEnergy; 00159 } 00160 00161 inline 00162 void G4IsotopeProperty::SetEnergy(G4double E) 00163 { 00164 fEnergy = E; 00165 } 00166 00167 inline 00168 G4double G4IsotopeProperty::GetLifeTime() const 00169 { 00170 return fLifeTime; 00171 } 00172 00173 inline 00174 void G4IsotopeProperty::SetLifeTime(G4double T) 00175 { 00176 fLifeTime = T; 00177 } 00178 00179 inline 00180 G4DecayTable* G4IsotopeProperty::GetDecayTable() const 00181 { 00182 return fDecayTable; 00183 } 00184 00185 inline 00186 void G4IsotopeProperty::SetDecayTable(G4DecayTable* table) 00187 { 00188 fDecayTable = table; 00189 } 00190 #endif 00191 00192 00193 00194 00195 00196 00197 00198 00199 00200