DAS  3.0
Das Analysis System
MakeEfficiencyHistos.h
Go to the documentation of this file.
1 #include <algorithm>
2 #include <cstdlib>
3 #include <functional>
4 #include <vector>
5 
8 
9 #include "ExtractBinning.h"
10 
11 #include <TEfficiency.h>
12 #include <TH3.h>
13 #include <TString.h>
14 
15 using namespace std;
16 
17 namespace DAS::Normalisation {
20 
21 unique_ptr<TH1F> makeTriggerEffHist (const unique_ptr<TEfficiency> &t_eff, int iHLT, int iEta)
22 {
23  auto h3D = t_eff->GetTotalHistogram(); // used only to extract binning
24 
25  // Extracting HLT bins (thresholds)
26  auto h3D_HLT = unique_ptr<TH1>( dynamic_cast<TH1*>(h3D->Clone("h3D_HLT")) ); // create one clone for HLT bins
27  vector<double> HLTBins = extractBinning(h3D_HLT, "X");
28 
29  // Extracting resolution bins
30  auto h3D_res = unique_ptr<TH1>( dynamic_cast<TH1*>(h3D->Clone("h3D_res")) ); // a separate clone for Res bins
31  vector<double> ResBins = extractBinning(h3D_res, "Z");
32  const int nResBins = ResBins.size()-1;
33 
34  TString name = "efficiency";
35  TString title = Form("HLT%.0f_eta%d", HLTBins[iHLT-1], iEta+1);
36  unique_ptr<TH1F> h = make_unique<TH1F>(name, title, nResBins, 0, 2*HLTBins[iHLT-1]);
37  for (int ipt = 1; ipt <= nResBins; ++ipt){ // loop over pt bins (z axis of TEfficiency)
38  h->SetBinContent( ipt, t_eff->GetEfficiency (t_eff->GetGlobalBin(iHLT, iEta, ipt)) );
39  h->SetBinError ( ipt, t_eff->GetEfficiencyErrorUp(t_eff->GetGlobalBin(iHLT, iEta, ipt)) );
40  } // end of pt loop
41 
42  h->SetDirectory(nullptr);
43  return h;
44 }
45 
46 } // end of DAS::Normalisation namespace
DYToLL_M-50_13TeV_pythia8_cff_GEN_SIM_RECOBEFMIX_DIGI_L1_DIGI2RAW_L1Reco_RECO.name
name
Definition: DYToLL_M-50_13TeV_pythia8_cff_GEN_SIM_RECOBEFMIX_DIGI_L1_DIGI2RAW_L1Reco_RECO.py:48
ExtractBinning.h
binnings.h
DAS::Normalisation::makeTriggerEffHist
unique_ptr< TH1F > makeTriggerEffHist(const unique_ptr< TEfficiency > &t_eff, int iHLT, int iEta)
Extract the HLT efficiency curves in 1D histograms from TEfficiency objects.
Definition: MakeEfficiencyHistos.h:21
toolbox.h
DAS::Normalisation::extractBinning
vector< double > extractBinning(const unique_ptr< TH1 > &h3D, const TString &axis)
Extract the axis binning from a TH1 obgect and return it in a vector.
Definition: ExtractBinning.h:18
DAS::Normalisation
Definition: getHLTJetResponse.cc:34