00001
00002
00014 #ifndef _FunctionRep_H_
00015 #define _FunctionRep_H_
00016
00017 #include "DataRep.h"
00018
00019 namespace hippodraw {
00020
00021 class Fitter;
00022 class FunctionBase;
00023 class FunctionParameter;
00024
00034 class MDL_HIPPOPLOT_API FunctionRep
00035 : public hippodraw::DataRep
00036 {
00037
00038 private:
00039
00043 bool m_in_composite;
00044
00045 protected:
00046
00051 DataRep * m_target;
00052
00055 FunctionRep ( FunctionBase * function, DataRep * rep );
00056
00059 FunctionRep ( const FunctionRep & );
00060
00061 public:
00062
00066 virtual ~FunctionRep ();
00067
00070 virtual DataRep * clone ();
00071
00074 void initializeWith ( DataRep * );
00075
00078 virtual bool hasNTupleBindings () const;
00079
00083 bool isComposite () const;
00084
00087 bool isInComposite () const;
00088
00091 void setInComposite ( bool yes );
00092
00094 FunctionBase * getFunction () const;
00095
00097 DataRep * getTarget () const;
00098
00101 void setTarget ( DataRep * rep );
00102
00106 bool setFitter ( Fitter * fitter );
00107
00109 Fitter * getFitter ( ) const;
00110
00112 const std::string & getFitterName () const;
00113
00116 bool fitFunction ( );
00117
00120 double objectiveValue () const;
00121
00125 const std::vector < std::vector < double > > & covarianceMatrix () const;
00126
00130 int degreesOfFreedom () const;
00131
00134 const std::vector < std::string > & parmNames () const;
00135
00139 const std::vector < int > & getFixedFlags () const;
00140
00142 const std::vector < double > & parameters () const;
00143
00145 const std::vector< double > & principleErrors() const;
00146
00149 void setPrincipleErrors ( std::vector < double >::const_iterator begin,
00150 std::vector < double >::const_iterator end );
00151
00153 void saveParameters ();
00154
00156 void restoreParameters ();
00157
00159 void setParameters ( const std::vector<double> & params );
00160
00163 virtual void setFixedFlags ( const std::vector < int > & flags );
00164
00167 void willDelete ( const Observable * observed );
00168
00172 virtual bool isTargetable () const;
00173
00176 void setCutRange ( const Range & );
00177
00180 void setTupleCut ();
00181
00184 void removeCut ();
00185
00188 void setCutRange ( bool yes = true );
00189
00193 bool hasZoomY () const;
00194
00197 void setIgnoreError(bool ignore);
00198
00203 bool getIgnoreErrors() const;
00204
00208 virtual
00209 void fillFunctionParameters ( std::vector < FunctionParameter > & ) const;
00210
00214 virtual void addToComposite ( FunctionRep * frep );
00215
00219 virtual void removeFromComposite ( FunctionRep * frep );
00220
00223 const std::string & functionName () const;
00224
00225 };
00226
00227 }
00228
00229 #endif // _FunctionRep_H_