claverieParameter.h

Go to the documentation of this file.
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