#include #include #include "TRandom.h" // // void fit_IndiceDiRifrazionePrisma(string dataFile="SIMUL") { static const Double_t degtorad = 0.017453293; static const Double_t radtodeg = 57.29577951; string fileNameString = ""; if (dataFile=="") { std::cout<<"Select an input data file as argument \n Example: \n root[0] .x fit_IndiceDiRifrazionePrisma.C(\"mydata.data\"); \n Otherwise \n root[0] .x fit_IndiceDiRifrazionePrisma.C(\"TEST\") to run this macro on test data"<Reset(); //c1 = new TCanvas("c1","Efficiency plateau",200,10,700,500); c1 = new TCanvas("c1","Punti Coniugati di una Lente Sottile"); gPad->SetFillColor(0); gPad->SetGrid(); gPad->GetFrame()->SetFillColor(21); gPad->GetFrame()->SetBorderSize(12); gStyle->SetOptFit(1112); // Reading input data file (x, dx, y, dy) char* fileName = fileNameString.c_str(); cout<<" *** Reading data from file <"<"<> xvar >> yvar >> dxvar >> dyvar; if (!inputFile.good()) break; cout<<" measurement n. "<SetTitle(MyTitle.c_str()); gr->SetMarkerColor(4); gr->SetMarkerStyle(20); gr->SetMarkerSize(1); gr->GetXaxis()->SetTitle("Angolo di incidenza / deg"); gr->GetYaxis()->SetTitle("Angolo di deviazione / deg"); //gr->Draw("ALP"); gr->Draw("AP"); cout<<" ************************************************* Plot drawn "<SetParameter(0,60.); f1->SetParameter(1,1.5); // fissiamo dei limiti per i valori del parametri //f1->SetParLimits(0,5.,20.); f1->SetLineColor(kRed); //f1->Draw("L"); // return; //fitta entro il range (opzione "R") specificato nella definizione della funzione gr->Fit("f1","R"); cout<<" ************************************************* Fit done "<Update(); } void simul_Data() { static const Double_t degtorad = 0.017453293; static const Double_t radtodeg = 57.29577951; std::string fileNameString = "simulation_prisma.dat"; char* fileName = fileNameString.c_str(); cout<<" *** simulating data in file <"<"<Gaus(); nsig_y = gRandom->Gaus(); delta = myfunction(x, par); x[0] = x[0] + nsig_x * sigma_x; delta = delta + nsig_y * sigma_y; std::cout<