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