#include Double_t myfunction(Double_t *x, Double_t *par) { // par(0) -> asymptotic efficiency // par(1) -> HV of 50% of asymptotic efficiency // par(2) -> HV of 90% - HV of 10% of asymptotic efficiency Double_t plat=par[0]/( 1.+ 81.**( (par[1]-x[0])/par[2] ) ); return plat; } void fitplateau(string Id="1") { cout<<"\n ****************** processing scintillator "<Reset(); //c1 = new TCanvas("c1","Efficiency plateau",200,10,700,500); c1 = new TCanvas("c1","Efficiency plateau"); gPad->SetFillColor(0); gPad->SetGrid(); gPad->GetFrame()->SetFillColor(21); gPad->GetFrame()->SetBorderSize(12); gStyle->SetOptFit(1112); string fileNameString = "../data/hv_scintillatore"+Id+".txt"; char* fileName = fileNameString.c_str(); cout<<" *************************************** reading from file "<> vth >> triple >> quadruple >> singole; if (!inputFile.good()) break; Float_t eff = quadruple/triple; Float_t deff = sqrt(eff*(1.-eff)/triple); //cout<<"reading from file "<SetTitle(MyTitle.c_str()); gr->SetMarkerColor(4); gr->SetMarkerStyle(21); gr->GetXaxis()->SetTitle("HV / kV"); gr->GetYaxis()->SetTitle("efficiency"); //gr->Draw("ALP"); gr->Draw("AP"); cout<<" ************************************************* Plot drawn "<SetParameter(0,1.); f1->SetParameter(1,1.246); f1->SetParLimits(1,1.1,1.3); f1->SetParameter(2,0.1875); //f1->SetParLimits(2,0.05,0.195); f1->SetLineColor(kRed); //f1->Draw("L"); //fitta entro il range (opzione "R") specificato nella definizione della funzione gr->Fit("f1","R"); cout<<" ************************************************* Fit done "<Update(); }