00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: claverieParameter.h,v 1.15 2005/12/23 17:01:59 amoll Exp $ 00005 // 00006 00007 #ifndef BALL_SOLVATION_CLAVERIEPARAMETER_H 00008 #define BALL_SOLVATION_CLAVERIEPARAMETER_H 00009 00010 #ifndef BALL_FORMAT_PARAMETERS_H 00011 # include <BALL/FORMAT/parameters.h> 00012 #endif 00013 00014 #ifndef BALL_FORMAT_PARAMETERSECTION_H 00015 # include <BALL/FORMAT/parameterSection.h> 00016 #endif 00017 00018 #ifndef BALL_MOLMEC_PARAMETER_FORCEFIELDPARAMETERS_H 00019 # include <BALL/MOLMEC/PARAMETER/forceFieldParameters.h> 00020 #endif 00021 00022 namespace BALL 00023 { 00031 class BALL_EXPORT ClaverieParameter 00032 : public ParameterSection 00033 { 00034 00035 public: 00036 00037 BALL_CREATE(ClaverieParameter) 00038 00039 00042 00045 ClaverieParameter(); 00046 00049 ClaverieParameter(const Parameters& parameters) 00050 ; 00051 00054 ClaverieParameter(const ClaverieParameter& param); 00055 00058 virtual ~ClaverieParameter(); 00059 00061 00064 00067 const ClaverieParameter& operator = (const ClaverieParameter& param); 00068 00071 virtual void clear(); 00072 00074 00077 00081 bool hasParameters(Atom::Type solvent_type, Atom::Type solute_type) const; 00082 00085 std::pair<float, float> getParameters(Atom::Type solvent_type, 00086 Atom::Type solute_type) const; 00087 00090 std::pair<float, float> getParameters(Atom::Type type) const; 00091 00094 const ::std::vector< ::std::pair<float, float> >& getParameters() const; 00095 00098 const HashMap<Atom::Type, Index>& getIndices() const; 00099 00101 00104 00107 bool operator == (const ClaverieParameter& param) const; 00108 00110 00113 virtual bool extractSection(ForceFieldParameters& parameters, 00114 const String& section_name); 00115 00116 protected: 00117 00118 /*_ This vector contains the paramaters that were read from the 00119 parameter file 00120 */ 00121 std::vector< std::pair<float, float> > parameters_; 00122 00123 /*_ Here the atom types are mapped to the indices of the vector 00124 */ 00125 HashMap<Atom::Type, Index> indices_; 00126 00127 }; 00128 00129 } // namespace BALL 00130 00131 #endif // BALL_SOLVATION_CLAVERIEPARAMETER_H