Hi everyone.
I have a TEfficiency histogram, and I wish to calculate its cumulative. As I couldn’t find any method to do so,
I tried to get the total and passed histograms, integrate them, and then try to recombine them in a new TEfficiency object. Happens that the results is not what I would expect. I went even further and tried TGraphAsymErrors with the same principle. It also gave something wrong, and different from what I got with TEfficiency,
My code is the following:
TFile f1 = TFile("../MultijetTriggerCurves.AntiKt4LCTopo.allGRL_eta2.8_4thjet40.root");
TEfficiency * EF_5j55n_LC = (TEfficiency*) f1.Get("5Jets/EF_5j55_a4tchad_L2FS_vs_nthJet");
TH1* EF_5j55n_LC_total = EF_5j55n_LC->GetCopyTotalHisto();
TH1* EF_5j55n_LC_passed = EF_5j55n_LC->GetCopyPassedHist();
EF_5j55n_LC_total->ComputeIntegral();
EF_5j55n_LC_total->SetContent( EF_5j55n_LC_total->GetIntegral() );
EF_5j55n_LC_passed->ComputeIntegral();
EF_5j55n_LC_passed->SetContent( EF_5j55n_LC_passed->GetIntegral() );
TEfficiency* EF_5j55n_LC_cumulative = new TEfficiency(*EF_5j55n_LC_passed, *EF_5j55n_LC_total);
EF_5j55n_LC_total->Draw();
EF_5j55n_LC_passed->Draw("SAME");
EF_5j55n_LC_cumulative->Draw("SAMEP");
TGraphAsymmErrors* test = new TGraphAsymmErrors(EF_5j55n_LC_passed,EF_5j55n_LC_total);
test->SetMarkerStyle(23);
test->SetMarkerColor(kRed);
test->SetLineColor(kRed);
test->Draw("SAMEP");
The output is in attachment. As you can see, I only get 0 or 1. Am I doing it wrong?
Can you shine some light in this issue, please?
Many thanks in advance,
Ricardo