#ifndef ISOTOPE_H #define ISOTOPE_H /*************************************************************************** * Copyright (C) 2005-2008 by Carsten Niehaus * * cniehaus@kde.org * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #include "chemicaldataobject.h" #include "libkdeedu_science_export.h" /** * @author Carsten Niehaus * * This class represents an Isotope with all its properties */ class SCIENCE_EXPORT Isotope { public: /** * Constructs a new empty isotope. */ Isotope(); /** * Destructor */ ~Isotope(); /** * This struct stores the information how the nucleons in the * isotopes are split into neutrons and protons. */ struct Nucleons { /** * the number of neutrons of the isotope */ int neutrons; /** * the number of protons of the isotope */ int protons; }; /** * @return the mass of the isotope */ double mass() const; /** * @return the errormargin ( delta mass ) of the isotope */ QString errorMargin() const; /** * If the isotope belongs to Iron, this method will return "26" * @return the number of the element the isotope belongs to */ int parentElementNumber() const; /** * If the isotope belongs to Iron, this method will return "Fe" * @return the symbol of the element the isotope belongs to */ QString parentElementSymbol() const; QString spin() const; /** * @return the magnetic moment of the Isotope */ QString magmoment() const; QString abundance() const; /** * @return for example '17' if halflife of this Isotope is 17 seconds * @ref halflife() */ double halflife() const; /** * @return for example 's' if the unit of the halflife of this Isotope is given in * seconds */ QString halflifeUnit() const; /** * add the ChemicalDataObject @p o */ void addData( ChemicalDataObject o ); /** * Set the number of nucleons of the isotope to @number */ void setNucleons( int number ); /** * @return the sum of protons and neutrons */ int nucleons() const; /** * @return decay */ double ecdecay() const; /** * @return decay likeliness */ double eclikeliness() const; /** * @return decay */ double betaminusdecay() const; /** * @return decay likeliness */ double betaminuslikeliness() const; /** * @return decay */ double betaplusdecay() const; /** * @return decay likeliness */ double betapluslikeliness() const; /** * @return decay */ double alphadecay() const; /** * @return decay */ double alphalikeliness() const; /** * This enum stores the different kinds of decay */ enum Decay { ALPHA/**