00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef TGO4FITMODELPOLYNOM_H
00015 #define TGO4FITMODELPOLYNOM_H
00016
00017 #include "TGo4FitModel.h"
00018
00019 class TArrayD;
00020
00050 class TGo4FitModelPolynom : public TGo4FitModel {
00051 public:
00052
00056 TGo4FitModelPolynom();
00057
00062 TGo4FitModelPolynom(const char* iName, Double_t iOrderX = 0.);
00063
00068 TGo4FitModelPolynom(const char* iName, Double_t iOrderX, Double_t iOrderY);
00069
00074 TGo4FitModelPolynom(const char* iName, Double_t iOrderX, Double_t iOrderY, Double_t iOrderZ);
00075
00080 TGo4FitModelPolynom(const char* iName, const TArrayD& iPolynomOrders);
00081
00085 virtual ~TGo4FitModelPolynom();
00086
00090 Double_t GetPolynomOrder(Int_t naxis);
00091
00095 Int_t GetMaxNumAxis();
00096
00100 Bool_t SetMaxNumAxis(Int_t numaxis);
00101
00105 virtual void Print(Option_t* option) const;
00106
00107 virtual Bool_t BeforeEval(Int_t NDimension);
00108 virtual Double_t EvalN(const Double_t* v);
00109 virtual void AfterEval();
00110
00111
00112 protected:
00113 TString GetOrderParName(Int_t naxis);
00114
00115
00116 private:
00117 void CreateOrdersPars(const Double_t* orders, Int_t startaxis, Int_t maxaxis, Int_t AtIndx = -1);
00118
00122 Int_t Par_ndim;
00123
00124
00128 TArrayD* fxAllOrders;
00129
00130
00134 Double_t* Par_orders;
00135
00136 ClassDef(TGo4FitModelPolynom,1)
00137 };
00138 #endif // TGO4FITMODELPOLYNOM_H