CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Attributes
EfficiencyPlotter Class Reference

#include <EfficiencyPlotter.h>

Inheritance diagram for EfficiencyPlotter:
DQMEDHarvester edm::one::EDProducer< edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::EndProcessBlockProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources, edm::Accumulator > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 EfficiencyPlotter (const edm::ParameterSet &ps)
 Constructor. More...
 
 ~EfficiencyPlotter () override
 Destructor. More...
 
- Public Member Functions inherited from DQMEDHarvester
void accumulate (edm::Event const &ev, edm::EventSetup const &es) final
 
void beginJob () override
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &) override
 
virtual void dqmAnalyze (DQMStore::IBooker &, DQMStore::IGetter &, edm::Event const &, edm::EventSetup const &)
 
 DQMEDHarvester (edm::ParameterSet const &iConfig)
 
 DQMEDHarvester ()
 
virtual void dqmEndLuminosityBlock (DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmEndRun (DQMStore::IBooker &, DQMStore::IGetter &, edm::Run const &, edm::EventSetup const &)
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &es) final
 
void endProcessBlockProduce (edm::ProcessBlock &) final
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 
void endRunProduce (edm::Run &run, edm::EventSetup const &es) final
 
 ~DQMEDHarvester () override=default
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::EndProcessBlockProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources, edm::Accumulator >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const *> const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void dqmEndJob (DQMStore::IBooker &, DQMStore::IGetter &) override
 DQM Client Diagnostic. More...
 
- Protected Member Functions inherited from edm::ProducerBase
template<Transition Tr = Transition::Event>
auto produces (std::string instanceName) noexcept
 declare what type of product will make and with which optional label More...
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
template<Transition Tr = Transition::Event>
auto produces () noexcept
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Private Attributes

int etaBin
 
double etaMax
 
double etaMin
 
MonitorElementh_eff_eta_ID
 
MonitorElementh_eff_hp_eta_ID
 
MonitorElementh_eff_inner_eta_ID
 
MonitorElementh_eff_inner_phi_ID
 
MonitorElementh_eff_inner_pt_ID
 
MonitorElementh_eff_phi_ID
 
MonitorElementh_eff_pt_detIsoID
 
MonitorElementh_eff_pt_EB_detIsoID
 
MonitorElementh_eff_pt_EB_ID
 
MonitorElementh_eff_pt_EB_pfIsodBID
 
MonitorElementh_eff_pt_EB_pfIsoID
 
MonitorElementh_eff_pt_EE_detIsoID
 
MonitorElementh_eff_pt_EE_ID
 
MonitorElementh_eff_pt_EE_pfIsodBID
 
MonitorElementh_eff_pt_EE_pfIsoID
 
MonitorElementh_eff_pt_ID
 
MonitorElementh_eff_pt_pfIsodBID
 
MonitorElementh_eff_pt_pfIsoID
 
MonitorElementh_eff_vtx_detIsoID
 
MonitorElementh_eff_vtx_EB_detIsoID
 
MonitorElementh_eff_vtx_EB_pfIsodBID
 
MonitorElementh_eff_vtx_EB_pfIsoID
 
MonitorElementh_eff_vtx_EE_detIsoID
 
MonitorElementh_eff_vtx_EE_pfIsodBID
 
MonitorElementh_eff_vtx_EE_pfIsoID
 
MonitorElementh_eff_vtx_pfIsodBID
 
MonitorElementh_eff_vtx_pfIsoID
 
std::string ID_
 
std::string metname
 
int nevents
 
unsigned int nLumiSegs
 
edm::ParameterSet parameters
 
int phiBin
 
double phiMax
 
double phiMin
 
int prescaleFactor
 
int ptBin
 
double ptMax
 
double ptMin
 
int run
 
std::string theFolder
 
int vtxBin
 
double vtxMax
 
double vtxMin
 

Additional Inherited Members

- Public Types inherited from DQMEDHarvester
typedef dqm::harvesting::DQMStore DQMStore
 
typedef dqm::harvesting::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Attributes inherited from DQMEDHarvester
DQMStoredqmstore_
 
edm::GetterOfProducts< DQMTokenjobmegetter_
 
edm::EDPutTokenT< DQMTokenjobToken_
 
edm::GetterOfProducts< DQMTokenlumimegetter_
 
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::GetterOfProducts< DQMTokenrunmegetter_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 24 of file EfficiencyPlotter.h.

Constructor & Destructor Documentation

◆ EfficiencyPlotter()

EfficiencyPlotter::EfficiencyPlotter ( const edm::ParameterSet ps)

Constructor.

Definition at line 27 of file EfficiencyPlotter.cc.

References gather_cfg::cout, etaBin(), ALCARECOTkAlBeamHalo_cff::etaMax, ALCARECOTkAlBeamHalo_cff::etaMin, BeamMonitor_cff::phiBin, AlignmentTrackSelector_cfi::phiMax, AlignmentTrackSelector_cfi::phiMin, muonRecoAnalyzer_cfi::ptBin, AlignmentTrackSelector_cfi::ptMax, ptMin, EfficencyPlotter_cfi::vtxBin, EfficencyPlotter_cfi::vtxMax, and EfficencyPlotter_cfi::vtxMin.

