00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 00005 #ifndef BALL_STRUCTURE_RDFPARAMETER_H 00006 #define BALL_STRUCTURE_RDFPARAMETER_H 00007 00008 #ifndef BALL_KERNEL_ATOM_H 00009 # include <BALL/KERNEL/atom.h> 00010 #endif 00011 00012 #ifndef BALL_STRUCTURE_RADIALDISTRIBUTIONFUNCTION_H 00013 # include <BALL/STRUCTURE/radialDistributionFunction.h> 00014 #endif 00015 00016 #ifndef BALL_FORMAT_PARAMETERSECTION_H 00017 # include <BALL/FORMAT/parameterSection.h> 00018 #endif 00019 00020 #ifndef BALL_MOLMEC_PARAMETERS_FORCEFIELDPARAMETERS_H 00021 # include <BALL/MOLMEC/PARAMETER/forceFieldParameters.h> 00022 #endif 00023 00024 namespace BALL 00025 { 00031 class BALL_EXPORT RDFParameter 00032 : public ParameterSection 00033 { 00034 public: 00035 00036 BALL_CREATE(RDFParameter) 00037 00038 00041 00044 RDFParameter() 00045 ; 00046 00050 RDFParameter(const RDFParameter& rdf_parameter) 00051 ; 00052 00055 virtual ~RDFParameter() 00056 ; 00057 00059 00062 00067 const RDFParameter& operator = (const RDFParameter& rdf_parameter) 00068 ; 00069 00072 virtual void clear() 00073 ; 00074 00076 00079 00086 Position getIndex(Atom::Type type_i, Atom::Type type_j) const 00087 ; 00088 00094 const RadialDistributionFunction& getRDF(Atom::Type type_i, 00095 Atom::Type type_j) const 00096 ; 00097 00103 const RadialDistributionFunction& getRDF(Position index) const 00104 ; 00105 00107 00113 virtual bool extractSection(ForceFieldParameters& parameters, 00114 const String& section_name) 00115 ; 00116 00120 00128 bool hasRDF(Atom::Type solvent_atom_type, Atom::Type solute_atom_type) 00129 const ; 00130 00134 bool hasParameters(Atom::Type solvent_atom_type, 00135 Atom::Type solute_atom_type) const 00136 ; 00137 00139 00140 protected: 00141 00142 /*_ The vector containing all the read RDF representations */ 00143 std::vector<RadialDistributionFunction> rdf_list_; 00144 00145 /*_ This maps Atom:Types to Indices of rdf_list_ */ 00146 HashMap< Atom::Type, HashMap<Atom::Type, Position> > rdf_indices_; 00147 00148 00149 }; 00150 00151 } // namespace BALL 00152 #endif // BALL__RDFPARAMETER_H