00001 /*-*- mode: c++ -*- */ 00002 00014 #ifndef _Bins2DProfile_H_ 00015 #define _Bins2DProfile_H_ 00016 00017 #include "Bins2DBase.h" 00018 00019 #include "axes/Range.h" 00020 00021 class DataSource; 00022 00028 class MDL_HIPPOPLOT_API Bins2DProfile : public Bins2DBase 00029 { 00030 00031 protected: 00032 00035 std::vector<std::vector<double> > m_sumZ; 00036 00038 std::vector<std::vector<double> > m_variance; 00039 00042 Range m_z_range; 00043 00044 00045 public: 00046 00048 Bins2DProfile ( ); 00049 00051 Bins2DProfile( const Bins2DProfile & binner ); 00052 00054 virtual ~Bins2DProfile (); 00055 00058 BinsBase * clone () const; 00059 00060 virtual void setNumberOfBins ( hippodraw::Axes::Type axis, int nb ); 00061 00063 virtual void reset(); 00064 00066 virtual void accumulate( double x, double y, double z, double w = 1.0 ); 00067 00069 virtual double getZValue ( double x, double y ) const; 00070 00071 virtual NTuple * createNTuple () const; 00072 virtual void fillProjectedValues ( DataSource * ntuple ) const; 00073 virtual void fillDataSource ( DataSource * ntuple ) const; 00074 virtual void setBinContents ( const DataSource * ntuple ); 00075 00076 }; 00077 00078 #endif // _Bins2DProfile_H_