27  {
28 #ifdef DEBUG
29  cout << "EfficiencyPlotter(): Constructor " << endl;
30 #endif
31  parameters = ps;
32 
33  etaBin = parameters.getParameter<int>("etaBin");
34  etaMin = parameters.getParameter<double>("etaMin");
35  etaMax = parameters.getParameter<double>("etaMax");
36 
37  phiBin = parameters.getParameter<int>("phiBin");
38  phiMin = parameters.getParameter<double>("phiMin");
39  phiMax = parameters.getParameter<double>("phiMax");
40 
41  ptBin = parameters.getParameter<int>("ptBin");
42  ptMin = parameters.getParameter<double>("ptMin");
43  ptMax = parameters.getParameter<double>("ptMax");
44 
45  vtxBin = parameters.getParameter<int>("vtxBin");
46  vtxMin = parameters.getParameter<double>("vtxMin");
47  vtxMax = parameters.getParameter<double>("vtxMax");
48 
49  ID_ = parameters.getParameter<string>("MuonID");
50  theFolder = parameters.getParameter<string>("folder");
51 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::ParameterSet parameters

◆ ~EfficiencyPlotter()

EfficiencyPlotter::~EfficiencyPlotter ( )
override

Destructor.

Definition at line 52 of file EfficiencyPlotter.cc.

52 {}

Member Function Documentation

◆ dqmEndJob()

void EfficiencyPlotter::dqmEndJob ( DQMStore::IBooker ibooker,
DQMStore::IGetter igetter 
)
overrideprotectedvirtual

DQM Client Diagnostic.

— Tight Muon efficiency vs muon Pt

— Tight Muon efficiency vs muon inner Pt

— Tight Muon efficiency vs muon inner eta

— Tight Muon efficiency vs muon inner phi

— Tight Muon efficiency vs muon Pt [EB]

— Tight Muon efficiency vs muon Pt [EE]

— Tight Muon efficiency vs muon Eta

— Tight Muon efficiency vs muon Eta [ pt > 20 ]

— Tight Muon efficiency vs muon Phi

— Tight Muon + Detector Isolation efficiency vs muon Pt

— Tight Muon + Detector Isolation efficiency vs muon Pt [EB]

— Tight Muon + Detector Isolation efficiency vs muon Pt [EE]

— Tight Muon + PF Isolation efficiency vs muon Pt

— Tight Muon + PF Isolation efficiency vs muon Pt [EB]

— Tight Muon + PF Isolation efficiency vs muon Pt [EE]

— Tight Muon + PF Isolation efficiency vs muon number of reco Vertex

— Tight Muon + detector-Based Isolation efficiency vs muon number of reco Vertex

— Tight Muon + detector-Based Isolation efficiency vs muon number of reco Vertex [EB]

— Tight Muon + detector-Based Isolation efficiency vs muon number of reco Vertex [EE]

— Tight Muon + PF-Based Isolation efficiency vs muon number of reco Vertex [EB]

— Tight Muon + PF-Based Isolation efficiency vs muon number of reco Vertex [EE]

— Tight Muon + PF IsodBlation corrected by deltaBeta efficiency vs muon Pt

— Tight Muon + PF IsodBlation corrected by deltaBeta efficiency vs muon Pt [EB]

— Tight Muon + PF IsodBlation corrected by deltaBeta efficiency vs muon Pt [EE]

— Tight Muon + PF Isolation corrected by deltaBeta efficiency vs muon number of reco Vertex

— Tight Muon + PF-Based Isolation corrected by deltaBeta efficiency vs muon number of reco Vertex [EB]

— Tight Muon + PF-Based Isolation corrected by deltaBeta efficiency vs muon number of reco Vertex [EE]

Implements DQMEDHarvester.

Definition at line 54 of file EfficiencyPlotter.cc.

References dqm::implementation::IBooker::book1D(), etaBin(), ALCARECOTkAlBeamHalo_cff::etaMax, ALCARECOTkAlBeamHalo_cff::etaMin, dqm::implementation::IGetter::get(), dqm::legacy::MonitorElement::getTH1F(), BeamMonitor_cff::phiBin, AlignmentTrackSelector_cfi::phiMax, AlignmentTrackSelector_cfi::phiMin, muonRecoAnalyzer_cfi::ptBin, AlignmentTrackSelector_cfi::ptMax, ptMin, dqm::implementation::NavigatorBase::setCurrentFolder(), dqm::impl::MonitorElement::setEfficiencyFlag(), EfficencyPlotter_cfi::vtxBin, EfficencyPlotter_cfi::vtxMax, and EfficencyPlotter_cfi::vtxMin.

54  {
55  ibooker.setCurrentFolder(theFolder);
56 
57  // efficiency plot
58  h_eff_eta_ID = ibooker.book1D("Eff_eta_" + ID_, ID_ + " Eff. vs #eta", etaBin, etaMin, etaMax);
59  h_eff_inner_pt_ID = ibooker.book1D("Eff_inner_pt_" + ID_, ID_ + " Eff. vs pt", ptBin, ptMin, ptMax);
60  h_eff_inner_eta_ID = ibooker.book1D("Eff_inner_eta_" + ID_, ID_ + " Eff. vs #eta", etaBin, etaMin, etaMax);
61  h_eff_inner_phi_ID = ibooker.book1D("Eff_inner_phi_" + ID_, ID_ + " Eff. vs #phi", phiBin, phiMin, phiMax);
63  ibooker.book1D("Eff_hp_eta_" + ID_, "High Pt (Pt>20)" + ID_ + " Eff. vs #eta", etaBin, etaMin, etaMax);
64  h_eff_phi_ID = ibooker.book1D("Eff_phi_" + ID_, ID_ + " Eff. vs #phi", phiBin, phiMin, phiMax);
65  h_eff_pt_ID = ibooker.book1D("Eff_pt_" + ID_, ID_ + " Eff. vs Pt", ptBin, ptMin, ptMax);
66  h_eff_pt_EB_ID = ibooker.book1D("Eff_pt_EB_" + ID_, "Barrel: " + ID_ + " Eff. vs Pt", ptBin, ptMin, ptMax);
67  h_eff_pt_EE_ID = ibooker.book1D("Eff_pt_EE_" + ID_, "Endcap: " + ID_ + " Eff. vs Pt", ptBin, ptMin, ptMax);
68  h_eff_pt_detIsoID = ibooker.book1D("Eff_pt_detIso" + ID_, "detIso" + ID_ + " Efficiency vs Pt", ptBin, ptMin, ptMax);
70  ibooker.book1D("Eff_pt_EB_detIso" + ID_, "Barrel: detIso" + ID_ + " Eff. vs Pt", ptBin, ptMin, ptMax);
72  ibooker.book1D("Eff_pt_EE_detIso" + ID_, "Endcap: detIso" + ID_ + " Eff. vs Pt", ptBin, ptMin, ptMax);
73  h_eff_pt_pfIsoID = ibooker.book1D("Eff_pt_pfIso" + ID_, "pfIso" + ID_ + " Eff. vs Pt", ptBin, ptMin, ptMax);
75  ibooker.book1D("Eff_pt_EB_pfIso" + ID_, "Barrel: pfIso" + ID_ + " Eff. vs Pt", ptBin, ptMin, ptMax);
77  ibooker.book1D("Eff_pt_EE_pfIso" + ID_, "Endcap: pfIso" + ID_ + " Eff. vs Pt", ptBin, ptMin, ptMax);
78  h_eff_vtx_detIsoID = ibooker.book1D("Eff_vtx_detIso" + ID_, "detIso" + ID_ + " Eff. vs nVtx", vtxBin, vtxMin, vtxMax);
79  h_eff_vtx_pfIsoID = ibooker.book1D("Eff_vtx_pfIso" + ID_, "pfIso" + ID_ + " Eff. vs nVtx", vtxBin, vtxMin, vtxMax);
81  ibooker.book1D("Eff_vtx_EB_detIso" + ID_, "Barrel: detIso" + ID_ + " Eff. vs nVtx", vtxBin, vtxMin, vtxMax);
83  ibooker.book1D("Eff_vtx_EB_pfIso" + ID_, "Barrel: pfIso" + ID_ + " Eff. vs nVtx", vtxBin, vtxMin, vtxMax);
85  ibooker.book1D("Eff_vtx_EE_detIso" + ID_, "Endcap: detIso" + ID_ + " Eff. vs nVtx", vtxBin, vtxMin, vtxMax);
87  ibooker.book1D("Eff_vtx_EE_pfIso" + ID_, "Endcap: pfIso" + ID_ + " Eff. vs nVtx", vtxBin, vtxMin, vtxMax);
88 
90  ibooker.book1D("Eff_pt_pfIsodB" + ID_, "pfIso" + ID_ + " (deltaBeta) Eff. vs Pt", ptBin, ptMin, ptMax);
92  ibooker.book1D("Eff_pt_EB_pfIsodB" + ID_, "Barrel: pfIso" + ID_ + " (deltaBeta) Eff. vs Pt", ptBin, ptMin, ptMax);
94  ibooker.book1D("Eff_pt_EE_pfIsodB" + ID_, "Endcap: pfIso" + ID_ + " (deltaBeta) Eff. vs Pt", ptBin, ptMin, ptMax);
96  ibooker.book1D("Eff_vtx_pfIsodB" + ID_, "pfIso" + ID_ + " (deltaBeta) Eff. vs nVtx", vtxBin, vtxMin, vtxMax);
98  "Eff_vtx_EB_pfIsodB" + ID_, "Barrel: pfIso" + ID_ + " (deltaBeta) Eff. vs nVtx", vtxBin, vtxMin, vtxMax);
100  "Eff_vtx_EE_pfIsodB" + ID_, "Endcap: pfIso" + ID_ + " (deltaBeta) Eff. vs nVtx", vtxBin, vtxMin, vtxMax);
101 
102  // This prevents this ME to be normalized when drawn into the GUI
124 
131 
132  // AXIS TITLES....
133  h_eff_hp_eta_ID->setAxisTitle("#eta", 1);
134  h_eff_inner_eta_ID->setAxisTitle("#eta", 1);
135  h_eff_inner_pt_ID->setAxisTitle("#eta", 1);
136  h_eff_inner_phi_ID->setAxisTitle("#eta", 1);
137  h_eff_eta_ID->setAxisTitle("#eta", 1);
138  h_eff_phi_ID->setAxisTitle("#phi", 1);
139  h_eff_pt_ID->setAxisTitle("p_{T} (GeV)", 1);
140  h_eff_pt_EB_ID->setAxisTitle("p_{T} (GeV)", 1);
141  h_eff_pt_EE_ID->setAxisTitle("p_{T} (GeV)", 1);
142  h_eff_pt_detIsoID->setAxisTitle("p_{T} (GeV)", 1);
143  h_eff_pt_EB_detIsoID->setAxisTitle("p_{T} (GeV)", 1);
144  h_eff_pt_EE_detIsoID->setAxisTitle("p_{T} (GeV)", 1);
145  h_eff_pt_pfIsoID->setAxisTitle("p_{T} (GeV)", 1);
146  h_eff_pt_EB_pfIsoID->setAxisTitle("p_{T} (GeV)", 1);
147  h_eff_pt_EE_pfIsoID->setAxisTitle("p_{T} (GeV)", 1);
148  h_eff_vtx_detIsoID->setAxisTitle("Number of PV", 1);
149  h_eff_vtx_pfIsoID->setAxisTitle("Number of PV", 1);
150  h_eff_vtx_EB_detIsoID->setAxisTitle("Number of PV", 1);
151  h_eff_vtx_EB_pfIsoID->setAxisTitle("Number of PV", 1);
152  h_eff_vtx_EE_detIsoID->setAxisTitle("Number of PV", 1);
153  h_eff_vtx_EE_pfIsoID->setAxisTitle("Number of PV", 1);
154 
155  h_eff_pt_pfIsodBID->setAxisTitle("p_{T} (GeV)", 1);
156  h_eff_pt_EB_pfIsodBID->setAxisTitle("p_{T} (GeV)", 1);
157  h_eff_pt_EE_pfIsodBID->setAxisTitle("p_{T} (GeV)", 1);
158  h_eff_vtx_pfIsodBID->setAxisTitle("Number of PV", 1);
159  h_eff_vtx_EB_pfIsodBID->setAxisTitle("Number of PV", 1);
160  h_eff_vtx_EE_pfIsodBID->setAxisTitle("Number of PV", 1);
161 
163  string inputdir = "Muons/EfficiencyAnalyzer/" + ID_;
164  string numpath_pt = inputdir + "/passProbes_ID_pt";
165  string denpath_pt = inputdir + "/allProbes_pt";
166 
167  MonitorElement *Numerator_pt = igetter.get(numpath_pt);
168  MonitorElement *Denominator_pt = igetter.get(denpath_pt);
169 
170  if (Numerator_pt && Denominator_pt) {
171  TH1F *h_numerator_pt = Numerator_pt->getTH1F();
172  TH1F *h_denominator_pt = Denominator_pt->getTH1F();
173  TH1F *h_eff_pt = h_eff_pt_ID->getTH1F();
174 
175  if (h_eff_pt->GetSumw2N() == 0)
176  h_eff_pt->Sumw2();
177  h_eff_pt->Divide(h_numerator_pt, h_denominator_pt, 1., 1., "B");
178  }
179 
181  string numpath_inner_pt = inputdir + "/passProbes_ID_inner_pt";
182  string denpath_inner_pt = inputdir + "/allProbes_inner_pt";
183 
184  MonitorElement *Numerator_inner_pt = igetter.get(numpath_inner_pt);
185  MonitorElement *Denominator_inner_pt = igetter.get(denpath_inner_pt);
186 
187  if (Numerator_inner_pt && Denominator_inner_pt) {
188  TH1F *h_numerator_inner_pt = Numerator_inner_pt->getTH1F();
189  TH1F *h_denominator_inner_pt = Denominator_inner_pt->getTH1F();
190  TH1F *h_eff_inner_pt = h_eff_inner_pt_ID->getTH1F();
191 
192  if (h_eff_inner_pt->GetSumw2N() == 0)
193  h_eff_inner_pt->Sumw2();
194  h_eff_inner_pt->Divide(h_numerator_inner_pt, h_denominator_inner_pt, 1., 1., "B");
195  }
196 
198  string numpath_inner_eta = inputdir + "/passProbes_ID_inner_eta";
199  string denpath_inner_eta = inputdir + "/allProbes_inner_eta";
200 
201  MonitorElement *Numerator_inner_eta = igetter.get(numpath_inner_eta);
202  MonitorElement *Denominator_inner_eta = igetter.get(denpath_inner_eta);
203 
204  if (Numerator_inner_eta && Denominator_inner_eta) {
205  TH1F *h_numerator_inner_eta = Numerator_inner_eta->getTH1F();
206  TH1F *h_denominator_inner_eta = Denominator_inner_eta->getTH1F();
207  TH1F *h_eff_inner_eta = h_eff_inner_eta_ID->getTH1F();
208 
209  if (h_eff_inner_eta->GetSumw2N() == 0)
210  h_eff_inner_eta->Sumw2();
211  h_eff_inner_eta->Divide(h_numerator_inner_eta, h_denominator_inner_eta, 1., 1., "B");
212  }
213 
215  string numpath_inner_phi = inputdir + "/passProbes_ID_inner_phi";
216  string denpath_inner_phi = inputdir + "/allProbes_inner_phi";
217 
218  MonitorElement *Numerator_inner_phi = igetter.get(numpath_inner_phi);
219  MonitorElement *Denominator_inner_phi = igetter.get(denpath_inner_phi);
220 
221  if (Numerator_inner_phi && Denominator_inner_phi) {
222  TH1F *h_numerator_inner_phi = Numerator_inner_phi->getTH1F();
223  TH1F *h_denominator_inner_phi = Denominator_inner_phi->getTH1F();
224  TH1F *h_eff_inner_phi = h_eff_inner_phi_ID->getTH1F();
225 
226  if (h_eff_inner_phi->GetSumw2N() == 0)
227  h_eff_inner_phi->Sumw2();
228  h_eff_inner_phi->Divide(h_numerator_inner_phi, h_denominator_inner_phi, 1., 1., "B");
229  }
230 
232  string numpath_EB_pt = inputdir + "/passProbes_ID_EB_pt";
233  string denpath_EB_pt = inputdir + "/allProbes_EB_pt";
234 
235  MonitorElement *Numerator_EB_pt = igetter.get(numpath_EB_pt);
236  MonitorElement *Denominator_EB_pt = igetter.get(denpath_EB_pt);
237 
238  if (Numerator_EB_pt && Denominator_EB_pt) {
239  TH1F *h_numerator_EB_pt = Numerator_EB_pt->getTH1F();
240  TH1F *h_denominator_EB_pt = Denominator_EB_pt->getTH1F();
241  TH1F *h_eff_EB_pt = h_eff_pt_EB_ID->getTH1F();
242 
243  if (h_eff_EB_pt->GetSumw2N() == 0)
244  h_eff_EB_pt->Sumw2();
245  h_eff_EB_pt->Divide(h_numerator_EB_pt, h_denominator_EB_pt, 1., 1., "B");
246  }
247 
249  string numpath_EE_pt = inputdir + "/passProbes_ID_EE_pt";
250  string denpath_EE_pt = inputdir + "/allProbes_EE_pt";
251 
252  MonitorElement *Numerator_EE_pt = igetter.get(numpath_EE_pt);
253  MonitorElement *Denominator_EE_pt = igetter.get(denpath_EE_pt);
254 
255  if (Numerator_EE_pt && Denominator_EE_pt) {
256  TH1F *h_numerator_EE_pt = Numerator_EE_pt->getTH1F();
257  TH1F *h_denominator_EE_pt = Denominator_EE_pt->getTH1F();
258  TH1F *h_eff_EE_pt = h_eff_pt_EE_ID->getTH1F();
259 
260  if (h_eff_EE_pt->GetSumw2N() == 0)
261  h_eff_EE_pt->Sumw2();
262  h_eff_EE_pt->Divide(h_numerator_EE_pt, h_denominator_EE_pt, 1., 1., "B");
263  }
264 
266  string numpath_eta = inputdir + "/passProbes_ID_eta";
267  string denpath_eta = inputdir + "/allProbes_eta";
268 
269  MonitorElement *Numerator_eta = igetter.get(numpath_eta);
270  MonitorElement *Denominator_eta = igetter.get(denpath_eta);
271 
272  if (Numerator_eta && Denominator_eta) {
273  TH1F *h_numerator_eta = Numerator_eta->getTH1F();
274  TH1F *h_denominator_eta = Denominator_eta->getTH1F();
275 
276  TH1F *h_eff_eta = h_eff_eta_ID->getTH1F();
277 
278  if (h_eff_eta->GetSumw2N() == 0)
279  h_eff_eta->Sumw2();
280 
281  h_eff_eta->Divide(h_numerator_eta, h_denominator_eta, 1., 1., "B");
282  }
283 
285 
286  string numpath_hp_eta = inputdir + "/passProbes_ID_hp_eta";
287  string denpath_hp_eta = inputdir + "/allProbes_hp_eta";
288 
289  MonitorElement *Numerator_hp_eta = igetter.get(numpath_hp_eta);
290  MonitorElement *Denominator_hp_eta = igetter.get(denpath_hp_eta);
291 
292  if (Numerator_hp_eta && Denominator_hp_eta) {
293  TH1F *h_numerator_hp_eta = Numerator_hp_eta->getTH1F();
294  TH1F *h_denominator_hp_eta = Denominator_hp_eta->getTH1F();
295 
296  TH1F *h_eff_hp_eta = h_eff_hp_eta_ID->getTH1F();
297 
298  if (h_eff_hp_eta->GetSumw2N() == 0)
299  h_eff_hp_eta->Sumw2();
300 
301  h_eff_hp_eta->Divide(h_numerator_hp_eta, h_denominator_hp_eta, 1., 1., "B");
302  }
303 
305 
306  string numpath_phi = inputdir + "/passProbes_ID_phi";
307  string denpath_phi = inputdir + "/allProbes_phi";
308 
309  MonitorElement *Numerator_phi = igetter.get(numpath_phi);
310  MonitorElement *Denominator_phi = igetter.get(denpath_phi);
311 
312  if (Numerator_phi && Denominator_phi) {
313  TH1F *h_numerator_phi = Numerator_phi->getTH1F();
314  TH1F *h_denominator_phi = Denominator_phi->getTH1F();
315 
316  TH1F *h_eff_phi = h_eff_phi_ID->getTH1F();
317 
318  if (h_eff_phi->GetSumw2N() == 0)
319  h_eff_phi->Sumw2();
320 
321  h_eff_phi->Divide(h_numerator_phi, h_denominator_phi, 1., 1., "B");
322  }
323 
325  string numpath_detIso_pt = inputdir + "/passProbes_detIsoID_pt";
326  string denpath_detIso_pt = inputdir + "/allProbes_ID_pt";
327 
328  MonitorElement *Numerator_detIso_pt = igetter.get(numpath_detIso_pt);
329  MonitorElement *Denominator_detIso_pt = igetter.get(denpath_detIso_pt);
330 
331  if (Numerator_detIso_pt && Denominator_detIso_pt) {
332  TH1F *h_numerator_detIso_pt = Numerator_detIso_pt->getTH1F();
333  TH1F *h_denominator_detIso_pt = Denominator_detIso_pt->getTH1F();
334 
335  TH1F *h_eff_detIso_pt = h_eff_pt_detIsoID->getTH1F();
336 
337  if (h_eff_detIso_pt->GetSumw2N() == 0)
338  h_eff_detIso_pt->Sumw2();
339  h_eff_detIso_pt->Divide(h_numerator_detIso_pt, h_denominator_detIso_pt, 1., 1., "B");
340  }
341 
343  string numpath_detIso_EB_pt = inputdir + "/passProbes_EB_detIsoID_pt";
344  string denpath_detIso_EB_pt = inputdir + "/allProbes_EB_ID_pt";
345 
346  MonitorElement *Numerator_detIso_EB_pt = igetter.get(numpath_detIso_EB_pt);
347  MonitorElement *Denominator_detIso_EB_pt = igetter.get(denpath_detIso_EB_pt);
348 
349  if (Numerator_detIso_EB_pt && Denominator_detIso_EB_pt) {
350  TH1F *h_numerator_detIso_EB_pt = Numerator_detIso_EB_pt->getTH1F();
351  TH1F *h_denominator_detIso_EB_pt = Denominator_detIso_EB_pt->getTH1F();
352 
353  TH1F *h_eff_detIso_EB_pt = h_eff_pt_EB_detIsoID->getTH1F();
354 
355  if (h_eff_detIso_EB_pt->GetSumw2N() == 0)
356  h_eff_detIso_EB_pt->Sumw2();
357 
358  h_eff_detIso_EB_pt->Divide(h_numerator_detIso_EB_pt, h_denominator_detIso_EB_pt, 1., 1., "B");
359  }
360 
362  string numpath_detIso_EE_pt = inputdir + "/passProbes_EE_detIsoID_pt";
363  string denpath_detIso_EE_pt = inputdir + "/allProbes_EE_ID_pt";
364 
365  MonitorElement *Numerator_detIso_EE_pt = igetter.get(numpath_detIso_EE_pt);
366  MonitorElement *Denominator_detIso_EE_pt = igetter.get(denpath_detIso_EE_pt);
367 
368  if (Numerator_detIso_EE_pt && Denominator_detIso_EE_pt) {
369  TH1F *h_numerator_detIso_EE_pt = Numerator_detIso_EE_pt->getTH1F();
370  TH1F *h_denominator_detIso_EE_pt = Denominator_detIso_EE_pt->getTH1F();
371 
372  TH1F *h_eff_detIso_EE_pt = h_eff_pt_EE_detIsoID->getTH1F();
373 
374  if (h_eff_detIso_EE_pt->GetSumw2N() == 0)
375  h_eff_detIso_EE_pt->Sumw2();
376 
377  h_eff_detIso_EE_pt->Divide(h_numerator_detIso_EE_pt, h_denominator_detIso_EE_pt, 1., 1., "B");
378  }
379 
381  string numpath_pfIso_pt = inputdir + "/passProbes_pfIsoID_pt";
382  string denpath_pfIso_pt = inputdir + "/allProbes_ID_pt";
383 
384  MonitorElement *Numerator_pfIso_pt = igetter.get(numpath_pfIso_pt);
385  MonitorElement *Denominator_pfIso_pt = igetter.get(denpath_pfIso_pt);
386 
387  if (Numerator_pfIso_pt && Denominator_pfIso_pt) {
388  TH1F *h_numerator_pfIso_pt = Numerator_pfIso_pt->getTH1F();
389  TH1F *h_denominator_pfIso_pt = Denominator_pfIso_pt->getTH1F();
390 
391  TH1F *h_eff_pfIso_pt = h_eff_pt_pfIsoID->getTH1F();
392 
393  if (h_eff_pfIso_pt->GetSumw2N() == 0)
394  h_eff_pfIso_pt->Sumw2();
395 
396  h_eff_pfIso_pt->Divide(h_numerator_pfIso_pt, h_denominator_pfIso_pt, 1., 1., "B");
397  }
398 
400 
401  string numpath_pfIso_EB_pt = inputdir + "/passProbes_EB_pfIsoID_pt";
402  string denpath_pfIso_EB_pt = inputdir + "/allProbes_EB_ID_pt";
403 
404  MonitorElement *Numerator_pfIso_EB_pt = igetter.get(numpath_pfIso_EB_pt);
405  MonitorElement *Denominator_pfIso_EB_pt = igetter.get(denpath_pfIso_EB_pt);
406 
407  if (Numerator_pfIso_EB_pt && Denominator_pfIso_EB_pt) {
408  TH1F *h_numerator_pfIso_EB_pt = Numerator_pfIso_EB_pt->getTH1F();
409  TH1F *h_denominator_pfIso_EB_pt = Denominator_pfIso_EB_pt->getTH1F();
410 
411  TH1F *h_eff_pfIso_EB_pt = h_eff_pt_EB_pfIsoID->getTH1F();
412 
413  if (h_eff_pfIso_EB_pt->GetSumw2N() == 0)
414  h_eff_pfIso_EB_pt->Sumw2();
415  h_eff_pfIso_EB_pt->Divide(h_numerator_pfIso_EB_pt, h_denominator_pfIso_EB_pt, 1., 1., "B");
416  }
417 
419  string numpath_pfIso_EE_pt = inputdir + "/passProbes_EE_pfIsoID_pt";
420  string denpath_pfIso_EE_pt = inputdir + "/allProbes_EE_ID_pt";
421 
422  MonitorElement *Numerator_pfIso_EE_pt = igetter.get(numpath_pfIso_EE_pt);
423  MonitorElement *Denominator_pfIso_EE_pt = igetter.get(denpath_pfIso_EE_pt);
424 
425  if (Numerator_pfIso_EE_pt && Denominator_pfIso_EE_pt) {
426  TH1F *h_numerator_pfIso_EE_pt = Numerator_pfIso_EE_pt->getTH1F();
427  TH1F *h_denominator_pfIso_EE_pt = Denominator_pfIso_EE_pt->getTH1F();
428 
429  TH1F *h_eff_pfIso_EE_pt = h_eff_pt_EE_pfIsoID->getTH1F();
430 
431  if (h_eff_pfIso_EE_pt->GetSumw2N() == 0)
432  h_eff_pfIso_EE_pt->Sumw2();
433 
434  h_eff_pfIso_EE_pt->Divide(h_numerator_pfIso_EE_pt, h_denominator_pfIso_EE_pt, 1., 1., "B");
435  }
436 
438 
439  string numpath_pfIso_nvtx = inputdir + "/passProbes_pfIsoID_nVtx";
440  string denpath_pfIso_nvtx = inputdir + "/allProbes_ID_nVtx";
441 
442  MonitorElement *Numerator_pfIso_nvtx = igetter.get(numpath_pfIso_nvtx);
443  MonitorElement *Denominator_pfIso_nvtx = igetter.get(denpath_pfIso_nvtx);
444 
445  if (Numerator_pfIso_nvtx && Denominator_pfIso_nvtx) {
446  TH1F *h_numerator_pfIso_nvtx = Numerator_pfIso_nvtx->getTH1F();
447  TH1F *h_denominator_pfIso_nvtx = Denominator_pfIso_nvtx->getTH1F();
448 
449  TH1F *h_eff_pfIso_nvtx = h_eff_vtx_pfIsoID->getTH1F();
450 
451  if (h_eff_pfIso_nvtx->GetSumw2N() == 0)
452  h_eff_pfIso_nvtx->Sumw2();
453 
454  h_eff_pfIso_nvtx->Divide(h_numerator_pfIso_nvtx, h_denominator_pfIso_nvtx, 1., 1., "B");
455  }
456 
458  string numpath_detIso_nvtx = inputdir + "/passProbes_detIsoID_nVtx";
459  string denpath_detIso_nvtx = inputdir + "/allProbes_ID_nVtx";
460 
461  MonitorElement *Numerator_detIso_nvtx = igetter.get(numpath_detIso_nvtx);
462  MonitorElement *Denominator_detIso_nvtx = igetter.get(denpath_detIso_nvtx);
463 
464  if (Numerator_detIso_nvtx && Denominator_detIso_nvtx) {
465  TH1F *h_numerator_detIso_nvtx = Numerator_detIso_nvtx->getTH1F();
466  TH1F *h_denominator_detIso_nvtx = Denominator_detIso_nvtx->getTH1F();
467 
468  TH1F *h_eff_detIso_nvtx = h_eff_vtx_detIsoID->getTH1F();
469 
470  if (h_eff_detIso_nvtx->GetSumw2N() == 0)
471  h_eff_detIso_nvtx->Sumw2();
472 
473  h_eff_detIso_nvtx->Divide(h_numerator_detIso_nvtx, h_denominator_detIso_nvtx, 1., 1., "B");
474  }
475 
477  numpath_detIso_nvtx = inputdir + "/passProbes_EB_detIsoID_nVtx";
478  denpath_detIso_nvtx = inputdir + "/allProbes_EB_ID_nVtx";
479 
480  Numerator_detIso_nvtx = igetter.get(numpath_detIso_nvtx);
481  Denominator_detIso_nvtx = igetter.get(denpath_detIso_nvtx);
482 
483  if (Numerator_detIso_nvtx && Denominator_detIso_nvtx) {
484  TH1F *h_numerator_detIso_nvtx = Numerator_detIso_nvtx->getTH1F();
485  TH1F *h_denominator_detIso_nvtx = Denominator_detIso_nvtx->getTH1F();
486 
487  TH1F *h_eff_detIso_nvtx = h_eff_vtx_EB_detIsoID->getTH1F();
488 
489  if (h_eff_detIso_nvtx->GetSumw2N() == 0)
490  h_eff_detIso_nvtx->Sumw2();
491  h_eff_detIso_nvtx->Divide(h_numerator_detIso_nvtx, h_denominator_detIso_nvtx, 1., 1., "B");
492  }
493 
495  numpath_detIso_nvtx = inputdir + "/passProbes_EE_detIsoID_nVtx";
496  denpath_detIso_nvtx = inputdir + "/allProbes_EE_ID_nVtx";
497 
498  Numerator_detIso_nvtx = igetter.get(numpath_detIso_nvtx);
499  Denominator_detIso_nvtx = igetter.get(denpath_detIso_nvtx);
500 
501  if (Numerator_detIso_nvtx && Denominator_detIso_nvtx) {
502  TH1F *h_numerator_detIso_nvtx = Numerator_detIso_nvtx->getTH1F();
503  TH1F *h_denominator_detIso_nvtx = Denominator_detIso_nvtx->getTH1F();
504 
505  TH1F *h_eff_detIso_nvtx = h_eff_vtx_EE_detIsoID->getTH1F();
506 
507  if (h_eff_detIso_nvtx->GetSumw2N() == 0)
508  h_eff_detIso_nvtx->Sumw2();
509 
510  h_eff_detIso_nvtx->Divide(h_numerator_detIso_nvtx, h_denominator_detIso_nvtx, 1., 1., "B");
511  }
512 
514  numpath_pfIso_nvtx = inputdir + "/passProbes_EB_pfIsoID_nVtx";
515  denpath_pfIso_nvtx = inputdir + "/allProbes_EB_ID_nVtx";
516 
517  Numerator_pfIso_nvtx = igetter.get(numpath_pfIso_nvtx);
518  Denominator_pfIso_nvtx = igetter.get(denpath_pfIso_nvtx);
519 
520  if (Numerator_pfIso_nvtx && Denominator_pfIso_nvtx) {
521  TH1F *h_numerator_pfIso_nvtx = Numerator_pfIso_nvtx->getTH1F();
522  TH1F *h_denominator_pfIso_nvtx = Denominator_pfIso_nvtx->getTH1F();
523 
524  TH1F *h_eff_pfIso_nvtx = h_eff_vtx_EB_pfIsoID->getTH1F();
525 
526  if (h_eff_pfIso_nvtx->GetSumw2N() == 0)
527  h_eff_pfIso_nvtx->Sumw2();
528 
529  h_eff_pfIso_nvtx->Divide(h_numerator_pfIso_nvtx, h_denominator_pfIso_nvtx, 1., 1., "B");
530  }
531 
533  numpath_pfIso_nvtx = inputdir + "/passProbes_EE_pfIsoID_nVtx";
534  denpath_pfIso_nvtx = inputdir + "/allProbes_EE_ID_nVtx";
535 
536  Numerator_pfIso_nvtx = igetter.get(numpath_pfIso_nvtx);
537  Denominator_pfIso_nvtx = igetter.get(denpath_pfIso_nvtx);
538 
539  if (Numerator_pfIso_nvtx && Denominator_pfIso_nvtx) {
540  TH1F *h_numerator_pfIso_nvtx = Numerator_pfIso_nvtx->getTH1F();
541  TH1F *h_denominator_pfIso_nvtx = Denominator_pfIso_nvtx->getTH1F();
542 
543  TH1F *h_eff_pfIso_nvtx = h_eff_vtx_EE_pfIsoID->getTH1F();
544 
545  if (h_eff_pfIso_nvtx->GetSumw2N() == 0)
546  h_eff_pfIso_nvtx->Sumw2();
547 
548  h_eff_pfIso_nvtx->Divide(h_numerator_pfIso_nvtx, h_denominator_pfIso_nvtx, 1., 1., "B");
549  }
550 
552  string numpath_pfIsodB_pt = inputdir + "/passProbes_pfIsodBID_pt";
553  string denpath_pfIsodB_pt = inputdir + "/allProbes_ID_pt";
554 
555  MonitorElement *Numerator_pfIsodB_pt = igetter.get(numpath_pfIsodB_pt);
556  MonitorElement *Denominator_pfIsodB_pt = igetter.get(denpath_pfIsodB_pt);
557 
558  if (Numerator_pfIsodB_pt && Denominator_pfIsodB_pt) {
559  TH1F *h_numerator_pfIsodB_pt = Numerator_pfIsodB_pt->getTH1F();
560  TH1F *h_denominator_pfIsodB_pt = Denominator_pfIsodB_pt->getTH1F();
561 
562  TH1F *h_eff_pfIsodB_pt = h_eff_pt_pfIsodBID->getTH1F();
563 
564  if (h_eff_pfIsodB_pt->GetSumw2N() == 0)
565  h_eff_pfIsodB_pt->Sumw2();
566 
567  h_eff_pfIsodB_pt->Divide(h_numerator_pfIsodB_pt, h_denominator_pfIsodB_pt, 1., 1., "B");
568  }
569 
571 
572  string numpath_pfIsodB_EB_pt = inputdir + "/passProbes_EB_pfIsodBID_pt";
573  string denpath_pfIsodB_EB_pt = inputdir + "/allProbes_EB_ID_pt";
574 
575  MonitorElement *Numerator_pfIsodB_EB_pt = igetter.get(numpath_pfIsodB_EB_pt);
576  MonitorElement *Denominator_pfIsodB_EB_pt = igetter.get(denpath_pfIsodB_EB_pt);
577 
578  if (Numerator_pfIsodB_EB_pt && Denominator_pfIsodB_EB_pt) {
579  TH1F *h_numerator_pfIsodB_EB_pt = Numerator_pfIsodB_EB_pt->getTH1F();
580  TH1F *h_denominator_pfIsodB_EB_pt = Denominator_pfIsodB_EB_pt->getTH1F();
581 
582  TH1F *h_eff_pfIsodB_EB_pt = h_eff_pt_EB_pfIsodBID->getTH1F();
583 
584  if (h_eff_pfIsodB_EB_pt->GetSumw2N() == 0)
585  h_eff_pfIsodB_EB_pt->Sumw2();
586  h_eff_pfIsodB_EB_pt->Divide(h_numerator_pfIsodB_EB_pt, h_denominator_pfIsodB_EB_pt, 1., 1., "B");
587  }
588 
590  string numpath_pfIsodB_EE_pt = inputdir + "/passProbes_EE_pfIsodBID_pt";
591  string denpath_pfIsodB_EE_pt = inputdir + "/allProbes_EE_ID_pt";
592 
593  MonitorElement *Numerator_pfIsodB_EE_pt = igetter.get(numpath_pfIsodB_EE_pt);
594  MonitorElement *Denominator_pfIsodB_EE_pt = igetter.get(denpath_pfIsodB_EE_pt);
595 
596  if (Numerator_pfIsodB_EE_pt && Denominator_pfIsodB_EE_pt) {
597  TH1F *h_numerator_pfIsodB_EE_pt = Numerator_pfIsodB_EE_pt->getTH1F();
598  TH1F *h_denominator_pfIsodB_EE_pt = Denominator_pfIsodB_EE_pt->getTH1F();
599 
600  TH1F *h_eff_pfIsodB_EE_pt = h_eff_pt_EE_pfIsodBID->getTH1F();
601 
602  if (h_eff_pfIsodB_EE_pt->GetSumw2N() == 0)
603  h_eff_pfIsodB_EE_pt->Sumw2();
604 
605  h_eff_pfIsodB_EE_pt->Divide(h_numerator_pfIsodB_EE_pt, h_denominator_pfIsodB_EE_pt, 1., 1., "B");
606  }
607 
609 
610  string numpath_pfIsodB_nvtx = inputdir + "/passProbes_pfIsodBID_nVtx";
611  string denpath_pfIsodB_nvtx = inputdir + "/allProbes_ID_nVtx";
612 
613  MonitorElement *Numerator_pfIsodB_nvtx = igetter.get(numpath_pfIsodB_nvtx);
614  MonitorElement *Denominator_pfIsodB_nvtx = igetter.get(denpath_pfIsodB_nvtx);
615 
616  if (Numerator_pfIsodB_nvtx && Denominator_pfIsodB_nvtx) {
617  TH1F *h_numerator_pfIsodB_nvtx = Numerator_pfIsodB_nvtx->getTH1F();
618  TH1F *h_denominator_pfIsodB_nvtx = Denominator_pfIsodB_nvtx->getTH1F();
619 
620  TH1F *h_eff_pfIsodB_nvtx = h_eff_vtx_pfIsodBID->getTH1F();
621 
622  if (h_eff_pfIsodB_nvtx->GetSumw2N() == 0)
623  h_eff_pfIsodB_nvtx->Sumw2();
624 
625  h_eff_pfIsodB_nvtx->Divide(h_numerator_pfIsodB_nvtx, h_denominator_pfIsodB_nvtx, 1., 1., "B");
626  }
627 
629  numpath_pfIsodB_nvtx = inputdir + "/passProbes_EB_pfIsodBID_nVtx";
630  denpath_pfIsodB_nvtx = inputdir + "/allProbes_EB_ID_nVtx";
631 
632  Numerator_pfIsodB_nvtx = igetter.get(numpath_pfIsodB_nvtx);
633  Denominator_pfIsodB_nvtx = igetter.get(denpath_pfIsodB_nvtx);
634 
635  if (Numerator_pfIsodB_nvtx && Denominator_pfIsodB_nvtx) {
636  TH1F *h_numerator_pfIsodB_nvtx = Numerator_pfIsodB_nvtx->getTH1F();
637  TH1F *h_denominator_pfIsodB_nvtx = Denominator_pfIsodB_nvtx->getTH1F();
638 
639  TH1F *h_eff_pfIsodB_nvtx = h_eff_vtx_EB_pfIsodBID->getTH1F();
640 
641  if (h_eff_pfIsodB_nvtx->GetSumw2N() == 0)
642  h_eff_pfIsodB_nvtx->Sumw2();
643 
644  h_eff_pfIsodB_nvtx->Divide(h_numerator_pfIsodB_nvtx, h_denominator_pfIsodB_nvtx, 1., 1., "B");
645  }
646 
648  numpath_pfIsodB_nvtx = inputdir + "/passProbes_EE_pfIsodBID_nVtx";
649  denpath_pfIsodB_nvtx = inputdir + "/allProbes_EE_ID_nVtx";
650 
651  Numerator_pfIsodB_nvtx = igetter.get(numpath_pfIsodB_nvtx);
652  Denominator_pfIsodB_nvtx = igetter.get(denpath_pfIsodB_nvtx);
653 
654  if (Numerator_pfIsodB_nvtx && Denominator_pfIsodB_nvtx) {
655  TH1F *h_numerator_pfIsodB_nvtx = Numerator_pfIsodB_nvtx->getTH1F();
656  TH1F *h_denominator_pfIsodB_nvtx = Denominator_pfIsodB_nvtx->getTH1F();
657 
658  TH1F *h_eff_pfIsodB_nvtx = h_eff_vtx_EE_pfIsodBID->getTH1F();
659 
660  if (h_eff_pfIsodB_nvtx->GetSumw2N() == 0)
661  h_eff_pfIsodB_nvtx->Sumw2();
662 
663  h_eff_pfIsodB_nvtx->Divide(h_numerator_pfIsodB_nvtx, h_denominator_pfIsodB_nvtx, 1., 1., "B");
664  }
665 }
MonitorElement * h_eff_vtx_EE_detIsoID
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
MonitorElement * h_eff_pt_EE_pfIsoID
MonitorElement * h_eff_inner_eta_ID
MonitorElement * h_eff_pt_EB_pfIsodBID
MonitorElement * h_eff_pt_EB_pfIsoID
MonitorElement * h_eff_pt_pfIsoID
MonitorElement * h_eff_vtx_EB_pfIsodBID
MonitorElement * h_eff_pt_EB_detIsoID
MonitorElement * h_eff_pt_ID
MonitorElement * h_eff_inner_phi_ID
MonitorElement * h_eff_inner_pt_ID
MonitorElement * h_eff_vtx_EE_pfIsoID
MonitorElement * h_eff_vtx_detIsoID
MonitorElement * h_eff_phi_ID
virtual TH1F * getTH1F() const
MonitorElement * h_eff_eta_ID
virtual MonitorElement * get(std::string const &fullpath) const
Definition: DQMStore.cc:680
MonitorElement * h_eff_pt_detIsoID
MonitorElement * h_eff_vtx_pfIsodBID
MonitorElement * h_eff_vtx_EE_pfIsodBID
MonitorElement * h_eff_hp_eta_ID
MonitorElement * h_eff_pt_EE_pfIsodBID
MonitorElement * h_eff_pt_pfIsodBID
MonitorElement * h_eff_vtx_pfIsoID
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
MonitorElement * h_eff_pt_EE_detIsoID
MonitorElement * h_eff_vtx_EB_pfIsoID
MonitorElement * h_eff_pt_EB_ID
MonitorElement * h_eff_pt_EE_ID
MonitorElement * h_eff_vtx_EB_detIsoID
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)

