00001
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 }
00103
00104 #endif // _ProfileProjector_H_