3
/***************************************************************************
4
* Copyright (C) 2005-2008 by Carsten Niehaus *
7
* This program is free software; you can redistribute it and/or modify *
8
* it under the terms of the GNU General Public License as published by *
9
* the Free Software Foundation; either version 2 of the License, or *
10
* (at your option) any later version. *
12
* This program is distributed in the hope that it will be useful, *
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15
* GNU General Public License for more details. *
17
* You should have received a copy of the GNU General Public License *
18
* along with this program; if not, write to the *
19
* Free Software Foundation, Inc., *
20
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
21
***************************************************************************/
23
#include "chemicaldataobject.h"
25
#include "libkdeedu_science_export.h"
28
* @author Carsten Niehaus
30
* This class represents an Isotope with all its properties
32
class SCIENCE_EXPORT Isotope
36
* Constructs a new empty isotope.
46
* This struct stores the information how the nucleons in the
47
* isotopes are split into neutrons and protons.
52
* the number of neutrons of the isotope
57
* the number of protons of the isotope
63
* @return the mass of the isotope
68
* @return the errormargin ( delta mass ) of the isotope
70
QString errorMargin() const;
73
* If the isotope belongs to Iron, this method will return "26"
74
* @return the number of the element the isotope belongs to
76
int parentElementNumber() const;
79
* If the isotope belongs to Iron, this method will return "Fe"
80
* @return the symbol of the element the isotope belongs to
82
QString parentElementSymbol() const;
87
* @return the magnetic moment of the Isotope
89
QString magmoment() const;
91
QString abundance() const;
94
* @return for example '17' if halflife of this Isotope is 17 seconds
97
double halflife() const;
100
* @return for example 's' if the unit of the halflife of this Isotope is given in
103
QString halflifeUnit() const;
106
* add the ChemicalDataObject @p o
108
void addData( ChemicalDataObject o );
111
* Set the number of nucleons of the isotope to @number
113
void setNucleons( int number );
116
* @return the sum of protons and neutrons
118
int nucleons() const;
123
double ecdecay() const;
126
* @return decay likeliness
128
double eclikeliness() const;
133
double betaminusdecay() const;
135
* @return decay likeliness
137
double betaminuslikeliness() const;
142
double betaplusdecay() const;
145
* @return decay likeliness
147
double betapluslikeliness() const;
152
double alphadecay() const;
158
double alphalikeliness() const;
161
* This enum stores the different kinds of decay
165
ALPHA/**<alpha decay*/,
166
BETAPLUS/**<beta plus decay*/,
167
BETAMINUS/**<beta minus decay*/,
172
* @return the nucleons of neutrons of the Isotope after the decay
174
Isotope::Nucleons nucleonsAfterDecay( Decay kind );
179
* the symbol of the element the isotope belongs to
181
ChemicalDataObject m_parentElementSymbol;
184
* stores the information about the mass of the Isotope
186
ChemicalDataObject m_mass;
189
* stores the atomicNumber of the Isotope
191
ChemicalDataObject m_identifier;
194
* stores the spin of the Isotope
196
ChemicalDataObject m_spin;
199
* stores the magneticMoment of the Isotope
201
ChemicalDataObject m_magmoment;
204
* stores the relative abundance of the Isotope
206
ChemicalDataObject m_abundance;
209
* stores the halfLife of the Isotope
211
ChemicalDataObject m_halflife;
214
* stores decay energy of the isotope
216
ChemicalDataObject m_ecdecay;
217
ChemicalDataObject m_betaplusdecay;
218
ChemicalDataObject m_betaminusdecay;
219
ChemicalDataObject m_alphadecay;
222
* stores the likeliness of a decay of the isotope
224
ChemicalDataObject m_eclikeliness;
225
ChemicalDataObject m_betapluslikeliness;
226
ChemicalDataObject m_betaminuslikeliness;
227
ChemicalDataObject m_alphalikeliness;
229
int m_numberOfNucleons;