Geant4-11
source
materials
include
G4Isotope.hh
Go to the documentation of this file.
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
//
27
//
28
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
29
30
// class description
31
//
32
// An isotope is a chemical isotope defined by its name,
33
// Z: atomic number
34
// N: number of nucleons
35
// A: mass of a mole (optional)
36
// m: isomer state (optional)
37
// If A is not defined it is taken from Geant4 database
38
//
39
// The class contains as a private static member the table of defined
40
// isotopes (an ordered vector of isotopes).
41
//
42
// Isotopes can be assembled into elements via the G4Element class.
43
//
44
45
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
46
47
// 20.08.11: Add flag fm for isomer level (mma)
48
// 15.11.05: GetIsotope(isotopeName, G4bool warning=false)
49
// 31.03.05: A becomes optional. Taken from Nist data base by default (mma)
50
// 26.02.02: fIndexInTable renewed
51
// 14.09.01: fCountUse: nb of elements which use this isotope
52
// 13.09.01: stl migration. Suppression of the data member fIndexInTable
53
// 30.03.01: suppression of the warning message in GetIsotope
54
// 04.08.98: new method GetIsotope(isotopeName) (mma)
55
// 17.01.97: aesthetic rearrangement (mma)
56
57
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
58
59
#ifndef G4ISOTOPE_HH
60
#define G4ISOTOPE_HH
61
62
#include "
globals.hh
"
63
#include "
G4ios.hh
"
64
#include <vector>
65
66
class
G4Isotope
;
67
typedef
std::vector<G4Isotope*>
G4IsotopeTable
;
68
69
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
70
71
class
G4Isotope
72
{
73
public
:
// with description
74
75
// Make an isotope
76
//
77
G4Isotope
(
const
G4String
&
name
,
//its name
78
G4int
z,
//atomic number
79
G4int
n
,
//number of nucleons
80
G4double
a = 0.,
//mass of mole
81
G4int
mlevel = 0);
//isomer level
82
83
~G4Isotope
();
84
85
// Retrieval methods
86
//
87
const
G4String
&
GetName
()
const
{
return
fName
;}
88
89
// Atomic number
90
G4int
GetZ
()
const
{
return
fZ
;}
91
92
// Number of nucleous
93
G4int
GetN
()
const
{
return
fN
;}
94
95
// Atomic mass of mole in Geant4 units with electron shell
96
G4double
GetA
()
const
{
return
fA
;}
97
98
// Isomer level
99
G4int
Getm
()
const
{
return
fm
;}
100
101
static
102
G4Isotope
*
GetIsotope
(
const
G4String
&
name
,
G4bool
warning=
false
);
103
104
static
const
105
G4IsotopeTable
*
GetIsotopeTable
();
106
107
static
108
size_t
GetNumberOfIsotopes
();
109
110
size_t
GetIndex
()
const
{
return
fIndexInTable
;}
111
112
friend
113
std::ostream&
operator<<
(std::ostream&,
const
G4Isotope
*);
114
115
friend
116
std::ostream&
operator<<
(std::ostream&,
const
G4Isotope
&);
117
118
friend
119
std::ostream&
operator<<
(std::ostream&,
G4IsotopeTable
);
120
121
public
:
// without description
122
123
G4bool
operator==
(
const
G4Isotope
&)
const
;
124
G4bool
operator!=
(
const
G4Isotope
&)
const
;
125
126
G4Isotope
(__void__&);
127
// Fake default constructor for usage restricted to direct object
128
// persistency for clients requiring preallocation of memory for
129
// persistifiable objects.
130
131
void
SetName
(
const
G4String
&
name
) {
fName
=
name
;}
132
133
private
:
134
135
G4Isotope
(
G4Isotope
&);
136
G4Isotope
&
operator=
(
const
G4Isotope
&);
137
138
private
:
139
140
G4String
fName
;
// name of the Isotope
141
G4int
fZ
;
// atomic number
142
G4int
fN
;
// number of nucleons
143
G4double
fA
;
// atomic mass of a mole
144
G4int
fm
;
// isomer level
145
146
static
147
G4IsotopeTable
theIsotopeTable
;
148
149
size_t
fIndexInTable
;
// index in the Isotope table
150
};
151
152
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
153
154
155
#endif
G4IsotopeTable
std::vector< G4Isotope * > G4IsotopeTable
Definition:
G4Isotope.hh:66
G4double
double G4double
Definition:
G4Types.hh:83
G4bool
bool G4bool
Definition:
G4Types.hh:86
G4int
int G4int
Definition:
G4Types.hh:85
G4ios.hh
G4Isotope
Definition:
G4Isotope.hh:72
G4Isotope::fName
G4String fName
Definition:
G4Isotope.hh:140
G4Isotope::GetIndex
size_t GetIndex() const
Definition:
G4Isotope.hh:110
G4Isotope::GetIsotopeTable
static const G4IsotopeTable * GetIsotopeTable()
Definition:
G4Isotope.cc:181
G4Isotope::operator!=
G4bool operator!=(const G4Isotope &) const
Definition:
G4Isotope.cc:131
G4Isotope::theIsotopeTable
static G4IsotopeTable theIsotopeTable
Definition:
G4Isotope.hh:147
G4Isotope::GetZ
G4int GetZ() const
Definition:
G4Isotope.hh:90
G4Isotope::SetName
void SetName(const G4String &name)
Definition:
G4Isotope.hh:131
G4Isotope::Getm
G4int Getm() const
Definition:
G4Isotope.hh:99
G4Isotope::operator<<
friend std::ostream & operator<<(std::ostream &, const G4Isotope *)
Definition:
G4Isotope.cc:138
G4Isotope::~G4Isotope
~G4Isotope()
Definition:
G4Isotope.cc:91
G4Isotope::GetNumberOfIsotopes
static size_t GetNumberOfIsotopes()
Definition:
G4Isotope.cc:188
G4Isotope::GetIsotope
static G4Isotope * GetIsotope(const G4String &name, G4bool warning=false)
Definition:
G4Isotope.cc:195
G4Isotope::fA
G4double fA
Definition:
G4Isotope.hh:143
G4Isotope::fm
G4int fm
Definition:
G4Isotope.hh:144
G4Isotope::G4Isotope
G4Isotope(const G4String &name, G4int z, G4int n, G4double a=0., G4int mlevel=0)
Definition:
G4Isotope.cc:58
G4Isotope::fN
G4int fN
Definition:
G4Isotope.hh:142
G4Isotope::operator==
G4bool operator==(const G4Isotope &) const
Definition:
G4Isotope.cc:124
G4Isotope::GetN
G4int GetN() const
Definition:
G4Isotope.hh:93
G4Isotope::fIndexInTable
size_t fIndexInTable
Definition:
G4Isotope.hh:149
G4Isotope::GetName
const G4String & GetName() const
Definition:
G4Isotope.hh:87
G4Isotope::fZ
G4int fZ
Definition:
G4Isotope.hh:141
G4Isotope::GetA
G4double GetA() const
Definition:
G4Isotope.hh:96
G4Isotope::operator=
G4Isotope & operator=(const G4Isotope &)
Definition:
G4Isotope.cc:109
G4String
Definition:
G4String.hh:62
globals.hh
CLHEP::detail::n
n
Definition:
Ranlux64Engine.cc:90
G4InuclParticleNames::name
const char * name(G4int ptype)
Definition:
G4InuclParticleNames.hh:76
Generated by
1.9.3