00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef TGO4FITMODELPOLYNOM_H
00017 #define TGO4FITMODELPOLYNOM_H
00018
00019 #include "TGo4FitModel.h"
00020
00021 class TArrayD;
00022
00052 class TGo4FitModelPolynom : public TGo4FitModel {
00053 public:
00054
00058 TGo4FitModelPolynom();
00059
00064 TGo4FitModelPolynom(const char* iName, Double_t iOrderX = 0.);
00065
00070 TGo4FitModelPolynom(const char* iName, Double_t iOrderX, Double_t iOrderY);
00071
00076 TGo4FitModelPolynom(const char* iName, Double_t iOrderX, Double_t iOrderY, Double_t iOrderZ);
00077
00082 TGo4FitModelPolynom(const char* iName, const TArrayD& iPolynomOrders);
00083
00087 virtual ~TGo4FitModelPolynom();
00088
00092 Double_t GetPolynomOrder(Int_t naxis);
00093
00097 Int_t GetMaxNumAxis();
00098
00102 Bool_t SetMaxNumAxis(Int_t numaxis);
00103
00107 virtual void Print(Option_t* option) const;
00108
00109 virtual Bool_t BeforeEval(Int_t NDimension);
00110 virtual Double_t EvalN(const Double_t* v);
00111 virtual void AfterEval();
00112
00113
00114 protected:
00115 TString GetOrderParName(Int_t naxis);
00116
00117
00118 private:
00119 void CreateOrdersPars(const Double_t* orders, Int_t startaxis, Int_t maxaxis, Int_t AtIndx = -1);
00120
00124 Int_t Par_ndim;
00125
00126
00130 TArrayD* fxAllOrders;
00131
00132
00136 Double_t* Par_orders;
00137
00138 ClassDef(TGo4FitModelPolynom,1)
00139 };
00140 #endif // TGO4FITMODELPOLYNOM_H
00141
00142