00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CINT__
00020
00021 #include "TH1.h"
00022 #include "TFile.h"
00023 #include "TApplication.h"
00024
00025 #include "../Go4Fit/TGo4Fitter.h"
00026 #include "../Go4Fit/TGo4FitModelFunction.h"
00027 #include "../Go4Fit/TGo4FitModelFormula.h"
00028
00029 void Example2();
00030
00031 int main(int argc, char **argv) {
00032
00033 TApplication theApp("Application", 0, 0);
00034
00035 Example2();
00036
00037 theApp.Run();
00038
00039 return 0;
00040 }
00041
00042 #endif
00043
00044
00045 TH1D* GetHistogram(const char* HistogramName) {
00046 TFile f1("histograms.root");
00047 TH1D* histo = (TH1D*) f1.Get(HistogramName);
00048 histo->SetDirectory(0);
00049 return histo;
00050 }
00051
00052 void Example2() {
00053
00054 TGo4Fitter fitter("Fitter", TGo4Fitter::ff_ML_Poisson, kTRUE);
00055
00056
00057 fitter.AddH1("data1", GetHistogram("hDeg120_P_c"), kTRUE, 2200., 2900.);
00058
00059
00060 fitter.AddPolynomX( "data1", "Pol", 1);
00061
00062
00063 TGo4FitModel* model1 = fitter.AddModel( "data1",
00064 new TGo4FitModelFunction("Gauss1","Example2Func.so","gaussian",2,kTRUE) );
00065 TGo4FitModel* model2 = fitter.AddModel( "data1",
00066 new TGo4FitModelFormula("Gauss2", "exp(-0.5*(x-Pos)*(x-Pos)/Width/Width)",2,kTRUE));
00067
00068
00069 model1->SetParsNames("Ampl","Pos","Width");
00070 model2->SetParsNames("Ampl","Pos","Width");
00071
00072
00073 model1->SetParsValues(1.,2553.,15.);
00074 model2->SetParsValues(1.,2672.,15.);
00075
00076
00077 fitter.DoActions();
00078
00079
00080 fitter.Print("Pars");
00081
00082
00083 fitter.Draw("#data1,Background,Gauss1,Gauss2");
00084
00085 }
00086
00087