00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef TGO4FITMODELFROMDATA_H
00017 #define TGO4FITMODELFROMDATA_H
00018
00019 #include "TGo4FitModel.h"
00020
00021 #include "TGo4FitSlot.h"
00022
00023 class TGo4FitData;
00024 class TH1;
00025
00043 class TGo4FitModelFromData : public TGo4FitModel {
00044 public:
00045
00049 TGo4FitModelFromData();
00050
00055 TGo4FitModelFromData(const char* iName, TGo4FitData* iDataAsModel = 0, Bool_t Amplitude = kTRUE);
00056
00062 TGo4FitModelFromData(const char* iName, TH1*, Bool_t iOwned = kFALSE, Bool_t Amplitude = kTRUE);
00063
00067 ~TGo4FitModelFromData();
00068
00072 TGo4FitData* GetDataAsModel() const;
00073
00077 void SetDataAsModel(TGo4FitData* iData, Bool_t iOwned);
00078
00082 virtual void FillSlotList(TSeqCollection* list);
00083
00087 virtual void Print(Option_t* option) const;
00088
00089 virtual Bool_t BeforeEval(Int_t);
00090 virtual Double_t EvalN(const Double_t* v) { return 0; }
00091
00092 virtual Double_t EvaluateAtPoint(TGo4FitData* data, Int_t nbin, Bool_t UseRanges = kTRUE);
00093 virtual Double_t EvaluateAtPoint(TGo4FitDataIter* iter, Bool_t UseRanges = kTRUE);
00094 virtual void AfterEval();
00095
00096 protected:
00097
00101 virtual Bool_t Initialize(Int_t UseBuffers = -1);
00102
00103 Double_t FindDataPoint(Int_t NumIndexes, const Int_t* Indexes);
00104
00105
00110 TGo4FitSlot fxData;
00111
00112 private:
00113 TGo4FitDataIter* fxIter;
00114
00115 ClassDef(TGo4FitModelFromData,1)
00116 };
00117 #endif // TGO4FITMODELFROMDATA_H
00118
00119