Isotope::Isotope( ChemicalDataObject* mass, ChemicalDataObject* ID )
: m_parentElementSymbol( 0 ), m_mass( 0 ), m_identifier( 0 ),
- m_spin( 0 ), m_magmoment( 0 ), m_halflife( 0 )
+ m_spin( 0 ), m_magmoment( 0 ), m_halflife( 0 ), m_ecday( 0 ), m_betaminus( 0 ),
+ m_betaplus( 0 ), m_alpha( 0 )
{
addData( mass );
addData( ID );
m_magmoment = o;
else if ( o->type() == ChemicalDataObject::halfLife )
m_halflife = o;
+
+ //FIXME in the future there should be real CDOs. But CDO only supports one datavalue...
+ if ( o->type() == ChemicalDataObject::betaplusDecay || o->type() == ChemicalDataObject::betaminusDecay
+ || o->type() == ChemicalDataObject::alphaDecay || o->type() == ChemicalDataObject::ecDecay )
+ {
+ if ( o->type() == ChemicalDataObject::betaplusDecay )
+ m_betaplus = o;
+ if ( o->type() == ChemicalDataObject::betaminusDecay )
+ m_betaminus = o;
+ if ( o->type() == ChemicalDataObject::alphaDecay )
+ m_alpha = o;
+ if ( o->type() == ChemicalDataObject::ecDecay )
+ m_ecday = o;
+ }
}
double Isotope::mass() const
void addData( ChemicalDataObject* o );
void setNucleons( int number );
+
+ /**
+ * @return the sum of protons and neutrons
+ */
int nucleons() const;
+ //FIXME
+ //need to be made private. But that comes later
+
+ ChemicalDataObject* m_ecday;
+ ChemicalDataObject* m_betaplus;
+ ChemicalDataObject* m_betaminus;
+ ChemicalDataObject* m_alpha;
+
private:
/**
* the symbol of the element the isotope belongs to