00001 /* -*- mode: c++ -*- */ 00002 00014 #ifndef _FunctionRep_H_ 00015 #define _FunctionRep_H_ 00016 00017 #include "DataRep.h" 00018 00019 class Fitter; 00020 class FunctionBase; 00021 class FunctionProjector; 00022 class TupleCut; 00023 00036 class MDL_HIPPOPLOT_API FunctionRep : public DataRep 00037 { 00038 00039 private: 00040 00045 DataRep * m_target; 00046 00049 FunctionRep ( const FunctionRep & ); 00050 00051 public: 00052 00056 FunctionRep ( const std::string & name, DataRep * rep ); 00057 00058 FunctionRep ( FunctionBase * function, DataRep * rep ); 00059 00063 virtual ~FunctionRep (); 00064 00067 virtual DataRep * clone (); 00068 00071 void initializeWith ( DataRep * ); 00072 00075 virtual bool hasNTupleBindings () const; 00076 00079 bool isComposite () const; 00080 00082 FunctionBase * getFunction () const; 00083 00085 DataRep * getTarget () const; 00086 00089 void setTarget ( DataRep * rep ); 00090 00093 void setFitter ( Fitter * fitter ); 00094 00096 Fitter * getFitter ( ) const; 00097 00099 const std::string & getFitterName () const; 00100 00103 bool fitFunction ( ); 00104 00107 const std::vector < std::string > & parmNames () const; 00108 00112 const std::vector < int > & getFixedFlags () const; 00113 00115 const std::vector < double > & parameters () const; 00116 00118 const std::vector< double > & principleErrors() const; 00119 00121 void saveParameters (); 00122 00124 void restoreParameters (); 00125 00127 void setParameters ( const std::vector<double> & params ); 00128 00131 void setFixedFlags ( const std::vector < int > & flags ); 00132 00134 void update ( const Observable * observed ); 00135 00138 void willDelete ( const Observable * observed ); 00139 00143 virtual bool isTargetable () const; 00144 00145 virtual bool hasAxis ( hippodraw::Axes::Type ) const; 00146 00149 void setCutRange ( const Range & ); 00150 00153 void setCutRange ( bool yes = true ); 00154 00155 }; 00156 00157 #endif // _FunctionRep_H_