Member Data Documentation

◆ etaBin

int EfficiencyPlotter::etaBin
private

Definition at line 48 of file EfficiencyPlotter.h.

◆ etaMax

double EfficiencyPlotter::etaMax
private

Definition at line 50 of file EfficiencyPlotter.h.

◆ etaMin

double EfficiencyPlotter::etaMin
private

Definition at line 49 of file EfficiencyPlotter.h.

◆ h_eff_eta_ID

MonitorElement* EfficiencyPlotter::h_eff_eta_ID
private

Definition at line 73 of file EfficiencyPlotter.h.

◆ h_eff_hp_eta_ID

MonitorElement* EfficiencyPlotter::h_eff_hp_eta_ID
private

Definition at line 74 of file EfficiencyPlotter.h.

◆ h_eff_inner_eta_ID

MonitorElement* EfficiencyPlotter::h_eff_inner_eta_ID
private

Definition at line 69 of file EfficiencyPlotter.h.

◆ h_eff_inner_phi_ID

MonitorElement* EfficiencyPlotter::h_eff_inner_phi_ID
private

Definition at line 70 of file EfficiencyPlotter.h.

◆ h_eff_inner_pt_ID

MonitorElement* EfficiencyPlotter::h_eff_inner_pt_ID
private

Definition at line 68 of file EfficiencyPlotter.h.

