void fitting(){ auto f = new TFile ("histossss.root"); TH1D *k1 = (TH1D*)f->Get("notrigger"); std::vector TriggerCut = {"J20", "J40", "J50", "J75", "J100"}; int n = TriggerCut.size(); TGraphAsymmErrors *eff[n]; TH1D *h[n]; for (unsigned i = 0; i < n; i++) { f->GetObject(TString::Format("%s", TriggerCut[i].c_str()) , h[i]); eff[i] = new TGraphAsymmErrors(); eff[i]->Divide(h[i], k1); eff[i]->SetNameTitle("eff", "Trigger Efficiency"); if (i == 0) eff[i]->SetLineColor(kRed-7); else if (i == 1) eff[i]->SetLineColor(kBlue+3); else if (i == 2) eff[i]->SetLineColor(kViolet+7); else if (i == 3) eff[i]->SetLineColor(kAzure+7); else eff[i]->SetLineColor(kGreen+1); if (i==0) eff[i]->Draw("ap"); else eff[i]->Draw("p same"); } auto histEff = (TH1*) h[0]->Clone(); histEff->Reset(); for (int j = 0; j < eff[0]->GetN(); ++j) { int bin = histEff->FindBin( eff[0]->GetX()[j] ); histEff->SetBinContent( bin, eff[0]->GetY()[j] ); } double x_min = histEff->GetXaxis()->GetBinLowEdge(histEff->FindFirstBinAbove(0)); double x_max = histEff->GetXaxis()->GetBinUpEdge(histEff->FindFirstBinAbove(1)-1); auto fit = new TF1("sigm", "(1/(1+ TMath::Exp(-[0]*(x-[1]))))", x_min, x_max); fit->SetParameters(0.2, 50); histEff->Fit("sigm", "R"); }