Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4Isotope Class Reference

#include <G4Isotope.hh>

Public Member Functions

 G4Isotope (const G4String &name, G4int z, G4int n, G4double a=0., G4int m=0)
 
virtual ~G4Isotope ()
 
const G4StringGetName () const
 
G4int GetZ () const
 
G4int GetN () const
 
G4double GetA () const
 
G4int Getm () const
 
G4int GetCountUse () const
 
size_t GetIndex () const
 
G4int operator== (const G4Isotope &) const
 
G4int operator!= (const G4Isotope &) const
 
 G4Isotope (__void__ &)
 
void SetName (const G4String &name)
 
void increaseCountUse ()
 
void decreaseCountUse ()
 

Static Public Member Functions

static G4IsotopeGetIsotope (const G4String &name, G4bool warning=false)
 
static const G4IsotopeTableGetIsotopeTable ()
 
static size_t GetNumberOfIsotopes ()
 

Friends

std::ostream & operator<< (std::ostream &, G4Isotope *)
 
std::ostream & operator<< (std::ostream &, G4Isotope &)
 
std::ostream & operator<< (std::ostream &, G4IsotopeTable)
 

Detailed Description

Definition at line 72 of file G4Isotope.hh.

Constructor & Destructor Documentation

◆ G4Isotope() [1/2]

G4Isotope::G4Isotope ( const G4String name,
G4int  z,
G4int  n,
G4double  a = 0.,
G4int  m = 0 
)

Definition at line 59 of file G4Isotope.cc.

60: fName(Name), fZ(Z), fN(N), fA(A), fm(il), fCountUse(0)
61{
62 if (Z<1) {
64 ed << "Wrong Isotope " << Name << " Z= " << Z << G4endl;
65 G4Exception ("G4Isotope::G4Isotope()", "mat001", FatalException, ed);
66 }
67 if (N<Z) {
69 ed << "Wrong Isotope " << Name << " Z= " << Z << " > N= " << N << G4endl;
70 G4Exception ("G4Isotope::G4Isotope()", "mat002", FatalException, ed);
71 }
72 if (A<=0.0) {
73 fA = (G4NistManager::Instance()->GetAtomicMass(Z,N))*g/(mole*amu_c2);
74 }
75 theIsotopeTable.push_back(this);
76 fIndexInTable = theIsotopeTable.size() - 1;
77}
@ FatalException
#define G4endl
Definition: G4ios.hh:52
G4double GetAtomicMass(G4int Z, G4int N) const
static G4NistManager * Instance()
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76

◆ ~G4Isotope()

G4Isotope::~G4Isotope ( )
virtual

Definition at line 91 of file G4Isotope.cc.

92{
93 theIsotopeTable[fIndexInTable] = 0;
94}

◆ G4Isotope() [2/2]

G4Isotope::G4Isotope ( __void__ &  )

Definition at line 84 of file G4Isotope.cc.

85 : fZ(0), fN(0), fA(0), fm(0), fCountUse(0), fIndexInTable(0)
86{
87}

Member Function Documentation

◆ decreaseCountUse()

void G4Isotope::decreaseCountUse ( )
inline

Definition at line 136 of file G4Isotope.hh.

136{fCountUse--;}

◆ GetA()

G4double G4Isotope::GetA ( ) const
inline

Definition at line 97 of file G4Isotope.hh.

97{return fA;}

Referenced by G4tgbGeometryDumper::DumpIsotope(), and G4GDMLWriteMaterials::IsotopeWrite().

◆ GetCountUse()

G4int G4Isotope::GetCountUse ( ) const
inline

Definition at line 102 of file G4Isotope.hh.

102{return fCountUse;}

◆ GetIndex()

size_t G4Isotope::GetIndex ( ) const
inline

Definition at line 113 of file G4Isotope.hh.

113{return fIndexInTable;}

◆ GetIsotope()

G4Isotope * G4Isotope::GetIsotope ( const G4String name,
G4bool  warning = false 
)
static

Definition at line 196 of file G4Isotope.cc.

