void efficiency() { Int_t n = 7; Double_t x[7] = {0.5,1.5,2.5,3.5,4.5,5.5,6.5}; Double_t ex[7] ={0,0,0,0,0,0,0}; Double_t y1[7] = {0.97,0.96,0.92,0.89,0.87,0.87,0.94}; Double_t ey1[7] = {0.0008,0.0004,0.0005,0.0005,0.0005,0.0005,0.0005}; TGraph *gr1 = new TGraphErrors(n,x,y1,ex,ey1); gr1->SetMarkerStyle(20); gr1->SetMarkerColor(kBlue); gr1->SetLineColor(4); gr1->SetLineWidth(2); //gr1->GetYaxis()->SetRangeUser(0,1); //gr1->GetXaxis()->SetRangeUser(0,3); TEfficiency* pEff = new TEfficiency("eff","my efficiency;x;Efficiency",7,0,3); TFile* f= new TFile("for_tefficiency_0.1.root","read"); TH1F *h1; TH1F *h2; h1 = (TH1F*)f->Get("Num_p"); h2 = (TH1F*)f->Get("Den_p"); TFile* pFile = new TFile("myfile.root","recreate"); if(TEfficiency::CheckConsistency(*h1,*h2)) { pEff = new TEfficiency(*h1,*h2); pEff->Write(); pEff->Draw(); } //Removes the x error bars gPad->Update(); TGraph *gr2 = (TGraphAsymmErrors*) pEff->GetPaintedGraph()->Clone(); for (int i = 0; i < gr2->GetN(); ++i) { gr2->GetEXlow()[i] = 0; gr2->GetEXhigh()[i] = 0; } gr2->Draw("AP"); gr2->SetMarkerStyle(20); gr2->SetMarkerColor(kRed); gr2->SetLineColor(2); gr2->SetLineWidth(2); //gr2->GetYaxis()->SetRangeUser(0,1); //gr2->GetXaxis()->SetRangeUser(0,3); // gr2->SetTitle("pionID > 0.1"); TH2D *axes = new TH2D("axes","",7,0.,7.,7,0.,1); axes->SetYTitle("Efficiency"); //axes->SetXTitle("Bins of cos#theta"); axes->SetXTitle("Bins of momentum"); axes->GetYaxis()->SetTitleSize(0.04); axes->GetYaxis()->SetTitleOffset(1); axes->GetYaxis()->CenterTitle(); axes->GetXaxis()->CenterTitle(); axes->GetXaxis()->SetLabelSize(0.04); axes->GetXaxis()->SetTitleOffset(1.5); axes->GetXaxis()->SetBinLabel(1,"0.5 - 1"); axes->GetXaxis()->SetBinLabel(2,"1 - 1.5"); axes->GetXaxis()->SetBinLabel(3,"1.5 - 2"); axes->GetXaxis()->SetBinLabel(4,"2 - 2.5"); axes->GetXaxis()->SetBinLabel(5,"2.5- 3"); axes->GetXaxis()->SetBinLabel(6,"3- 3.5"); axes->GetXaxis()->SetBinLabel(7,"3.5 - 4"); axes->Draw(); TMultiGraph *mg = new TMultiGraph(); mg->Add(gr1); mg->Add(gr2); mg->Draw("p"); //c1->BuildLegend(); TLegend *legend = new TLegend(.75,.80,.95,.95); legend->SetFillStyle(0); legend->AddEntry(gr1,"sWeighted","pe"); legend->AddEntry(gr2,"True","pe"); legend->Draw(); }