//makro do narysowania liczby kwantow gamma //w zaleznosci od grubosci absorbenta //dodatkowo dopasowanie funkcji exp() { gROOT->Reset(); //deklarujemy tablice danych x-grubosc absorbenta //y - liczba kwantow gamma //ex, ey - odpowiednie niepewnosci tych wartosci //8 - oznacza ile bedzie takich par xy double x[8]={2, 5, 7, 10, 12, 15, 17, 20}; double y[8]={1420, 1154, 946, 822, 712, 625, 543, 447}; double ex[8]={0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01}; double ey[8]={38.8, 35.1, 32.1, 30.1, 28.2, 26.6, 25, 23}; //deklarujemy wskaznik do obiektu klasy TGraphErrors TGraphErrors *gr = new TGraphErrors(8,x,y,ex,ey); //teraz opcje zeby rysunek ladniej wygladal gr->SetMarkerColor(9); //kolor markera gr->SetMarkerStyle(22); //typ punktow gr->SetLineColor(1); //ewentualny kolor linii gr->SetTitle("oslabienie promieniowania gamma"); gr->GetXaxis()->SetTitle("x (mm)"); gr->GetYaxis()->SetTitle("N"); gr->Draw("AP"); //teraz dopasowujemy krzywa o rownaniu: //N(x)=N0*exp(-miu*x) //deklarujemy funkcje o dwoch parametrach [0] i [1] //i zakresie od 0 do 22: TF1 *fun = new TF1("fun","[0]*exp(-[1]*x)",0,22); fun->SetParameter(0,1.00); //ustawiamy poczatkowe wartosci parametrow wolnych: [0] fun->SetParameter(1,1.00); //oraz [1] //mozna tez zrobic ladniejsza krzywa: fun->SetLineColor(2); fun->SetLineStyle(2); fun->SetLineWidth(4); gr->Fit("fun","",""); //ta komenda dopasowujemy funkcje fun //do punktow zawartych w gr //parametry dopasowania wypisuja sie na ekranie //ale mozna wypisac je dodatkowo: double N0=fun->GetParameter(0); double miu=fun->GetParameter(1); double erN0=fun->GetParError(0); double ermiu=fun->GetParError(1); double chi2ndf=fun->GetChisquare()/fun->GetNDF(); cout<<"*****************************"<GetChisquare()<GetNumberFitPoints()<GetNumberFreeParameters()<GetNDF()<