June 2, 2024, Sunday, 153

KADD 2020 Laboratorium 12

From Łukasz Graczykowski

Revision as of 08:52, 18 May 2020 by Lgraczyk (Talk | contribs)
Jump to: navigation, search

Zadanie

Dopasowanie funkcji za pomocą paietu MINUIT (5 pkt.)

Chcemy wykonać dopasowanie do danych doświadczalnych (wczytywanych z pliku) nie używając funkci Fit, tylko za pomocą pakietu MINUIT (dokumentacja), który daje nam zdecydowanie większą kontrolę nad procesem dopasowania funkcji.

Kroki postępowania

1. Ściągamy plik z danymi: example_data.root

2. Do naszych danych dopasujemy taką oto funkcję (nasz model opisujący dane doświadczalne):

double model(double x, double *par) 
{ 
 double mu    = par[3]; 
 double sigma = par[4]; 
 double norm  = 1./sqrt(2.*TMath::Pi())/sigma; 
 double G     = norm*exp(-0.5 *pow((x-mu)/sigma,2));  //unormowana funkcja Gaussa
 double BinWidth = hist->GetBinWidth(1); 
 return par[0] + par[1]*x + par[2] * BinWidth * G; 
}

3. Tworzymy obiekt TMinuit, przykładowo:

 TMinuit *gMinuit = new TMinuit(5);

Wynik

Przykłądowy histogram z dopasowaniem: Minuit1.png

Ostateczny output:

FCN=93.6468 FROM MINOS     STATUS=SUCCESSFUL    217 CALLS         364 TOTAL
                     EDM=3.79962e-17    STRATEGY= 1  ERROR MATRIX UNCERTAINTY   0.0 per cent
  EXT PARAMETER                  PARABOLIC         MINOS ERRORS        
  NO.   NAME      VALUE            ERROR      NEGATIVE      POSITIVE   
   1  p0           1.12163e+02   2.00576e+00  -2.00605e+00   2.00576e+00
   2  p1          -3.33062e+01   1.52150e+00  -1.52151e+00   1.52153e+00
   3  area         2.02070e+03   5.83151e+01  -5.82593e+01   5.83721e+01
   4  mean         1.00031e+00   1.70385e-03  -1.70425e-03   1.70425e-03
   5  width        5.34156e-02   1.50983e-03  -1.49782e-03   1.52309e-03
Info in <TCanvas::MakeDefCanvas>:  created default TCanvas with name c1