00001 /* -*- mode: c++ -*- */ 00002 00014 #ifndef _DyHist1DProjector_H_ 00015 #define _DyHist1DProjector_H_ 00016 00017 #include "Hist1DProjImp.h" 00018 #include "NTupleProjector.h" 00019 00020 namespace hippodraw { 00021 00022 class Range; 00023 00038 class MDL_HIPPOPLOT_API DyHist1DProjector : public Hist1DProjImp, 00039 public NTupleProjector 00040 { 00041 00042 private: 00043 00046 bool m_fixed; 00047 00048 protected: 00049 00052 DyHist1DProjector ( const DyHist1DProjector & projector ); 00053 00056 virtual void execute(); 00057 00062 virtual void changedNTuple(); 00063 00064 public: 00065 00067 DyHist1DProjector(); 00068 00071 virtual ProjectorBase * clone(); 00072 00077 virtual Range dataRangeOn ( hippodraw::Axes::Type axis ) const; 00078 00081 virtual double getPosOn ( hippodraw::Axes::Type axis ) const; 00082 00089 virtual const std::string & getYLabel ( bool density = false ) const; 00090 00092 virtual double getAverage ( hippodraw::Axes::Type axis ) const; 00093 00094 virtual bool isAxisBinned ( const std::string & axis ) const; 00095 00101 virtual void setBinnerRange ( hippodraw::Axes::Type axis, 00102 const Range & range, 00103 bool const_width ); 00104 00110 virtual void update ( const Observable * object ); 00111 00117 virtual void willDelete ( const Observable * object ); 00118 00120 virtual int getUnderflow () const; 00121 00123 virtual int getOverflow () const; 00124 00125 00126 }; 00127 00128 } // namespace hippodraw 00129 00130 #endif // _DyHist1DProjector_H_