00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef TGO4FITMODELFROMDATA_H
00015 #define TGO4FITMODELFROMDATA_H
00016
00017 #include "TGo4FitModel.h"
00018
00019 #include "TGo4FitSlot.h"
00020
00021 class TGo4FitData;
00022 class TH1;
00023
00041 class TGo4FitModelFromData : public TGo4FitModel {
00042 public:
00043
00047 TGo4FitModelFromData();
00048
00053 TGo4FitModelFromData(const char* iName, TGo4FitData* iDataAsModel = 0, Bool_t Amplitude = kTRUE);
00054
00060 TGo4FitModelFromData(const char* iName, TH1*, Bool_t iOwned = kFALSE, Bool_t Amplitude = kTRUE);
00061
00065 ~TGo4FitModelFromData();
00066
00070 TGo4FitData* GetDataAsModel() const;
00071
00075 void SetDataAsModel(TGo4FitData* iData, Bool_t iOwned);
00076
00080 virtual void FillSlotList(TSeqCollection* list);
00081
00085 virtual void Print(Option_t* option) const;
00086
00087 virtual Bool_t BeforeEval(Int_t);
00088 virtual Double_t EvalN(const Double_t* v) { return 0; }
00089
00090 virtual Double_t EvaluateAtPoint(TGo4FitData* data, Int_t nbin, Bool_t UseRanges = kTRUE);
00091 virtual Double_t EvaluateAtPoint(TGo4FitDataIter* iter, Bool_t UseRanges = kTRUE);
00092 virtual void AfterEval();
00093
00094 protected:
00095
00099 virtual Bool_t Initialize(Int_t UseBuffers = -1);
00100
00101 Double_t FindDataPoint(Int_t NumIndexes, const Int_t* Indexes);
00102
00103
00108 TGo4FitSlot fxData;
00109
00110 private:
00111 TGo4FitDataIter* fxIter;
00112
00113 ClassDef(TGo4FitModelFromData,1)
00114 };
00115 #endif // TGO4FITMODELFROMDATA_H