00001 /* -*- mode: c++ -*- */ 00002 00014 #ifndef _Bins1DProfile_H_ 00015 #define _Bins1DProfile_H_ 00016 00017 #include "Bins1DBase.h" 00018 00019 class DataSource; 00020 00029 class MDL_HIPPOPLOT_API Bins1DProfile : public Bins1DBase 00030 { 00031 private: 00032 00036 std::vector<double> m_sum; 00037 00041 std::vector<double> m_sumsq; 00042 00045 std::vector<int> m_num; 00046 00048 double m_high; 00049 00050 virtual void resize ( int number ); 00051 00052 public: 00053 00055 Bins1DProfile (); 00056 00058 Bins1DProfile ( const Bins1DProfile & binner ); 00059 00061 virtual ~Bins1DProfile (); 00062 00065 BinsBase * clone () const; 00066 00068 double maxBin(); 00069 00071 double minBin(); 00072 00074 virtual void reset(); 00075 00080 virtual void accumulate ( double x, double y, 00081 double w = 1.0, double dummy = 0.0 ); 00082 00083 /* implement pure virtual member functions in base. */ 00084 virtual int getNumberOfEntries () const; 00085 00086 /* implement pure virtual member functions in base. */ 00087 virtual int getNumberOfEntries ( int i ) const; 00088 00089 virtual NTuple * createNTuple () const; 00090 virtual void fillProjectedValues ( DataSource * ntuple ) const; 00091 virtual void fillDataSource ( DataSource * ntuple ) const; 00092 virtual void setBinContents ( const DataSource * ntuple ); 00093 00094 }; 00095 00096 #endif // _Bins1DProfile_H_