00001 #ifndef SPECIESCREATOR_HH_ 00002 #define SPECIESCREATOR_HH_ 00003 00004 00005 #include "../NFreactions.hh" 00006 00007 using namespace std; 00008 00009 namespace NFcore 00010 { 00011 class MoleculeType; 00012 class TemplateMolecule; 00013 00014 class SpeciesCreator 00015 { 00016 public: 00017 SpeciesCreator( 00018 vector <MoleculeType *> &productMoleculeTypes, 00019 vector < vector <int> > &stateInformation, 00020 vector < vector <int> > &bindingSiteInformation); 00021 SpeciesCreator(vector <TemplateMolecule *> &templates); 00022 ~SpeciesCreator(); 00023 00024 void create(); 00025 00026 protected: 00027 00028 unsigned int n_molecules; 00029 MoleculeType ** moleculeTypes; 00030 00031 Molecule **newMoleculeCreations; 00032 00033 00034 //Save the configuration of states we have to set 00035 //nd prefix stands for non-default 00036 unsigned int n_ndStates; 00037 int *ndStateMolecule; 00038 int *ndStateIndex; 00039 int *ndStateValue; 00040 00041 00042 //Save the bonds that we have to create 00043 unsigned int n_bonds; 00044 int *bMolecule1; 00045 int *bMolecule2; 00046 int *bSite1; 00047 int *bSite2; 00048 }; 00049 00050 00051 00052 00053 } 00054 00055 00056 00057 00058 00059 00060 00061 00062 00063 00064 00065 00066 00067 00068 00069 00070 00071 00072 00073 00074 00075 00076 00077 00078 #endif /*SPECIESCREATOR_HH_*/