11 #include "TLorentzVector.h" 23 {
"nVertex", PlotConfig::nVertex},
24 {
"ETvsET", PlotConfig::ETvsET},
25 {
"PHIvsPHI", PlotConfig::PHIvsPHI}
32 theGsfElectronCollection_(
35 consumes <
std::vector<
reco::
Photon> > (ps.getParameter <
edm::InputTag > (
"photonCollection"))),
37 theBSCollection_(consumes <
reco::
BeamSpot > (ps.getParameter <
edm::InputTag > (
"beamSpotCollection"))),
38 triggerInputTag_(consumes <
trigger::TriggerEvent > (ps.getParameter <
edm::InputTag > (
"triggerInputTag"))),
39 triggerResultsInputTag_(consumes<
edm::TriggerResults>(ps.getParameter<
edm::InputTag>(
"triggerResults"))),
40 triggerProcess_(ps.getParameter <
std::
string > (
"triggerProcess")),
41 triggerNames_(ps.getParameter <
std::vector<
std::
string> > (
"triggerNames")),
42 histFolder_(ps.getParameter <
std::
string > (
"histFolder")),
43 efficiencyFolder_(histFolder_ +
"/efficiency_raw"),
44 stage2CaloLayer2EGammaToken_(
46 electronEfficiencyThresholds_(ps.getParameter <
std::vector<double> > (
"electronEfficiencyThresholds")),
47 electronEfficiencyBins_(ps.getParameter <
std::vector<double> > (
"electronEfficiencyBins")),
48 probeToL1Offset_(ps.getParameter <double> (
"probeToL1Offset")),
49 deepInspectionElectronThresholds_(ps.getParameter <
std::vector<double> > (
"deepInspectionElectronThresholds")),
50 photonEfficiencyThresholds_(ps.getParameter <
std::vector<double> > (
"photonEfficiencyThresholds")),
51 photonEfficiencyBins_(ps.getParameter <
std::vector<double> > (
"photonEfficiencyBins")),
54 tagAndProbleInvariantMass_(-1.),
61 edm::LogInfo(
"L1TEGammaOffline") <<
"Constructor " <<
"L1TEGammaOffline::L1TEGammaOffline " << std::endl;
69 edm::LogInfo(
"L1TEGammaOffline") <<
"Destructor L1TEGammaOffline::~L1TEGammaOffline " << std::endl;
77 edm::LogInfo(
"L1TEGammaOffline") <<
"L1TEGammaOffline::beginRun" << std::endl;
81 <<
" HLT config extraction failure with process name " 94 edm::LogInfo(
"L1TEGammaOffline") <<
"L1TEGammaOffline::bookHistograms" << std::endl;
105 edm::LogInfo(
"L1TEGammaOffline") <<
"L1TEGammaOffline::beginLuminosityBlock" << std::endl;
113 edm::LogInfo(
"L1TEGammaOffline") <<
"L1TEGammaOffline::analyze" << std::endl;
117 if (!triggerResultHandle.
isValid()) {
118 edm::LogWarning(
"L1TEGammaOffline") <<
"invalid edm::TriggerResults handle" << std::endl;
125 if (!triggerEventHandle.
isValid()) {
126 edm::LogWarning(
"L1TEGammaOffline") <<
"invalid trigger::TriggerEvent handle" << std::endl;
134 edm::LogWarning(
"L1TEGammaOffline") <<
"invalid collection: vertex " << std::endl;
138 unsigned int nVertex = vertexHandle->size();
158 edm::LogWarning(
"L1TEGammaOffline") <<
"invalid collection: GSF electrons " << std::endl;
161 if (gsfElectrons->empty()) {
162 LogDebug(
"L1TEGammaOffline") <<
"empty collection: GSF electrons " << std::endl;
166 edm::LogWarning(
"L1TEGammaOffline") <<
"invalid collection: L1 EGamma " << std::endl;
170 LogDebug(
"L1TEGammaOffline") <<
"Could not find a tag & probe pair" << std::endl;
177 double minDeltaR = 0.3;
179 bool foundMatch =
false;
181 int bunchCrossing = 0;
183 double currentDeltaR =
deltaR(
egamma->eta(),
egamma->phi(), probeElectron.eta(), probeElectron.phi());
184 if (currentDeltaR > minDeltaR) {
187 minDeltaR = currentDeltaR;
188 closestL1EGamma = *
egamma;
195 LogDebug(
"L1TEGammaOffline") <<
"Could not find a matching L1 EGamma " << std::endl;
199 double recoEt = probeElectron.et();
200 double recoEta = probeElectron.eta();
201 double recoPhi = probeElectron.phi();
203 double l1Et = closestL1EGamma.
et();
204 double l1Eta = closestL1EGamma.
eta();
205 double l1Phi = closestL1EGamma.
phi();
208 double outOfBounds = 9999;
209 double resolutionEt = recoEt > 0 ? (l1Et - recoEt) / recoEt : outOfBounds;
210 double resolutionEta =
std::abs(recoEta) > 0 ? (l1Eta - recoEta) / recoEta : outOfBounds;
211 double resolutionPhi =
std::abs(recoPhi) > 0 ? (l1Phi - recoPhi) / recoPhi : outOfBounds;
223 if(recoEt > threshold){
254 for (
auto threshold : electronEfficiencyThresholds_) {
257 if (l1Et > threshold) {
277 for (
auto threshold : electronEfficiencyThresholds_) {
280 if (l1Et > threshold) {
308 bool foundBoth(
false);
313 for (
auto tagElectron : *electrons) {
314 for (
auto probeElectron : *electrons) {
315 if (tagElectron.p4() == probeElectron.p4())
318 auto combined(tagElectron.p4() + probeElectron.p4());
319 auto tagAbsEta =
std::abs(tagElectron.eta());
320 auto probeAbsEta =
std::abs(probeElectron.eta());
323 bool isEBEEGap = tagElectron.isEBEEGap() || probeElectron.isEBEEGap();
324 bool passesEta = !isEBEEGap && tagAbsEta < 2.5 && probeAbsEta < 2.5;
325 bool passesCharge = tagElectron.charge() == -probeElectron.charge();
328 bool tagPassesMediumID =
passesMediumEleId(tagElectron) && tagElectron.et() > 30.;
330 bool passesInvariantMass = combined.M() > 60 && combined.M() < 120;
333 if (passesEta && passesInvariantMass && passesCharge && tagPassesMediumID &&
334 probePassesLooseID && tagMatchesHLTObject) {
356 const float ecal_energy_inverse = 1.0 / electron.
ecalEnergy();
358 const float eOverP =
std::abs(1.0 - eSCoverP) * ecal_energy_inverse;
360 if (electron.
isEB() && eOverP > 0.241)
362 if (electron.
isEE() && eOverP > 0.14)
391 const float ecal_energy_inverse = 1.0 / electron.
ecalEnergy();
393 const float eOverP =
std::abs(1.0 - eSCoverP) * ecal_energy_inverse;
395 if (electron.
isEB() && eOverP < 0.134)
397 if (electron.
isEE() && eOverP > 0.13)
427 return !matchedObjects.empty();
440 edm::LogWarning(
"L1TEGammaOffline") <<
"invalid collection: reco::Photons " << std::endl;
444 edm::LogWarning(
"L1TEGammaOffline") <<
"invalid collection: L1 EGamma " << std::endl;
448 if(photons->empty()){
449 LogDebug(
"L1TEGammaOffline") <<
"No photons found in event." << std::endl;
453 auto probePhoton = photons->at(0);
455 double minDeltaR = 0.3;
457 bool foundMatch =
false;
459 int bunchCrossing = 0;
461 double currentDeltaR =
deltaR(
egamma->eta(),
egamma->phi(), probePhoton.eta(), probePhoton.phi());
462 if (currentDeltaR > minDeltaR) {
465 minDeltaR = currentDeltaR;
466 closestL1EGamma = *
egamma;
473 LogDebug(
"L1TEGammaOffline") <<
"Could not find a matching L1 EGamma " << std::endl;
477 double recoEt = probePhoton.et();
478 double recoEta = probePhoton.eta();
479 double recoPhi = probePhoton.phi();
481 double l1Et = closestL1EGamma.
et();
482 double l1Eta = closestL1EGamma.
eta();
483 double l1Phi = closestL1EGamma.
phi();
486 double outOfBounds = 9999;
487 double resolutionEt = recoEt > 0 ? (l1Et - recoEt) / recoEt : outOfBounds;
488 double resolutionEta =
std::abs(recoEta) > 0 ? (l1Eta - recoEta) / recoEta : outOfBounds;
489 double resolutionPhi =
std::abs(recoPhi) > 0 ? (l1Phi - recoPhi) / recoPhi : outOfBounds;
514 if (l1Et > threshold) {
537 if (l1Et > threshold) {
550 edm::LogInfo(
"L1TEGammaOffline") <<
"L1TEGammaOffline::endLuminosityBlock" << std::endl;
558 edm::LogInfo(
"L1TEGammaOffline") <<
"L1TEGammaOffline::endRun" << std::endl;
577 "L1 EGamma E_{T} vs GSF Electron E_{T} (EB); GSF Electron E_{T} (GeV); L1 EGamma E_{T} (GeV)",
580 "L1 EGamma E_{T} vs GSF Electron E_{T} (EE); GSF Electron E_{T} (GeV); L1 EGamma E_{T} (GeV)",
583 "L1 EGamma E_{T} vs GSF Electron E_{T} (EB+EE); GSF Electron E_{T} (GeV); L1 EGamma E_{T} (GeV)",
588 "#phi_{electron}^{L1} vs #phi_{electron}^{offline} (EB); #phi_{electron}^{offline}; #phi_{electron}^{L1}",
589 templatePHIvsPHI.
nbinsX, templatePHIvsPHI.
xmin, templatePHIvsPHI.
xmax,
590 templatePHIvsPHI.
nbinsY, templatePHIvsPHI.
ymin, templatePHIvsPHI.
ymax);
592 "#phi_{electron}^{L1} vs #phi_{electron}^{offline} (EE); #phi_{electron}^{offline}; #phi_{electron}^{L1}",
593 templatePHIvsPHI.
nbinsX, templatePHIvsPHI.
xmin, templatePHIvsPHI.
xmax,
594 templatePHIvsPHI.
nbinsY, templatePHIvsPHI.
ymin, templatePHIvsPHI.
ymax);
596 "#phi_{electron}^{L1} vs #phi_{electron}^{offline} (EB+EE); #phi_{electron}^{offline}; #phi_{electron}^{L1}",
597 templatePHIvsPHI.
nbinsX, templatePHIvsPHI.
xmin, templatePHIvsPHI.
xmax,
598 templatePHIvsPHI.
nbinsY, templatePHIvsPHI.
ymin, templatePHIvsPHI.
ymax);
601 "L1 EGamma #eta vs GSF Electron #eta; GSF Electron #eta; L1 EGamma #eta", 100, -3, 3, 100, -3, 3);
605 "electron ET resolution (EB); (L1 EGamma E_{T} - GSF Electron E_{T})/GSF Electron E_{T}; events", 50, -1, 1.5);
607 "electron ET resolution (EE); (L1 EGamma E_{T} - GSF Electron E_{T})/GSF Electron E_{T}; events", 50, -1, 1.5);
609 "electron ET resolution (EB+EE); (L1 EGamma E_{T} - GSF Electron E_{T})/GSF Electron E_{T}; events", 50, -1, 1.5);
612 ibooker.
book1D(
"resolutionElectronPhi_EB",
613 "#phi_{electron} resolution (EB); (#phi_{electron}^{L1} - #phi_{electron}^{offline})/#phi_{electron}^{offline}; events",
616 ibooker.
book1D(
"resolutionElectronPhi_EE",
617 "electron #phi resolution (EE); (#phi_{electron}^{L1} - #phi_{electron}^{offline})/#phi_{electron}^{offline}; events",
620 ibooker.
book1D(
"resolutionElectronPhi_EB_EE",
621 "electron #phi resolution (EB+EE); (#phi_{electron}^{L1} - #phi_{electron}^{offline})/#phi_{electron}^{offline}; events",
625 "electron #eta resolution (EB); (L1 EGamma #eta - GSF Electron #eta)/GSF Electron #eta; events", 120, -0.3, 0.3);
630 int nBins = electronBins.size() - 1;
631 float* electronBinArray = &(electronBins[0]);
636 "efficiencyElectronET_EB_threshold_" + str_threshold +
"_Num",
637 "electron efficiency (EB) (numerator); GSF Electron E_{T} (GeV); events", nBins, electronBinArray);
639 "efficiencyElectronET_EE_threshold_" + str_threshold +
"_Num",
640 "electron efficiency (EE) (numerator); GSF Electron E_{T} (GeV); events", nBins, electronBinArray);
642 "efficiencyElectronET_EB_EE_threshold_" + str_threshold +
"_Num",
643 "electron efficiency (EB+EE) (numerator); GSF Electron E_{T} (GeV); events", nBins, electronBinArray);
645 "efficiencyElectronPhi_vs_Eta_threshold_" + str_threshold +
"_Num",
646 "electron efficiency (numerator); GSF Electron #eta; GSF Electron #phi",
647 50, -2.5, 2.5, 32, -3.2, 3.2);
650 "efficiencyElectronET_EB_threshold_" + str_threshold +
"_Den",
651 "electron efficiency (EB) (denominator); GSF Electron E_{T} (GeV); events", nBins, electronBinArray);
653 "efficiencyElectronET_EE_threshold_" + str_threshold +
"_Den",
654 "electron efficiency (EE) (denominator); GSF Electron E_{T} (GeV); events", nBins, electronBinArray);
656 "efficiencyElectronET_EB_EE_threshold_" + str_threshold +
"_Den",
657 "electron efficiency (EB+EE) (denominator); GSF Electron E_{T} (GeV); events", nBins, electronBinArray);
659 "efficiencyElectronPhi_vs_Eta_threshold_" + str_threshold +
"_Den",
660 "electron efficiency (denominator); GSF Electron #eta; GSF Electron #phi",
661 50, -2.5, 2.5, 32, -3.2, 3.2);
667 "efficiencyElectronEta_threshold_" + str_threshold +
"_Num",
668 "electron efficiency (numerator); GSF Electron #eta; events", 50, -2.5, 2.5);
670 "efficiencyElectronPhi_threshold_" + str_threshold +
"_Num",
671 "electron efficiency (numerator); GSF Electron #phi; events", 32, -3.2, 3.2);
673 "efficiencyElectronNVertex_threshold_" + str_threshold +
"_Num",
674 "electron efficiency (numerator); Nvtx; events", 30, 0, 60);
677 "efficiencyElectronEta_threshold_" + str_threshold +
"_Den",
678 "electron efficiency (denominator); GSF Electron #eta; events", 50, -2.5, 2.5);
680 "efficiencyElectronPhi_threshold_" + str_threshold +
"_Den",
681 "electron efficiency (denominator); GSF Electron #phi; events", 32, -3.2, 3.2);
683 "efficiencyElectronNVertex_threshold_" + str_threshold +
"_Den",
684 "electron efficiency (denominator); Nvtx; events", 30, 0, 60);
698 "L1 EGamma E_{T} vs Photon E_{T} (EB); Photon E_{T} (GeV); L1 EGamma E_{T} (GeV)",
701 "L1 EGamma E_{T} vs Photon E_{T} (EE); Photon E_{T} (GeV); L1 EGamma E_{T} (GeV)",
704 "L1 EGamma E_{T} vs Photon E_{T} (EB+EE); Photon E_{T} (GeV); L1 EGamma E_{T} (GeV)",
709 "#phi_{photon}^{L1} vs #phi_{photon}^{offline} (EB); #phi_{photon}^{offline}; #phi_{photon}^{L1}",
710 templatePHIvsPHI.
nbinsX, templatePHIvsPHI.
xmin, templatePHIvsPHI.
xmax,
711 templatePHIvsPHI.
nbinsY, templatePHIvsPHI.
ymin, templatePHIvsPHI.
ymax);
713 "#phi_{photon}^{L1} vs #phi_{photon}^{offline} (EE); #phi_{photon}^{offline}; #phi_{photon}^{L1}",
714 templatePHIvsPHI.
nbinsX, templatePHIvsPHI.
xmin, templatePHIvsPHI.
xmax,
715 templatePHIvsPHI.
nbinsY, templatePHIvsPHI.
ymin, templatePHIvsPHI.
ymax);
717 "#phi_{photon}^{L1} vs #phi_{photon}^{offline} (EB+EE); #phi_{photon}^{offline}; #phi_{photon}^{L1}",
718 templatePHIvsPHI.
nbinsX, templatePHIvsPHI.
xmin, templatePHIvsPHI.
xmax,
719 templatePHIvsPHI.
nbinsY, templatePHIvsPHI.
ymin, templatePHIvsPHI.
ymax);
722 "L1 EGamma #eta vs Photon #eta; Photon #eta; L1 EGamma #eta", 100, -3, 3, 100, -3, 3);
726 "photon ET resolution (EB); (L1 EGamma E_{T} - Photon E_{T})/ Photon E_{T}; events", 50, -1, 1.5);
728 "photon ET resolution (EE); (L1 EGamma E_{T} - Photon E_{T})/ Photon E_{T}; events", 50, -1, 1.5);
730 "photon ET resolution (EB+EE); (L1 EGamma E_{T} - Photon E_{T})/ Photon E_{T}; events", 50, -1, 1.5);
733 "#phi_{photon} resolution (EB); (#phi_{photon}^{L1} - #phi_{photon}^{offline})/#phi_{photon}^{offline}; events",
736 "photon #phi resolution (EE); (#phi_{photon}^{L1} - #phi_{photon}^{offline})/#phi_{photon}^{offline}; events",
739 "photon #phi resolution (EB+EE); (#phi_{photon}^{L1} - #phi_{photon}^{offline})/#phi_{photon}^{offline}; events",
743 "photon #eta resolution (EB); (L1 EGamma #eta - Photon #eta)/ Photon #eta; events", 120, -0.3, 0.3);
748 int nBins = photonBins.size() - 1;
749 float* photonBinArray = &(photonBins[0]);
754 "efficiencyPhotonET_EB_threshold_" + str_threshold +
"_Num",
755 "photon efficiency (EB) (numerator); Photon E_{T} (GeV); events", nBins, photonBinArray);
757 "efficiencyPhotonET_EE_threshold_" + str_threshold +
"_Num",
758 "photon efficiency (EE) (numerator); Photon E_{T} (GeV); events", nBins, photonBinArray);
760 "efficiencyPhotonET_EB_EE_threshold_" + str_threshold +
"_Num",
761 "photon efficiency (EB+EE) (numerator); Photon E_{T} (GeV); events", nBins, photonBinArray);
764 "efficiencyPhotonET_EB_threshold_" + str_threshold +
"_Den",
765 "photon efficiency (EB) (denominator); Photon E_{T} (GeV); events", nBins, photonBinArray);
767 "efficiencyPhotonET_EE_threshold_" + str_threshold +
"_Den",
768 "photon efficiency (EE) (denominator); Photon E_{T} (GeV); events", nBins, photonBinArray);
770 "efficiencyPhotonET_EB_EE_threshold_" + str_threshold +
"_Den",
771 "photon efficiency (EB+EE) (denominator); Photon E_{T} (GeV); events", nBins, photonBinArray);
std::vector< float > binsX
BXVector< EGamma > EGammaBxCollection
const_iterator end(int bx) const
void bookElectronHistos(DQMStore::IBooker &)
std::map< double, MonitorElement * > h_efficiencyElectronNVertex_pass_
void dqmBeginRun(edm::Run const &, edm::EventSetup const &) override
void fillPhotons(edm::Event const &e, const unsigned int nVertex)
std::vector< double > electronEfficiencyBins_
MonitorElement * h_resolutionElectronPhi_EB_EE_
MonitorElement * h_L1EGammaPhivsElectronPhi_EE_
edm::EDGetTokenT< reco::GsfElectronCollection > theGsfElectronCollection_
MonitorElement * h_tagAndProbeMass_
double eta() const final
momentum pseudorapidity
trigger::TriggerObjectCollection getMatchedTriggerObjects(double eta, double phi, double maxDeltaR, const trigger::TriggerObjectCollection triggerObjects)
std::map< double, MonitorElement * > h_efficiencyPhotonET_EE_total_
MonitorElement * h_L1EGammaETvsElectronET_EB_EE_
float eSuperClusterOverP() const
void endLuminosityBlock(edm::LuminosityBlock const &lumi, edm::EventSetup const &eSetup) override
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_pass_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EB_
bool passesMediumEleId(reco::GsfElectron const &electron) const
MonitorElement * h_L1EGammaETvsPhotonET_EB_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::EDGetTokenT< std::vector< reco::Photon > > thePhotonCollection_
#define DEFINE_FWK_MODULE(type)
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_EE_pass_
ParameterSet const & getParameterSet(ParameterSetID const &id)
const std::vector< std::string > & triggerNames() const
names of trigger paths
MonitorElement * h_L1EGammaETvsPhotonET_EE_
void fillElectrons(edm::Event const &e, const unsigned int nVertex)
std::map< double, MonitorElement * > h_efficiencyElectronPhi_pass_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_EE_total_
trigger::TriggerObjectCollection getTriggerObjects(const std::vector< edm::InputTag > &hltFilters, const trigger::TriggerEvent &triggerEvent)
MonitorElement * h_resolutionPhotonET_EE_
std::vector< Vertex > VertexCollection
collection of Vertex objects
MonitorElement * h_resolutionElectronET_EB_
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_total_
dqmoffline::l1t::HistDefinitions histDefinitions_
bool passesLooseEleId(reco::GsfElectron const &electron) const
void bookPhotonHistos(DQMStore::IBooker &)
~L1TEGammaOffline() override
std::map< double, MonitorElement * > h_efficiencyElectronPhi_vs_Eta_total_
L1TEGammaOffline(const edm::ParameterSet &ps)
MonitorElement * h_L1EGammaETvsElectronET_EB_
std::map< double, MonitorElement * > h_efficiencyElectronPhi_vs_Eta_pass_
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
void beginLuminosityBlock(edm::LuminosityBlock const &lumi, edm::EventSetup const &eSetup) override
MonitorElement * h_L1EGammaPhivsElectronPhi_EB_EE_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_EE_pass_
std::vector< unsigned int > getTriggerIndices(const std::vector< std::string > &requestedTriggers, const std::vector< std::string > &triggersInEvent)
MonitorElement * h_resolutionElectronET_EE_
edm::EDGetTokenT< trigger::TriggerEvent > triggerInputTag_
float deltaEtaSuperClusterTrackAtVtx() const
float hadronicOverEm() const
std::vector< double > electronEfficiencyThresholds_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EB_EE_
double et() const final
transverse energy
std::map< double, MonitorElement * > h_efficiencyElectronEta_pass_
float deltaPhiSuperClusterTrackAtVtx() const
std::map< double, MonitorElement * > h_efficiencyElectronNVertex_total_
MonitorElement * h_L1EGammaEtavsElectronEta_
std::string triggerProcess_
std::vector< edm::InputTag > getHLTFilters(const std::vector< unsigned int > &triggers, const HLTConfigProvider &hltConfig, const std::string triggerProcess)
MonitorElement * h_resolutionPhotonET_EB_
MonitorElement * book1D(Args &&...args)
edm::EDGetTokenT< l1t::EGammaBxCollection > stage2CaloLayer2EGammaToken_
MonitorElement * h_resolutionElectronEta_
Abs< T >::type abs(const T &t)
void endRun(edm::Run const &run, edm::EventSetup const &eSetup) override
reco::GsfElectron tagElectron_
void analyze(edm::Event const &e, edm::EventSetup const &eSetup) override
MonitorElement * h_resolutionPhotonEta_
float scSigmaIEtaIEta() const
MonitorElement * h_L1EGammaPhivsPhotonPhi_EE_
edm::EDGetTokenT< edm::TriggerResults > triggerResultsInputTag_
static const std::map< std::string, unsigned int > PlotConfigNames
std::map< double, MonitorElement * > h_efficiencyElectronET_EE_total_
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
double deltaR(double eta1, double eta2, double phi1, double phi2)
HLTConfigProvider hltConfig_
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
HistDefinitions readHistDefinitions(const edm::ParameterSet &ps, const std::map< std::string, unsigned int > &mapping)
bool findTagAndProbePair(edm::Handle< reco::GsfElectronCollection > const &electrons)
void setCurrentFolder(const std::string &fullpath)
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_total_
std::string efficiencyFolder_
std::map< double, MonitorElement * > h_efficiencyElectronET_EE_pass_
std::vector< double > deepInspectionElectronThresholds_
std::vector< float > binsY
reco::GsfElectron probeElectron_
MonitorElement * book2D(Args &&...args)
bool matchesAnHLTObject(double eta, double phi) const
MonitorElement * h_resolutionPhotonPhi_EB_EE_
std::vector< bool > getTriggerResults(const std::vector< unsigned int > &triggers, const edm::TriggerResults &triggerResults)
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
void fill2DWithinLimits(MonitorElement *mon, double valueX, double valueY, double weight=1.)
std::map< double, MonitorElement * > h_efficiencyElectronPhi_total_
MonitorElement * h_resolutionElectronET_EB_EE_
std::map< double, MonitorElement * > h_efficiencyElectronEta_total_
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_EE_total_
std::vector< std::string > triggerNames_
MonitorElement * h_resolutionElectronPhi_EB_
edm::TriggerResults triggerResults_
MonitorElement * h_nVertex_
void fillWithinLimits(MonitorElement *mon, double value, double weight=1.)
MonitorElement * h_resolutionPhotonPhi_EB_
std::vector< double > photonEfficiencyBins_
MonitorElement * h_L1EGammaETvsPhotonET_EB_EE_
MonitorElement * h_L1EGammaETvsElectronET_EE_
MonitorElement * h_resolutionElectronPhi_EE_
MonitorElement * h_L1EGammaEtavsPhotonEta_
MonitorElement * h_resolutionPhotonPhi_EE_
edm::EDGetTokenT< reco::VertexCollection > thePVCollection_
std::vector< unsigned int > triggerIndices_
std::vector< double > photonEfficiencyThresholds_
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_pass_
const_iterator begin(int bx) const
MonitorElement * h_L1EGammaPhivsElectronPhi_EB_
double phi() const final
momentum azimuthal angle
std::map< double, MonitorElement * > h_efficiencyPhotonET_EE_pass_
MonitorElement * h_resolutionPhotonET_EB_EE_
trigger::TriggerEvent triggerEvent_
std::vector< unsigned int > getFiredTriggerIndices(const std::vector< unsigned int > &triggers, const std::vector< bool > &triggerResults)
bool passesAnyTriggerFromList(const std::vector< unsigned int > &triggers, const edm::TriggerResults &triggerResults)