00001 /* -*- mode: c++ -*- */ 00002 00014 #ifndef _StHist2DProjector_H_ 00015 #define _StHist2DProjector_H_ 00016 00017 #include "projectors/Hist2DProjImp.h" 00018 00027 class MDL_HIPPOPLOT_API StHist2DProjector : public Hist2DProjImp 00028 { 00029 00030 private: 00031 00033 std::string m_title; 00034 00037 std::string m_x_label; 00038 00041 std::string m_y_label; 00042 00046 std::string m_z_label; 00047 00048 public: 00049 00051 StHist2DProjector(); 00052 00054 StHist2DProjector( const StHist2DProjector & projector ); 00055 00058 ProjectorBase * clone(); 00059 00063 bool isEmpty () const; 00064 00071 virtual Range dataRangeOn ( hippodraw::Axes::Type axis ) const; 00072 00075 virtual double getPosOn ( hippodraw::Axes::Type axis ) const; 00076 00079 virtual bool isAxisBinned ( const std::string & axis ) const; 00080 00083 const std::string & getXLabel () const; 00084 00088 const std::string & getYLabel ( bool flag = false ) const; 00089 00093 const std::string & getZLabel ( bool flag = false ) const; 00094 00096 void setYLabel (); 00097 00099 virtual double getAverage ( hippodraw::Axes::Type axis ) const; 00100 00101 /* The following need to be implemented. */ 00102 virtual const std::string & getTitle() const; 00103 virtual int getNumberOfEntries () const; 00104 00110 virtual void addValues ( const std::vector < double > & v ); 00111 00118 virtual void setBinnerRange ( hippodraw::Axes::Type axis, 00119 const Range & range, 00120 bool const_width ); 00121 00122 }; 00123 00124 #endif // _StHist2DProjector_H_