00001 /*************************************************************************************************** 00002 ***** Copyright (C) 2005 John Schneiderman <JohnMS@member.fsf.org> ***** 00003 ***** ***** 00004 ***** This program is free software; you can redistribute it and/or modify ***** 00005 ***** it under the terms of the GNU General Public License as published by ***** 00006 ***** the Free Software Foundation; either version 2 of the License, or ***** 00007 ***** (at your option) any later version. ***** 00008 ***** ***** 00009 ***** This program is distributed in the hope that it will be useful, ***** 00010 ***** but WITHOUT ANY WARRANTY; without even the implied warranty of ***** 00011 ***** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ***** 00012 ***** GNU General Public License for more details. ***** 00013 ***** ***** 00014 ***** You should have received a copy of the GNU General Public License ***** 00015 ***** along with this program; if not, write to the Free Software ***** 00016 ***** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ***** 00017 ***************************************************************************************************/ 00018 #ifndef HIST_H_ 00019 #define HIST_H_ 00020 00021 #include <vector> 00022 using std::vector; 00023 #include <string> 00024 using std::string; 00025 00026 class ConfParser; 00027 class Cluster; 00028 00034 class BaseHistogram 00035 { 00036 public: 00043 BaseHistogram(double min, double max, int bins); 00048 vector<int> histogramBins() const; 00053 int pullingInterval() const; 00058 void setPullingInterval(int interval); 00063 virtual void acquire(const Cluster& cluster)=0; 00069 virtual void write(int numAtoms, string base_name)=0; 00073 void clear(); 00074 00075 protected: 00079 vector<int> m_histogramBin; 00083 double m_min; 00087 double m_max; 00091 int m_bins; 00095 int m_numberHistogramsTaken; 00099 int m_pullingInterval; 00100 }; 00101 #endif