◆ h_eff_phi_ID

MonitorElement* EfficiencyPlotter::h_eff_phi_ID
private

Definition at line 75 of file EfficiencyPlotter.h.

◆ h_eff_pt_detIsoID

MonitorElement* EfficiencyPlotter::h_eff_pt_detIsoID
private

Definition at line 76 of file EfficiencyPlotter.h.

◆ h_eff_pt_EB_detIsoID

MonitorElement* EfficiencyPlotter::h_eff_pt_EB_detIsoID
private

Definition at line 77 of file EfficiencyPlotter.h.

◆ h_eff_pt_EB_ID

MonitorElement* EfficiencyPlotter::h_eff_pt_EB_ID
private

Definition at line 71 of file EfficiencyPlotter.h.

◆ h_eff_pt_EB_pfIsodBID

MonitorElement* EfficiencyPlotter::h_eff_pt_EB_pfIsodBID
private

Definition at line 91 of file EfficiencyPlotter.h.

◆ h_eff_pt_EB_pfIsoID

MonitorElement* EfficiencyPlotter::h_eff_pt_EB_pfIsoID
private

Definition at line 80 of file EfficiencyPlotter.h.

◆ h_eff_pt_EE_detIsoID

MonitorElement* EfficiencyPlotter::h_eff_pt_EE_detIsoID
private

