00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: RDFParameter.h,v 1.20 2005/12/23 17:02:01 amoll Exp $ 00005 // 00006 00007 #ifndef BALL_STRUCTURE_RDFPARAMETER_H 00008 #define BALL_STRUCTURE_RDFPARAMETER_H 00009 00010 #ifndef BALL_KERNEL_ATOM_H 00011 # include <BALL/KERNEL/atom.h> 00012 #endif 00013 00014 #ifndef BALL_STRUCTURE_RADIALDISTRIBUTIONFUNCTION_H 00015 # include <BALL/STRUCTURE/radialDistributionFunction.h> 00016 #endif 00017 00018 #ifndef BALL_FORMAT_PARAMETERSECTION_H 00019 # include <BALL/FORMAT/parameterSection.h> 00020 #endif 00021 00022 #ifndef BALL_MOLMEC_PARAMETERS_FORCEFIELDPARAMETERS_H 00023 # include <BALL/MOLMEC/PARAMETER/forceFieldParameters.h> 00024 #endif 00025 00026 namespace BALL 00027 { 00033 class BALL_EXPORT RDFParameter 00034 : public ParameterSection 00035 { 00036 public: 00037 00038 BALL_CREATE(RDFParameter) 00039 00040 00043 00046 RDFParameter() 00047 ; 00048 00052 RDFParameter(const RDFParameter& rdf_parameter) 00053 ; 00054 00057 virtual ~RDFParameter() 00058 ; 00059 00061 00064 00069 const RDFParameter& operator = (const RDFParameter& rdf_parameter) 00070 ; 00071 00074 virtual void clear() 00075 ; 00076 00078 00081 00088 Position getIndex(Atom::Type type_i, Atom::Type type_j) const 00089 ; 00090 00096 const RadialDistributionFunction& getRDF(Atom::Type type_i, 00097 Atom::Type type_j) const 00098 ; 00099 00105 const RadialDistributionFunction& getRDF(Position index) const 00106 ; 00107 00109 00115 virtual bool extractSection(ForceFieldParameters& parameters, 00116 const String& section_name) 00117 ; 00118 00122 00130 bool hasRDF(Atom::Type solvent_atom_type, Atom::Type solute_atom_type) 00131 const ; 00132 00136 bool hasParameters(Atom::Type solvent_atom_type, 00137 Atom::Type solute_atom_type) const 00138 ; 00139 00141 00142 protected: 00143 00144 /*_ The vector containing all the read RDF representations */ 00145 std::vector<RadialDistributionFunction> rdf_list_; 00146 00147 /*_ This maps Atom:Types to Indices of rdf_list_ */ 00148 HashMap< Atom::Type, HashMap<Atom::Type, Position> > rdf_indices_; 00149 00150 00151 }; 00152 00153 } // namespace BALL 00154 #endif // BALL__RDFPARAMETER_H