12 #include "TLorentzVector.h" 24 {
"nVertex", PlotConfig::nVertex},
25 {
"ETvsET", PlotConfig::ETvsET},
26 {
"PHIvsPHI", PlotConfig::PHIvsPHI}
33 theGsfElectronCollection_(
36 consumes <
std::vector<
reco::
Photon> > (ps.getParameter <
edm::InputTag > (
"photonCollection"))),
38 theBSCollection_(consumes <
reco::
BeamSpot > (ps.getParameter <
edm::InputTag > (
"beamSpotCollection"))),
39 triggerInputTag_(consumes <
trigger::TriggerEvent > (ps.getParameter <
edm::InputTag > (
"triggerInputTag"))),
40 triggerResultsInputTag_(consumes<
edm::TriggerResults>(ps.getParameter<
edm::InputTag>(
"triggerResults"))),
41 triggerProcess_(ps.getParameter <
std::
string > (
"triggerProcess")),
42 triggerNames_(ps.getParameter <
std::vector<
std::
string> > (
"triggerNames")),
43 histFolder_(ps.getParameter <
std::
string > (
"histFolder")),
44 efficiencyFolder_(histFolder_ +
"/efficiency_raw"),
45 stage2CaloLayer2EGammaToken_(
47 electronEfficiencyThresholds_(ps.getParameter <
std::vector<double> > (
"electronEfficiencyThresholds")),
48 electronEfficiencyBins_(ps.getParameter <
std::vector<double> > (
"electronEfficiencyBins")),
49 probeToL1Offset_(ps.getParameter <double> (
"probeToL1Offset")),
50 deepInspectionElectronThresholds_(ps.getParameter <
std::vector<double> > (
"deepInspectionElectronThresholds")),
51 photonEfficiencyThresholds_(ps.getParameter <
std::vector<double> > (
"photonEfficiencyThresholds")),
52 photonEfficiencyBins_(ps.getParameter <
std::vector<double> > (
"photonEfficiencyBins")),
53 maxDeltaRForL1Matching_(ps.getParameter <double> (
"maxDeltaRForL1Matching")),
54 maxDeltaRForHLTMatching_(ps.getParameter <double> (
"maxDeltaRForHLTMatching")),
55 recoToL1TThresholdFactor_(ps.getParameter <double> (
"recoToL1TThresholdFactor")),
58 tagAndProbleInvariantMass_(-1.),
66 h_L1EGammaETvsElectronET_EB_(),
67 h_L1EGammaETvsElectronET_EE_(),
68 h_L1EGammaETvsElectronET_EB_EE_(),
69 h_L1EGammaPhivsElectronPhi_EB_(),
70 h_L1EGammaPhivsElectronPhi_EE_(),
71 h_L1EGammaPhivsElectronPhi_EB_EE_(),
72 h_L1EGammaEtavsElectronEta_(),
73 h_resolutionElectronET_EB_(),
74 h_resolutionElectronET_EE_(),
75 h_resolutionElectronET_EB_EE_(),
76 h_resolutionElectronPhi_EB_(),
77 h_resolutionElectronPhi_EE_(),
78 h_resolutionElectronPhi_EB_EE_(),
79 h_resolutionElectronEta_(),
80 h_efficiencyElectronET_EB_pass_(),
81 h_efficiencyElectronET_EE_pass_(),
82 h_efficiencyElectronET_EB_EE_pass_(),
83 h_efficiencyElectronPhi_vs_Eta_pass_(),
84 h_efficiencyElectronEta_pass_(),
85 h_efficiencyElectronPhi_pass_(),
86 h_efficiencyElectronNVertex_pass_(),
87 h_efficiencyElectronET_EB_total_(),
88 h_efficiencyElectronET_EE_total_(),
89 h_efficiencyElectronET_EB_EE_total_(),
90 h_efficiencyElectronPhi_vs_Eta_total_(),
91 h_efficiencyElectronEta_total_(),
92 h_efficiencyElectronPhi_total_(),
93 h_efficiencyElectronNVertex_total_(),
94 h_L1EGammaETvsPhotonET_EB_(),
95 h_L1EGammaETvsPhotonET_EE_(),
96 h_L1EGammaETvsPhotonET_EB_EE_(),
97 h_L1EGammaPhivsPhotonPhi_EB_(),
98 h_L1EGammaPhivsPhotonPhi_EE_(),
99 h_L1EGammaPhivsPhotonPhi_EB_EE_(),
100 h_L1EGammaEtavsPhotonEta_(),
101 h_resolutionPhotonEta_(),
102 h_efficiencyPhotonET_EB_pass_(),
103 h_efficiencyPhotonET_EE_pass_(),
104 h_efficiencyPhotonET_EB_EE_pass_(),
105 h_efficiencyPhotonET_EB_total_(),
106 h_efficiencyPhotonET_EE_total_(),
107 h_efficiencyPhotonET_EB_EE_total_()
109 edm::LogInfo(
"L1TEGammaOffline") <<
"Constructor " <<
"L1TEGammaOffline::L1TEGammaOffline " << std::endl;
117 edm::LogInfo(
"L1TEGammaOffline") <<
"Destructor L1TEGammaOffline::~L1TEGammaOffline " << std::endl;
125 edm::LogInfo(
"L1TEGammaOffline") <<
"L1TEGammaOffline::beginRun" << std::endl;
129 <<
" HLT config extraction failure with process name " 142 edm::LogInfo(
"L1TEGammaOffline") <<
"L1TEGammaOffline::bookHistograms" << std::endl;
154 edm::LogInfo(
"L1TEGammaOffline") <<
"L1TEGammaOffline::analyze" << std::endl;
158 if (!triggerResultHandle.
isValid()) {
159 edm::LogWarning(
"L1TEGammaOffline") <<
"invalid edm::TriggerResults handle" << std::endl;
166 if (!triggerEventHandle.
isValid()) {
167 edm::LogWarning(
"L1TEGammaOffline") <<
"invalid trigger::TriggerEvent handle" << std::endl;
175 edm::LogWarning(
"L1TEGammaOffline") <<
"invalid collection: vertex " << std::endl;
179 unsigned int nVertex = vertexHandle->size();
199 edm::LogWarning(
"L1TEGammaOffline") <<
"invalid collection: GSF electrons " << std::endl;
202 if (gsfElectrons->empty()) {
203 LogDebug(
"L1TEGammaOffline") <<
"empty collection: GSF electrons " << std::endl;
207 edm::LogWarning(
"L1TEGammaOffline") <<
"invalid collection: L1 EGamma " << std::endl;
211 LogDebug(
"L1TEGammaOffline") <<
"Could not find a tag & probe pair" << std::endl;
220 bool foundMatch =
false;
222 int bunchCrossing = 0;
224 double currentDeltaR =
deltaR(
egamma->eta(),
egamma->phi(), probeElectron.eta(), probeElectron.phi());
225 if (currentDeltaR > minDeltaR) {
228 minDeltaR = currentDeltaR;
229 closestL1EGamma = *
egamma;
236 LogDebug(
"L1TEGammaOffline") <<
"Could not find a matching L1 EGamma " << std::endl;
240 double recoEt = probeElectron.et();
241 double recoEta = probeElectron.eta();
242 double recoPhi = probeElectron.phi();
244 double l1Et = closestL1EGamma.
et();
245 double l1Eta = closestL1EGamma.
eta();
246 double l1Phi = closestL1EGamma.
phi();
249 double outOfBounds = 9999;
250 double resolutionEt = recoEt > 0 ? (l1Et - recoEt) / recoEt : outOfBounds;
251 double resolutionEta = l1Eta - recoEta;
297 for (
auto threshold : electronEfficiencyThresholds_) {
300 if (l1Et > threshold) {
320 for (
auto threshold : electronEfficiencyThresholds_) {
323 if (l1Et > threshold) {
351 bool foundBoth(
false);
356 for (
auto tagElectron : *electrons) {
357 for (
auto probeElectron : *electrons) {
358 if (tagElectron.p4() == probeElectron.p4())
361 auto combined(tagElectron.p4() + probeElectron.p4());
362 auto tagAbsEta =
std::abs(tagElectron.eta());
363 auto probeAbsEta =
std::abs(probeElectron.eta());
366 bool isEBEEGap = tagElectron.isEBEEGap() || probeElectron.isEBEEGap();
367 bool passesEta = !isEBEEGap && tagAbsEta < 2.5 && probeAbsEta < 2.5;
368 bool passesCharge = tagElectron.charge() == -probeElectron.charge();
371 bool tagPassesMediumID =
passesMediumEleId(tagElectron) && tagElectron.et() > 30.;
373 bool passesInvariantMass = combined.M() > 60 && combined.M() < 120;
376 if (passesEta && passesInvariantMass && passesCharge && tagPassesMediumID &&
377 probePassesLooseID && tagMatchesHLTObject) {
399 const float ecal_energy_inverse = 1.0 / electron.
ecalEnergy();
401 const float eOverP =
std::abs(1.0 - eSCoverP) * ecal_energy_inverse;
403 if (electron.
isEB() && eOverP > 0.241)
405 if (electron.
isEE() && eOverP > 0.14)
434 const float ecal_energy_inverse = 1.0 / electron.
ecalEnergy();
436 const float eOverP =
std::abs(1.0 - eSCoverP) * ecal_energy_inverse;
438 if (electron.
isEB() && eOverP < 0.134)
440 if (electron.
isEE() && eOverP > 0.13)
470 return !matchedObjects.empty();
483 edm::LogWarning(
"L1TEGammaOffline") <<
"invalid collection: reco::Photons " << std::endl;
487 edm::LogWarning(
"L1TEGammaOffline") <<
"invalid collection: L1 EGamma " << std::endl;
491 if(photons->empty()){
492 LogDebug(
"L1TEGammaOffline") <<
"No photons found in event." << std::endl;
496 auto probePhoton = photons->at(0);
498 double minDeltaR = 0.3;
500 bool foundMatch =
false;
502 int bunchCrossing = 0;
504 double currentDeltaR =
deltaR(
egamma->eta(),
egamma->phi(), probePhoton.eta(), probePhoton.phi());
505 if (currentDeltaR > minDeltaR) {
508 minDeltaR = currentDeltaR;
509 closestL1EGamma = *
egamma;
516 LogDebug(
"L1TEGammaOffline") <<
"Could not find a matching L1 EGamma " << std::endl;
520 double recoEt = probePhoton.et();
521 double recoEta = probePhoton.eta();
522 double recoPhi = probePhoton.phi();
524 double l1Et = closestL1EGamma.
et();
525 double l1Eta = closestL1EGamma.
eta();
526 double l1Phi = closestL1EGamma.
phi();
529 double outOfBounds = 9999;
530 double resolutionEt = recoEt > 0 ? (l1Et - recoEt) / recoEt : outOfBounds;
531 double resolutionEta = l1Eta - recoEta;
557 if (l1Et > threshold) {
580 if (l1Et > threshold) {
593 edm::LogInfo(
"L1TEGammaOffline") <<
"L1TEGammaOffline::endRun" << std::endl;
612 "L1 EGamma E_{T} vs GSF Electron E_{T} (EB); GSF Electron E_{T} (GeV); L1 EGamma E_{T} (GeV)",
615 "L1 EGamma E_{T} vs GSF Electron E_{T} (EE); GSF Electron E_{T} (GeV); L1 EGamma E_{T} (GeV)",
618 "L1 EGamma E_{T} vs GSF Electron E_{T} (EB+EE); GSF Electron E_{T} (GeV); L1 EGamma E_{T} (GeV)",
623 "#phi_{electron}^{L1} vs #phi_{electron}^{offline} (EB); #phi_{electron}^{offline}; #phi_{electron}^{L1}",
624 templatePHIvsPHI.
nbinsX, templatePHIvsPHI.
xmin, templatePHIvsPHI.
xmax,
625 templatePHIvsPHI.
nbinsY, templatePHIvsPHI.
ymin, templatePHIvsPHI.
ymax);
627 "#phi_{electron}^{L1} vs #phi_{electron}^{offline} (EE); #phi_{electron}^{offline}; #phi_{electron}^{L1}",
628 templatePHIvsPHI.
nbinsX, templatePHIvsPHI.
xmin, templatePHIvsPHI.
xmax,
629 templatePHIvsPHI.
nbinsY, templatePHIvsPHI.
ymin, templatePHIvsPHI.
ymax);
631 "#phi_{electron}^{L1} vs #phi_{electron}^{offline} (EB+EE); #phi_{electron}^{offline}; #phi_{electron}^{L1}",
632 templatePHIvsPHI.
nbinsX, templatePHIvsPHI.
xmin, templatePHIvsPHI.
xmax,
633 templatePHIvsPHI.
nbinsY, templatePHIvsPHI.
ymin, templatePHIvsPHI.
ymax);
636 "L1 EGamma #eta vs GSF Electron #eta; GSF Electron #eta; L1 EGamma #eta", 100, -3, 3, 100, -3, 3);
640 "electron ET resolution (EB); (L1 EGamma E_{T} - GSF Electron E_{T})/GSF Electron E_{T}; events", 50, -1, 1.5);
642 "electron ET resolution (EE); (L1 EGamma E_{T} - GSF Electron E_{T})/GSF Electron E_{T}; events", 50, -1, 1.5);
644 "electron ET resolution (EB+EE); (L1 EGamma E_{T} - GSF Electron E_{T})/GSF Electron E_{T}; events", 50, -1, 1.5);
647 ibooker.
book1D(
"resolutionElectronPhi_EB",
648 "#phi_{electron} resolution (EB); #phi_{electron}^{L1} - #phi_{electron}^{offline}; events",
651 ibooker.
book1D(
"resolutionElectronPhi_EE",
652 "electron #phi resolution (EE); #phi_{electron}^{L1} - #phi_{electron}^{offline}; events",
655 ibooker.
book1D(
"resolutionElectronPhi_EB_EE",
656 "electron #phi resolution (EB+EE); #phi_{electron}^{L1} - #phi_{electron}^{offline}; events",
660 "electron #eta resolution (EB); L1 EGamma #eta - GSF Electron #eta; events", 120, -0.3, 0.3);
665 int nBins = electronBins.size() - 1;
666 float* electronBinArray = &(electronBins[0]);
671 "efficiencyElectronET_EB_threshold_" + str_threshold +
"_Num",
672 "electron efficiency (EB) (numerator); GSF Electron E_{T} (GeV); events", nBins, electronBinArray);
674 "efficiencyElectronET_EE_threshold_" + str_threshold +
"_Num",
675 "electron efficiency (EE) (numerator); GSF Electron E_{T} (GeV); events", nBins, electronBinArray);
677 "efficiencyElectronET_EB_EE_threshold_" + str_threshold +
"_Num",
678 "electron efficiency (EB+EE) (numerator); GSF Electron E_{T} (GeV); events", nBins, electronBinArray);
680 "efficiencyElectronPhi_vs_Eta_threshold_" + str_threshold +
"_Num",
681 "electron efficiency (numerator); GSF Electron #eta; GSF Electron #phi",
682 50, -2.5, 2.5, 32, -3.2, 3.2);
685 "efficiencyElectronET_EB_threshold_" + str_threshold +
"_Den",
686 "electron efficiency (EB) (denominator); GSF Electron E_{T} (GeV); events", nBins, electronBinArray);
688 "efficiencyElectronET_EE_threshold_" + str_threshold +
"_Den",
689 "electron efficiency (EE) (denominator); GSF Electron E_{T} (GeV); events", nBins, electronBinArray);
691 "efficiencyElectronET_EB_EE_threshold_" + str_threshold +
"_Den",
692 "electron efficiency (EB+EE) (denominator); GSF Electron E_{T} (GeV); events", nBins, electronBinArray);
694 "efficiencyElectronPhi_vs_Eta_threshold_" + str_threshold +
"_Den",
695 "electron efficiency (denominator); GSF Electron #eta; GSF Electron #phi",
696 50, -2.5, 2.5, 32, -3.2, 3.2);
702 "efficiencyElectronEta_threshold_" + str_threshold +
"_Num",
703 "electron efficiency (numerator); GSF Electron #eta; events", 50, -2.5, 2.5);
705 "efficiencyElectronPhi_threshold_" + str_threshold +
"_Num",
706 "electron efficiency (numerator); GSF Electron #phi; events", 32, -3.2, 3.2);
708 "efficiencyElectronNVertex_threshold_" + str_threshold +
"_Num",
709 "electron efficiency (numerator); Nvtx; events", 30, 0, 60);
712 "efficiencyElectronEta_threshold_" + str_threshold +
"_Den",
713 "electron efficiency (denominator); GSF Electron #eta; events", 50, -2.5, 2.5);
715 "efficiencyElectronPhi_threshold_" + str_threshold +
"_Den",
716 "electron efficiency (denominator); GSF Electron #phi; events", 32, -3.2, 3.2);
718 "efficiencyElectronNVertex_threshold_" + str_threshold +
"_Den",
719 "electron efficiency (denominator); Nvtx; events", 30, 0, 60);
733 "L1 EGamma E_{T} vs Photon E_{T} (EB); Photon E_{T} (GeV); L1 EGamma E_{T} (GeV)",
736 "L1 EGamma E_{T} vs Photon E_{T} (EE); Photon E_{T} (GeV); L1 EGamma E_{T} (GeV)",
739 "L1 EGamma E_{T} vs Photon E_{T} (EB+EE); Photon E_{T} (GeV); L1 EGamma E_{T} (GeV)",
744 "#phi_{photon}^{L1} vs #phi_{photon}^{offline} (EB); #phi_{photon}^{offline}; #phi_{photon}^{L1}",
745 templatePHIvsPHI.
nbinsX, templatePHIvsPHI.
xmin, templatePHIvsPHI.
xmax,
746 templatePHIvsPHI.
nbinsY, templatePHIvsPHI.
ymin, templatePHIvsPHI.
ymax);
748 "#phi_{photon}^{L1} vs #phi_{photon}^{offline} (EE); #phi_{photon}^{offline}; #phi_{photon}^{L1}",
749 templatePHIvsPHI.
nbinsX, templatePHIvsPHI.
xmin, templatePHIvsPHI.
xmax,
750 templatePHIvsPHI.
nbinsY, templatePHIvsPHI.
ymin, templatePHIvsPHI.
ymax);
752 "#phi_{photon}^{L1} vs #phi_{photon}^{offline} (EB+EE); #phi_{photon}^{offline}; #phi_{photon}^{L1}",
753 templatePHIvsPHI.
nbinsX, templatePHIvsPHI.
xmin, templatePHIvsPHI.
xmax,
754 templatePHIvsPHI.
nbinsY, templatePHIvsPHI.
ymin, templatePHIvsPHI.
ymax);
757 "L1 EGamma #eta vs Photon #eta; Photon #eta; L1 EGamma #eta", 100, -3, 3, 100, -3, 3);
761 "photon ET resolution (EB); (L1 EGamma E_{T} - Photon E_{T})/ Photon E_{T}; events", 50, -1, 1.5);
763 "photon ET resolution (EE); (L1 EGamma E_{T} - Photon E_{T})/ Photon E_{T}; events", 50, -1, 1.5);
765 "photon ET resolution (EB+EE); (L1 EGamma E_{T} - Photon E_{T})/ Photon E_{T}; events", 50, -1, 1.5);
768 "#phi_{photon} resolution (EB); #phi_{photon}^{L1} - #phi_{photon}^{offline}; events",
771 "photon #phi resolution (EE); #phi_{photon}^{L1} - #phi_{photon}^{offline}; events",
774 "photon #phi resolution (EB+EE); #phi_{photon}^{L1} - #phi_{photon}^{offline}; events",
778 "photon #eta resolution (EB); L1 EGamma #eta - Photon #eta; events", 120, -0.3, 0.3);
783 int nBins = photonBins.size() - 1;
784 float* photonBinArray = &(photonBins[0]);
789 "efficiencyPhotonET_EB_threshold_" + str_threshold +
"_Num",
790 "photon efficiency (EB) (numerator); Photon E_{T} (GeV); events", nBins, photonBinArray);
792 "efficiencyPhotonET_EE_threshold_" + str_threshold +
"_Num",
793 "photon efficiency (EE) (numerator); Photon E_{T} (GeV); events", nBins, photonBinArray);
795 "efficiencyPhotonET_EB_EE_threshold_" + str_threshold +
"_Num",
796 "photon efficiency (EB+EE) (numerator); Photon E_{T} (GeV); events", nBins, photonBinArray);
799 "efficiencyPhotonET_EB_threshold_" + str_threshold +
"_Den",
800 "photon efficiency (EB) (denominator); Photon E_{T} (GeV); events", nBins, photonBinArray);
802 "efficiencyPhotonET_EE_threshold_" + str_threshold +
"_Den",
803 "photon efficiency (EE) (denominator); Photon E_{T} (GeV); events", nBins, photonBinArray);
805 "efficiencyPhotonET_EB_EE_threshold_" + str_threshold +
"_Den",
806 "photon efficiency (EB+EE) (denominator); Photon E_{T} (GeV); events", nBins, photonBinArray);
817 std::vector<MonitorElement *> monElementstoNormalize = {
827 for (
auto mon : monElementstoNormalize) {
828 if (
mon !=
nullptr) {
829 auto h =
mon->getTH2F();
831 h->Scale(1,
"width");
std::vector< float > binsX
constexpr double deltaPhi(double phi1, double phi2)
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_
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
float eSuperClusterOverP() const
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_pass_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EB_
double maxDeltaRForL1Matching_
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_
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
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_
void normalise2DHistogramsToBinArea()
float deltaEtaSuperClusterTrackAtVtx() const
#define DEFINE_FWK_MODULE(type)
double maxDeltaRForHLTMatching_
float hadronicOverEm() const
std::vector< double > electronEfficiencyThresholds_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EB_EE_
void setCurrentFolder(std::string const &fullpath)
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
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)
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_
double recoToL1TThresholdFactor_
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)