Definition at line 78 of file EfficiencyPlotter.h.

◆ h_eff_pt_EE_ID

MonitorElement* EfficiencyPlotter::h_eff_pt_EE_ID
private

Definition at line 72 of file EfficiencyPlotter.h.

◆ h_eff_pt_EE_pfIsodBID

MonitorElement* EfficiencyPlotter::h_eff_pt_EE_pfIsodBID
private

Definition at line 92 of file EfficiencyPlotter.h.

◆ h_eff_pt_EE_pfIsoID

MonitorElement* EfficiencyPlotter::h_eff_pt_EE_pfIsoID
private

Definition at line 81 of file EfficiencyPlotter.h.

◆ h_eff_pt_ID

MonitorElement* EfficiencyPlotter::h_eff_pt_ID
private

Definition at line 67 of file EfficiencyPlotter.h.

◆ h_eff_pt_pfIsodBID

MonitorElement* EfficiencyPlotter::h_eff_pt_pfIsodBID
private

Definition at line 90 of file EfficiencyPlotter.h.

◆ h_eff_pt_pfIsoID

MonitorElement* EfficiencyPlotter::h_eff_pt_pfIsoID
private

Definition at line 79 of file EfficiencyPlotter.h.

◆ h_eff_vtx_detIsoID

MonitorElement* EfficiencyPlotter::h_eff_vtx_detIsoID
private

