00001 /* -*- mode: c++; -*- */ 00002 00014 #ifndef _ProfileProjector_H_ 00015 #define _ProfileProjector_H_ 00016 00017 #include "BinningProjector.h" 00018 #include "NTupleProjector.h" 00019 00020 namespace hippodraw { 00021 00035 class MDL_HIPPOPLOT_API ProfileProjector : public BinningProjector, 00036 public NTupleProjector 00037 { 00038 00039 protected: 00040 00042 ProfileProjector ( const ProfileProjector & projector ); 00043 00044 virtual void execute(); 00045 00049 virtual void changedNTuple(); 00050 00052 virtual void addPointReps (); 00053 00054 public: 00055 00057 ProfileProjector(); 00058 00061 ProjectorBase * clone(); 00062 00063 virtual Range valueRange () const; 00064 00067 virtual Range dataRangeOn ( hippodraw::Axes::Type ) const; 00068 00071 virtual double getPosOn ( hippodraw::Axes::Type axis ) const; 00072 00073 virtual bool isAxisBinned ( const std::string & axis ) const; 00074 00075 virtual void setRange ( hippodraw::Axes::Type axis, bool const_width ); 00076 00082 virtual void setBinnerRange ( hippodraw::Axes::Type axis, 00083 const Range & range, 00084 bool const_width ); 00085 00091 virtual void update ( const Observable * object ); 00092 00098 virtual void willDelete ( const Observable * object ); 00099 00100 }; 00101 00102 } // namespace hippodraw 00103 00104 #endif // _ProfileProjector_H_