MTK++ Latest version: 0.2.0

protonate.h
Go to the documentation of this file.
00001 
00033 #ifndef PROTONATE_H
00034 #define PROTONATE_H
00035 
00036 #include <iostream>
00037 #include <string>
00038 #include <vector>
00039 #include <algorithm>
00040 #include <cmath>
00041 #include "Utils/constants.h"
00042 
00043 namespace MTKpp
00044 {
00045 
00046 class collection;
00047 class molecule;
00048 class submolecule;
00049 class atom;
00050 struct Bond;
00051 
00052 class vector3d;
00053 
00054 class stdLibrary;
00055 class stdGroup;
00056 class stdFrag;
00057 struct stdAtom;
00058 struct stdBond;
00059 struct stdImproper;
00060 struct stdLoop;
00061 struct stdAlias;
00062 
00063 class parameters;
00064 struct bondParam;
00065 struct angleParam;
00066 struct torsionParam;
00067 
00068 class proProtonate;
00069 class ligProtonate;
00070 class watProtonate;
00071 
00072 // ============================================================
00073 // Class : protonate()
00074 // ------------------------------------------------------------
00080 // ============================================================
00081 class protonate
00082 {
00083 public:
00084 
00089     protonate(collection *col = 0);
00090 
00095     protonate(molecule *mol = 0);
00096 
00098     virtual ~protonate();
00099 
00103     void run();
00104 
00108     void optimizePolarHs();
00109 
00110 protected: // FUNCTIONS
00111 
00115     void initialize();
00116 
00120     void runCol();
00121 
00125     void runMol(molecule* pMolecule);
00126 
00127     /*
00128       \brief Attempt to build the missing heavy atoms of a fragment
00129       \param pSubMolecule submolcule pointer
00130     */
00131     int buildMissingHeavyAtoms(submolecule* pSubMolecule);
00132 
00133 protected: // DATA
00135     proProtonate*  pPro;
00136 
00138     ligProtonate*  pLig;
00139 
00141     watProtonate*  pWat;
00142 
00144     collection*    pCol;
00145 
00147     bool           bCol;
00148 
00150     molecule*      pMol;
00151 
00153     bool           bMol;
00154 
00156     std::vector<submolecule*> subMoleculeList;
00157 
00159     std::vector<atom*> atomList;
00160 
00162     submolecule*   pSubMolecule;
00163 
00165     submolecule*   pSubMoleculeMinus1;
00166 
00168     stdLibrary*    pStdLibrary;
00169 
00171     stdGroup*      pStdGroup;
00172 
00174     stdFrag*       pStdFrag;
00175 
00177     stdFrag*       pStdFragMinus1;
00178 
00180     parameters*    pParam;
00181 
00183     std::vector<atom*> prev3Atoms;
00184 };
00185 
00186 } // MTKpp namespace
00187 
00188 #endif // PROTONATE_H
00189 

Generated on Fri Dec 23 2011 09:28:51 for MTK++ by Doxygen 1.7.5.1