00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef TGO4FITMODELPOLYNOM_H
00017 #define TGO4FITMODELPOLYNOM_H
00018 #include "TArrayD.h"
00019 #include "TString.h"
00020 #include "TGo4FitModel.h"
00021
00051 class TGo4FitModelPolynom : public TGo4FitModel {
00052 public:
00053
00057 TGo4FitModelPolynom();
00058
00063 TGo4FitModelPolynom(const char* iName, Double_t iOrderX = 0.);
00064
00069 TGo4FitModelPolynom(const char* iName, Double_t iOrderX, Double_t iOrderY);
00070
00075 TGo4FitModelPolynom(const char* iName, Double_t iOrderX, Double_t iOrderY, Double_t iOrderZ);
00076
00081 TGo4FitModelPolynom(const char* iName, const TArrayD& iPolynomOrders);
00082
00086 virtual ~TGo4FitModelPolynom();
00087
00091 Double_t GetPolynomOrder(Int_t naxis);
00092
00096 Int_t GetMaxNumAxis();
00097
00101 Bool_t SetMaxNumAxis(Int_t numaxis);
00102
00106 virtual void Print(Option_t* option) const;
00107
00108 virtual Bool_t BeforeEval(Int_t NDimension);
00109 virtual Double_t EvalN(const Double_t* v);
00110 virtual void AfterEval();
00111
00112
00113 protected:
00114 TString GetOrderParName(Int_t naxis);
00115
00116
00117 private:
00118 void CreateOrdersPars(const Double_t* orders, Int_t startaxis, Int_t maxaxis, Int_t AtIndx = -1);
00119
00123 Int_t ndim;
00124
00125
00129 TArrayD* fxAllOrders;
00130
00131
00135 Double_t* orders;
00136
00137 ClassDef(TGo4FitModelPolynom,1)
00138 };
00139 #endif // TGO4FITMODELPOLYNOM_H
00140
00141