00001
00002
00003
00004
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
00119
00120
00121 std::vector< std::pair<float, float> > parameters_;
00122
00123
00124
00125 HashMap<Atom::Type, Index> indices_;
00126
00127 };
00128
00129 }
00130
00131 #endif // BALL_SOLVATION_CLAVERIEPARAMETER_H