Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4IsotopeProperty.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// G4IsotopeProperty
27//
28// Class description:
29//
30// G4IsotopeProperty contains properties of an isotope
31
32// Author: H.Kurashige, 5 October 1999
33// --------------------------------------------------------------------
34#ifndef G4IsotopeProperty_hh
35#define G4IsotopeProperty_hh 1
36
37#include "G4Ions.hh"
38#include "globals.hh"
39
40class G4DecayTable;
42{
43 public:
44 // Constructor & destructor
45 G4IsotopeProperty() = default;
46 virtual ~G4IsotopeProperty();
47
50
51 // Equality operators
52 G4bool operator==(const G4IsotopeProperty& right) const;
53 G4bool operator!=(const G4IsotopeProperty& right) const;
54
55 // Set/Get Atomic Number
56 inline G4int GetAtomicNumber() const;
57 inline void SetAtomicNumber(G4int Z);
58
59 // Set/Get Atomic Mass
60 inline G4int GetAtomicMass() const;
61 inline void SetAtomicMass(G4int A);
62
63 // Set/Get spin
64 inline G4int GetiSpin() const;
65 inline void SetiSpin(G4int J);
66
67 // Set/Get Magnetic Moment
68 inline G4double GetMagneticMoment() const;
69 inline void SetMagneticMoment(G4double M);
70
71 // Set/Get Excited Energy
72 inline G4double GetEnergy() const;
73 inline void SetEnergy(G4double E);
74
75 // Set/Get isomer level
76 inline G4int GetIsomerLevel() const;
77 inline void SetIsomerLevel(G4int level);
78
79 // Set/Get floating level base
82 inline void SetFloatLevelBase(G4int flbIndex);
83
84 // Set/Get life time
85 inline G4double GetLifeTime() const;
86 inline void SetLifeTime(G4double T);
87
88 // Set/Get decay table
89 inline G4DecayTable* GetDecayTable() const;
90 inline void SetDecayTable(G4DecayTable* table);
91
92 // Dump out information
93 void DumpInfo() const;
94
95 private:
96 G4int fAtomicNumber = 0; // number of proton
97 G4int fAtomicMass = 0; // number of nucleon
98 G4int fISpin = 0; // total angular momentum (in unit of 1/2)
99 G4double fEnergy = 0.0; // excited energy
100 G4double fLifeTime = -1.0; // lifeTime
101 G4DecayTable* fDecayTable = nullptr; // decay Table
102 G4double fMagneticMoment = 0.0; // magnetic moment
103 G4int fIsomerLevel = -1; // isomer level
104 G4Ions::G4FloatLevelBase fFloatLevelBase{
105 G4Ions::G4FloatLevelBase::no_Float}; // floating level base
106};
107
108// ------------------------
109// Inline methods
110// ------------------------
111
113{
114 return fAtomicNumber;
115}
116
118{
119 fAtomicNumber = Z;
120}
121
123{
124 return fAtomicMass;
125}
126
128{
129 fAtomicMass = A;
130}
131
133{
134 return fISpin;
135}
136
138{
139 fISpin = J;
140}
141
143{
144 return fMagneticMoment;
145}
146
148{
149 fMagneticMoment = M;
150}
151
153{
154 return fEnergy;
155}
156
158{
159 fEnergy = E;
160}
161
163{
164 return fIsomerLevel;
165}
167{
168 fIsomerLevel = level;
169}
170
172{
173 return fLifeTime;
174}
175
177{
178 fLifeTime = T;
179}
180
182{
183 return fDecayTable;
184}
185
187{
188 fDecayTable = table;
189}
190
192{
193 return fFloatLevelBase;
194}
195
197{
198 fFloatLevelBase = flb;
199}
200
202{
203 fFloatLevelBase = G4Ions::FloatLevelBase(flbIndex);
204}
205
206#endif
#define M(row, col)
double G4double
Definition G4Types.hh:83
bool G4bool
Definition G4Types.hh:86
int G4int
Definition G4Types.hh:85
const G4double A[17]
static G4Ions::G4FloatLevelBase FloatLevelBase(char flbChar)
Definition G4Ions.cc:107
G4FloatLevelBase
Definition G4Ions.hh:80
void SetAtomicMass(G4int A)
G4bool operator!=(const G4IsotopeProperty &right) const
void SetDecayTable(G4DecayTable *table)
void SetFloatLevelBase(G4Ions::G4FloatLevelBase flb)
G4IsotopeProperty()=default
void SetEnergy(G4double E)
void SetAtomicNumber(G4int Z)
void SetIsomerLevel(G4int level)
G4DecayTable * GetDecayTable() const
G4IsotopeProperty & operator=(G4IsotopeProperty &right)
G4double GetEnergy() const
G4int GetAtomicMass() const
G4int GetAtomicNumber() const
G4int GetIsomerLevel() const
G4bool operator==(const G4IsotopeProperty &right) const
void SetLifeTime(G4double T)
void SetMagneticMoment(G4double M)
G4double GetLifeTime() const
G4Ions::G4FloatLevelBase GetFloatLevelBase() const
G4double GetMagneticMoment() const