00001 // @(#)root/minuit2:$Id: TFitterFumili.h 22730 2008-03-19 10:22:46Z moneta $ 00002 // Author: L. Moneta 10/2005 00003 00004 /********************************************************************** 00005 * * 00006 * Copyright (c) 2005 ROOT Foundation, CERN/PH-SFT * 00007 * * 00008 **********************************************************************/ 00009 00010 #ifndef ROOT_TFitterFumili_H_ 00011 #define ROOT_TFitterFumili_H_ 00012 00013 00014 #ifndef ROOT_TVirtualFitter 00015 #include "TVirtualFitter.h" 00016 #endif 00017 00018 #include "TFitterMinuit.h" 00019 00020 /** 00021 TVirtualFitter implementation for new Fumili 00022 */ 00023 00024 00025 class TFitterFumili : public TFitterMinuit { 00026 00027 public: 00028 00029 TFitterFumili(); 00030 00031 TFitterFumili(Int_t maxpar); 00032 00033 virtual ~TFitterFumili(); 00034 00035 public: 00036 00037 //inherited interface 00038 virtual Double_t Chisquare(Int_t npar, Double_t *params) const; 00039 00040 00041 //virtual FunctionMinimum Minimize( int nfcn = 0, double edmval = 0.1) const; 00042 00043 00044 00045 00046 protected: 00047 00048 void CreateMinimizer(EMinimizerType ); 00049 00050 void CreateChi2FCN(); 00051 00052 void CreateChi2ExtendedFCN(); 00053 00054 void CreateUnbinLikelihoodFCN() {} 00055 00056 void CreateBinLikelihoodFCN(); 00057 00058 private: 00059 00060 00061 00062 ClassDef(TFitterFumili,1) // Fitter based on new Fumili method (Fumili2) 00063 }; 00064 00065 R__EXTERN TFitterFumili* gFumili2; 00066 00067 00068 #endif //ROOT_TFitterFumili_H_