00001 /* -*- mode: c++ -*- */ 00002 00014 #ifndef _DyHist2DProjector_H_ 00015 #define _DyHist2DProjector_H_ 00016 00017 #include "Hist2DProjImp.h" 00018 #include "NTupleProjector.h" 00019 00020 namespace hippodraw { 00021 00033 class MDL_HIPPOPLOT_API DyHist2DProjector : public Hist2DProjImp, 00034 public NTupleProjector 00035 { 00036 00037 private: 00038 00040 std::string m_z_label_entries; 00041 00043 std::string m_z_label_density; 00044 00046 mutable Range m_value_range; 00047 00048 protected: 00049 00051 DyHist2DProjector ( const DyHist2DProjector & projector ); 00052 00057 virtual void changedNTuple(); 00058 00059 public: 00060 00062 DyHist2DProjector(); 00063 00066 ProjectorBase * clone(); 00067 00070 void execute(); 00071 00074 virtual Range dataRangeOn ( hippodraw::Axes::Type ) const; 00075 00078 virtual double getPosOn ( hippodraw::Axes::Type axis ) const; 00079 00080 virtual const Range & setBinWidth ( hippodraw::Axes::Type axis, 00081 int parm, 00082 bool dragging ); 00083 00084 virtual void setOffset ( const std::string & axis, 00085 int parm, 00086 bool dragging ); 00087 00090 virtual bool isAxisBinned ( const std::string & axis ) const; 00091 00097 virtual void setBinnerRange ( hippodraw::Axes::Type axis, 00098 const Range & range, 00099 bool const_width ); 00100 00106 virtual void update ( const Observable * object ); 00107 00113 virtual void willDelete ( const Observable * object ); 00114 00115 }; 00116 00117 } // namespace hippodraw 00118 00119 #endif // _DyHist2DProjector_H_