Definition at line 83 of file EfficiencyPlotter.h.

◆ h_eff_vtx_EB_detIsoID

MonitorElement* EfficiencyPlotter::h_eff_vtx_EB_detIsoID
private

Definition at line 85 of file EfficiencyPlotter.h.

◆ h_eff_vtx_EB_pfIsodBID

MonitorElement* EfficiencyPlotter::h_eff_vtx_EB_pfIsodBID
private

Definition at line 95 of file EfficiencyPlotter.h.

◆ h_eff_vtx_EB_pfIsoID

MonitorElement* EfficiencyPlotter::h_eff_vtx_EB_pfIsoID
private

Definition at line 87 of file EfficiencyPlotter.h.

◆ h_eff_vtx_EE_detIsoID

MonitorElement* EfficiencyPlotter::h_eff_vtx_EE_detIsoID
private

Definition at line 86 of file EfficiencyPlotter.h.

◆ h_eff_vtx_EE_pfIsodBID

MonitorElement* EfficiencyPlotter::h_eff_vtx_EE_pfIsodBID
private

Definition at line 96 of file EfficiencyPlotter.h.

◆ h_eff_vtx_EE_pfIsoID

MonitorElement* EfficiencyPlotter::h_eff_vtx_EE_pfIsoID
private

Definition at line 88 of file EfficiencyPlotter.h.

