00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: RDFIntegrator.h,v 1.20 2005/12/23 17:02:01 amoll Exp $ 00005 // 00006 00007 #ifndef BALL_STRUCTURE_RDFINTEGRATOR_H 00008 #define BALL_STRUCTURE_RDFINTEGRATOR_H 00009 00010 #ifndef BALL_STRUCTURE_RADIALDISTRIBUTIONFUNCTION_H 00011 # include <BALL/STRUCTURE/radialDistributionFunction.h> 00012 #endif 00013 00014 namespace BALL 00015 { 00021 class BALL_EXPORT RDFIntegrator 00022 { 00023 public: 00024 00025 BALL_CREATE(RDFIntegrator) 00026 00027 00030 00033 RDFIntegrator() 00034 ; 00035 00039 RDFIntegrator(const RDFIntegrator& integrator) 00040 ; 00041 00045 RDFIntegrator(const RadialDistributionFunction& rdf) 00046 ; 00047 00050 virtual ~RDFIntegrator() 00051 ; 00052 00054 00057 00062 const RDFIntegrator& operator = (const RDFIntegrator& integrator) 00063 ; 00064 00067 virtual void clear() 00068 ; 00069 00071 00072 00073 00078 bool operator == (const RDFIntegrator& integrator) const 00079 ; 00080 00084 virtual bool isValid() const 00085 ; 00086 00088 00089 00090 00095 void setRDF(const RadialDistributionFunction& rdf) 00096 ; 00097 00101 const RadialDistributionFunction& getRDF() const 00102 ; 00103 00110 virtual double operator () (double x) const 00111 ; 00112 00114 00115 protected: 00116 00117 //_ The radial distribution function which is to be integrated. 00118 RadialDistributionFunction rdf_; 00119 00120 /*_ A flag indicating validity of this instance. A sole RDFIntegrator 00121 instance cannot be valid, because it does not have any information 00122 about the potential for which it should be the integrating means. 00123 This flag is provided for derived classes. 00124 */ 00125 bool valid_; 00126 00127 }; 00128 00129 } 00130 #endif // BALL_STRUCTURE_RDFINTEGRATOR_H