atomic_data.h

Go to the documentation of this file.
00001 //
00002 //  Copyright (C) 2001-2008 Greg Landrum and Rational Discovery LLC
00003 //
00004 //   @@ All Rights Reserved @@
00005 //  This file is part of the RDKit.
00006 //  The contents are covered by the terms of the BSD license
00007 //  which is included in the file license.txt, found at the root
00008 //  of the RDKit source tree.
00009 //
00010 
00011 /*! \file atomic_data.h
00012 
00013   \brief No user-serviceable parts inside
00014 
00015   This stuff is used by the PeriodicTable interface
00016 
00017 */  
00018 #ifndef __RD_ATOMIC_DATA_H
00019 #define __RD_ATOMIC_DATA_H
00020 
00021 #include <RDGeneral/types.h>
00022 
00023 namespace RDKit {
00024   extern const std::string periodicTableAtomData;
00025   
00026   class atomicData {
00027   public :
00028     atomicData(const std::string &dataLine);
00029     ~atomicData() {};
00030     
00031     int AtomicNum() const { return anum;};
00032     
00033     int DefaultValence() const { return valence.front();};
00034     
00035     int NumValence() const { return static_cast<int>(valence.size());};
00036     
00037     const INT_VECT &ValenceList() const {
00038       return valence;
00039     };
00040     
00041     double Mass() const { return mass;};
00042     
00043     std::string Symbol() const { 
00044       return symb;
00045     }
00046 
00047     double Rcov() const { return rCov; }
00048     
00049     double Rb0() const {return rB0;}
00050     
00051     double Rvdw() const { return rVdw;}
00052     
00053     int NumOuterShellElec() const { return nVal;}
00054 
00055     int MostCommonIsotope() const {return commonIsotope;}
00056 
00057     double MostCommonIsotopeMass() const { return commonIsotopeMass;}
00058     
00059   private:
00060     int anum; //atomic number
00061     std::string symb; // atomic symbol
00062     double rCov, rB0, rVdw; //radii
00063     INT_VECT valence; //list of all valences, the first one is the default valence, -1 at the end signifies that any upper valence is tolerated
00064     double mass;  // atomic mass
00065     int nVal; // number of outer shell electrons
00066     int commonIsotope; // most comon isotope
00067     double commonIsotopeMass; // most comon isotope
00068   };
00069   
00070 };
00071 #endif