RDFParameter.h

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