void tefficiency2D(){ const int nbinsx = 5; const int nbinsy = 5; TH2D *hpassed = new TH2D("hpassed","Passed histograms",nbinsx,0,5,nbinsy,0,5); TH2D *hall = new TH2D("hall","All histograms",nbinsx,0,5,nbinsy,0,5); //filling histograms for (int ibinx = 1; ibinx <= nbinsx;ibinx++){ for (int ibiny = 1; ibiny <= nbinsy; ibiny++){ if (ibiny < 3) hpassed->SetBinContent(ibinx,ibiny,5); if(ibiny < 4) hall->SetBinContent(ibinx,ibiny,10); } } //plotting efficiency TEfficiency *heff = new TEfficiency(*hpassed,*hall); TH2* th2 = heff->CreateHistogram(); TCanvas *c = new TCanvas(); for (int ibinx = 1; ibinx <= nbinsx;ibinx++){ for (int ibiny = 1; ibiny <= nbinsy; ibiny++){ if (heff->GetTotalHistogram()->GetBinContent(ibinx,ibiny) == 0) th2->SetBinContent(ibinx,ibiny,-2); } } th2->SetMinimum(-0.01); th2->Draw("COLZ"); }