197{
198 // search the isotope by its name
199 for (size_t J=0 ; J<theIsotopeTable.size() ; J++)
200 {
201 if (theIsotopeTable[J]->GetName() == isotopeName)
202 { return theIsotopeTable[J]; }
203 }
204
205 // the isotope does not exist in the table
206 if (warning) {
207 G4cout << "\n---> warning from G4Isotope::GetIsotope(). The isotope: "
208 << isotopeName << " does not exist in the table. Return NULL pointer."
209 << G4endl;
210 }
211 return 0;
212}
G4DLLIMPORT std::ostream G4cout
const G4String & GetName() const
Definition: G4Isotope.hh:88

Referenced by G4GDMLReadMaterials::GetIsotope().

◆ GetIsotopeTable()

const G4IsotopeTable * G4Isotope::GetIsotopeTable ( )
static

Definition at line 182 of file G4Isotope.cc.

183{
184 return &theIsotopeTable;
185}

Referenced by G4NistManager::~G4NistManager().

◆ Getm()

G4int G4Isotope::Getm ( ) const
inline

Definition at line 100 of file G4Isotope.hh.

100{return fm;}

Referenced by G4NeutronHPElementData::Init(), and G4NeutronHPChannel::Register().

◆ GetN()

◆ GetName()

const G4String & G4Isotope::GetName ( ) const
inline

◆ GetNumberOfIsotopes()

size_t G4Isotope::GetNumberOfIsotopes ( )
static

Definition at line 189 of file G4Isotope.cc.

190{
191 return theIsotopeTable.size();
192}

◆ GetZ()

◆ increaseCountUse()

void G4Isotope::increaseCountUse ( )
inline

Definition at line 135 of file G4Isotope.hh.

135{fCountUse++;}

Referenced by G4Element::AddIsotope().

◆ operator!=()

G4int G4Isotope::operator!= ( const G4Isotope right) const

Definition at line 132 of file G4Isotope.cc.

133{
134 return (this != (G4Isotope *) &right);
135}

◆ operator==()

G4int G4Isotope::operator== ( const G4Isotope right) const

Definition at line 125 of file G4Isotope.cc.

126{
127 return (this == (G4Isotope *) &right);
128}

◆ SetName()

void G4Isotope::SetName ( const G4String name)
inline

Definition at line 134 of file G4Isotope.hh.

134{fName=name;}

Friends And Related Function Documentation

◆ operator<< [1/3]

std::ostream & operator<< ( std::ostream &  flux,
G4Isotope isotope 
)
friend

Definition at line 159 of file G4Isotope.cc.

160{
161 flux << &isotope;
162 return flux;
163}

◆ operator<< [2/3]

std::ostream & operator<< ( std::ostream &  flux,
G4Isotope isotope 
)
friend

Definition at line 139 of file G4Isotope.cc.

140{
141 std::ios::fmtflags mode = flux.flags();
142 flux.setf(std::ios::fixed,std::ios::floatfield);
143 G4long prec = flux.precision(3);
144
145 flux
146 << " Isotope: " << std::setw(5) << isotope->fName
147 << " Z = " << std::setw(2) << isotope->fZ
148 << " N = " << std::setw(3) << isotope->fN
149 << " A = " << std::setw(6) << std::setprecision(2)
150 << (isotope->fA)/(g/mole) << " g/mole";
151
152 flux.precision(prec);
153 flux.setf(mode,std::ios::floatfield);
154 return flux;
155}
long G4long
Definition: G4Types.hh:68

◆ operator<< [3/3]

std::ostream & operator<< ( std::ostream &  flux,
G4IsotopeTable  IsotopeTable 
)
friend

Definition at line 167 of file G4Isotope.cc.

168{
169 //Dump info for all known isotopes
170 flux
171 << "\n***** Table : Nb of isotopes = " << IsotopeTable.size()
172 << " *****\n" << G4endl;
173
174 for (size_t i=0; i<IsotopeTable.size(); i++)
175 flux << IsotopeTable[i] << G4endl;
176
177 return flux;
178}

The documentation for this class was generated from the following files: