00001
00002
00014 #ifndef _Bins2DProfile_H_
00015 #define _Bins2DProfile_H_
00016
00017 #include "Bins2DBase.h"
00018
00019 #include "axes/Range.h"
00020
00021 namespace hippodraw {
00022
00023 class DataSource;
00024
00030 class MDL_HIPPOPLOT_API Bins2DProfile : public Bins2DBase
00031 {
00032
00033 protected:
00034
00037 std::vector<std::vector<double> > m_sumZ;
00038
00040 std::vector<std::vector<double> > m_variance;
00041
00044 Range m_z_range;
00045
00046
00047 public:
00048
00050 Bins2DProfile ( );
00051
00053 Bins2DProfile( const Bins2DProfile & binner );
00054
00056 virtual ~Bins2DProfile ();
00057
00060 BinsBase * clone () const;
00061
00062 virtual void setNumberOfBins ( hippodraw::Axes::Type axis, int nb );
00063
00065 virtual void reset();
00066
00068 virtual void accumulate( double x, double y, double z, double w = 1.0 );
00069
00071 virtual double getZValue ( double x, double y ) const;
00072
00073 virtual NTuple * createNTuple () const;
00074 virtual void fillDataSource ( DataSource * ntuple ) const;
00075 virtual void setBinContents ( const DataSource * ntuple );
00076
00077 };
00078
00079 }
00080
00081 #endif // _Bins2DProfile_H_