◆ h_eff_vtx_pfIsodBID

MonitorElement* EfficiencyPlotter::h_eff_vtx_pfIsodBID
private

Definition at line 94 of file EfficiencyPlotter.h.

◆ h_eff_vtx_pfIsoID

MonitorElement* EfficiencyPlotter::h_eff_vtx_pfIsoID
private

Definition at line 84 of file EfficiencyPlotter.h.

◆ ID_

std::string EfficiencyPlotter::ID_
private

Definition at line 64 of file EfficiencyPlotter.h.

◆ metname

std::string EfficiencyPlotter::metname
private

Definition at line 43 of file EfficiencyPlotter.h.

◆ nevents

int EfficiencyPlotter::nevents
private

Definition at line 38 of file EfficiencyPlotter.h.

◆ nLumiSegs

unsigned int EfficiencyPlotter::nLumiSegs
private

Definition at line 39 of file EfficiencyPlotter.h.

◆ parameters

edm::ParameterSet EfficiencyPlotter::parameters
private

Definition at line 45 of file EfficiencyPlotter.h.

◆ phiBin

int EfficiencyPlotter::phiBin
private

Definition at line 56 of file EfficiencyPlotter.h.

◆ phiMax

double EfficiencyPlotter::phiMax
private

Definition at line 58 of file EfficiencyPlotter.h.

◆ phiMin

double EfficiencyPlotter::phiMin
private

Definition at line 57 of file EfficiencyPlotter.h.

◆ prescaleFactor

int EfficiencyPlotter::prescaleFactor
private

Definition at line 40 of file EfficiencyPlotter.h.

◆ ptBin

int EfficiencyPlotter::ptBin
private

Definition at line 52 of file EfficiencyPlotter.h.

◆ ptMax

double EfficiencyPlotter::ptMax
private

Definition at line 54 of file EfficiencyPlotter.h.

◆ ptMin

double EfficiencyPlotter::ptMin
private

Definition at line 53 of file EfficiencyPlotter.h.

◆ run

int EfficiencyPlotter::run
private

◆ theFolder

std::string EfficiencyPlotter::theFolder
private

Definition at line 97 of file EfficiencyPlotter.h.

◆ vtxBin

int EfficiencyPlotter::vtxBin
private

Definition at line 60 of file EfficiencyPlotter.h.

◆ vtxMax

double EfficiencyPlotter::vtxMax
private

Definition at line 62 of file EfficiencyPlotter.h.

◆ vtxMin

double EfficiencyPlotter::vtxMin
private

Definition at line 61 of file EfficiencyPlotter.h.