12 #include "TLorentzVector.h" 29 : theGsfElectronCollection_(
36 triggerProcess_(ps.getParameter<
std::
string>(
"triggerProcess")),
38 histFolder_(ps.getParameter<
std::
string>(
"histFolder")),
39 efficiencyFolder_(histFolder_ +
"/efficiency_raw"),
40 stage2CaloLayer2EGammaToken_(
42 electronEfficiencyThresholds_(ps.getParameter<
std::
vector<double> >(
"electronEfficiencyThresholds")),
43 electronEfficiencyBins_(ps.getParameter<
std::
vector<double> >(
"electronEfficiencyBins")),
44 probeToL1Offset_(ps.getParameter<double>(
"probeToL1Offset")),
45 deepInspectionElectronThresholds_(ps.getParameter<
std::
vector<double> >(
"deepInspectionElectronThresholds")),
46 photonEfficiencyThresholds_(ps.getParameter<
std::
vector<double> >(
"photonEfficiencyThresholds")),
47 photonEfficiencyBins_(ps.getParameter<
std::
vector<double> >(
"photonEfficiencyBins")),
48 maxDeltaRForL1Matching_(ps.getParameter<double>(
"maxDeltaRForL1Matching")),
49 maxDeltaRForHLTMatching_(ps.getParameter<double>(
"maxDeltaRForHLTMatching")),
50 recoToL1TThresholdFactor_(ps.getParameter<double>(
"recoToL1TThresholdFactor")),
53 tagAndProbleInvariantMass_(-1.),
61 h_L1EGammaETvsElectronET_EB_(),
62 h_L1EGammaETvsElectronET_EE_(),
63 h_L1EGammaETvsElectronET_EB_EE_(),
64 h_L1EGammaPhivsElectronPhi_EB_(),
65 h_L1EGammaPhivsElectronPhi_EE_(),
66 h_L1EGammaPhivsElectronPhi_EB_EE_(),
67 h_L1EGammaEtavsElectronEta_(),
68 h_resolutionElectronET_EB_(),
69 h_resolutionElectronET_EE_(),
70 h_resolutionElectronET_EB_EE_(),
71 h_resolutionElectronPhi_EB_(),
72 h_resolutionElectronPhi_EE_(),
73 h_resolutionElectronPhi_EB_EE_(),
74 h_resolutionElectronEta_(),
75 h_efficiencyElectronET_EB_pass_(),
76 h_efficiencyElectronET_EE_pass_(),
77 h_efficiencyElectronET_EB_EE_pass_(),
78 h_efficiencyElectronPhi_vs_Eta_pass_(),
79 h_efficiencyElectronEta_pass_(),
80 h_efficiencyElectronPhi_pass_(),
81 h_efficiencyElectronNVertex_pass_(),
82 h_efficiencyElectronET_EB_total_(),
83 h_efficiencyElectronET_EE_total_(),
84 h_efficiencyElectronET_EB_EE_total_(),
85 h_efficiencyElectronPhi_vs_Eta_total_(),
86 h_efficiencyElectronEta_total_(),
87 h_efficiencyElectronPhi_total_(),
88 h_efficiencyElectronNVertex_total_(),
89 h_L1EGammaETvsPhotonET_EB_(),
90 h_L1EGammaETvsPhotonET_EE_(),
91 h_L1EGammaETvsPhotonET_EB_EE_(),
92 h_L1EGammaPhivsPhotonPhi_EB_(),
93 h_L1EGammaPhivsPhotonPhi_EE_(),
94 h_L1EGammaPhivsPhotonPhi_EB_EE_(),
95 h_L1EGammaEtavsPhotonEta_(),
96 h_resolutionPhotonEta_(),
97 h_efficiencyPhotonET_EB_pass_(),
98 h_efficiencyPhotonET_EE_pass_(),
99 h_efficiencyPhotonET_EB_EE_pass_(),
100 h_efficiencyPhotonET_EB_total_(),
101 h_efficiencyPhotonET_EE_total_(),
102 h_efficiencyPhotonET_EB_EE_total_() {
104 <<
"L1TEGammaOffline::L1TEGammaOffline " << std::endl;
111 edm::LogInfo(
"L1TEGammaOffline") <<
"Destructor L1TEGammaOffline::~L1TEGammaOffline " << std::endl;
118 edm::LogInfo(
"L1TEGammaOffline") <<
"L1TEGammaOffline::beginRun" << std::endl;
133 edm::LogInfo(
"L1TEGammaOffline") <<
"L1TEGammaOffline::bookHistograms" << std::endl;
144 edm::LogInfo(
"L1TEGammaOffline") <<
"L1TEGammaOffline::analyze" << std::endl;
148 if (!triggerResultHandle.
isValid()) {
149 edm::LogWarning(
"L1TEGammaOffline") <<
"invalid edm::TriggerResults handle" << std::endl;
156 if (!triggerEventHandle.
isValid()) {
157 edm::LogWarning(
"L1TEGammaOffline") <<
"invalid trigger::TriggerEvent handle" << std::endl;
165 edm::LogWarning(
"L1TEGammaOffline") <<
"invalid collection: vertex " << std::endl;
169 unsigned int nVertex = vertexHandle->size();
188 edm::LogWarning(
"L1TEGammaOffline") <<
"invalid collection: GSF electrons " << std::endl;
192 LogDebug(
"L1TEGammaOffline") <<
"empty collection: GSF electrons " << std::endl;
196 edm::LogWarning(
"L1TEGammaOffline") <<
"invalid collection: L1 EGamma " << std::endl;
200 LogDebug(
"L1TEGammaOffline") <<
"Could not find a tag & probe pair" << std::endl;
209 bool foundMatch =
false;
211 int bunchCrossing = 0;
213 double currentDeltaR =
deltaR(
egamma->eta(),
egamma->phi(), probeElectron.eta(), probeElectron.phi());
218 closestL1EGamma = *
egamma;
224 LogDebug(
"L1TEGammaOffline") <<
"Could not find a matching L1 EGamma " << std::endl;
228 double recoEt = probeElectron.et();
229 double recoEta = probeElectron.eta();
230 double recoPhi = probeElectron.phi();
232 double l1Et = closestL1EGamma.
et();
233 double l1Eta = closestL1EGamma.
eta();
234 double l1Phi = closestL1EGamma.
phi();
237 double outOfBounds = 9999;
238 double resolutionEt = recoEt > 0 ? (l1Et - recoEt) / recoEt : outOfBounds;
338 bool foundBoth(
false);
343 for (
const auto& tagElectron : *
electrons) {
344 for (
const auto& probeElectron : *
electrons) {
345 if (tagElectron.p4() == probeElectron.p4())
348 auto combined(tagElectron.p4() + probeElectron.p4());
349 auto tagAbsEta =
std::abs(tagElectron.eta());
350 auto probeAbsEta =
std::abs(probeElectron.eta());
353 bool isEBEEGap = tagElectron.isEBEEGap() || probeElectron.isEBEEGap();
354 bool passesEta = !isEBEEGap && tagAbsEta < 2.5 && probeAbsEta < 2.5;
355 bool passesCharge = tagElectron.charge() == -probeElectron.charge();
358 bool tagPassesMediumID =
passesMediumEleId(tagElectron) && tagElectron.et() > 30.;
360 bool passesInvariantMass = combined.M() > 60 && combined.M() < 120;
363 if (passesEta && passesInvariantMass && passesCharge && tagPassesMediumID && probePassesLooseID &&
364 tagMatchesHLTObject) {
384 const float ecal_energy_inverse = 1.0 /
electron.ecalEnergy();
385 const float eSCoverP =
electron.eSuperClusterOverP();
386 const float eOverP =
std::abs(1.0 - eSCoverP) * ecal_energy_inverse;
418 const float ecal_energy_inverse = 1.0 /
electron.ecalEnergy();
419 const float eSCoverP =
electron.eSuperClusterOverP();
420 const float eOverP =
std::abs(1.0 - eSCoverP) * ecal_energy_inverse;
455 return !matchedObjects.empty();
467 edm::LogWarning(
"L1TEGammaOffline") <<
"invalid collection: reco::Photons " << std::endl;
471 edm::LogWarning(
"L1TEGammaOffline") <<
"invalid collection: L1 EGamma " << std::endl;
476 LogDebug(
"L1TEGammaOffline") <<
"No photons found in event." << std::endl;
480 auto probePhoton =
photons->at(0);
484 bool foundMatch =
false;
486 int bunchCrossing = 0;
488 double currentDeltaR =
deltaR(
egamma->eta(),
egamma->phi(), probePhoton.eta(), probePhoton.phi());
493 closestL1EGamma = *
egamma;
499 LogDebug(
"L1TEGammaOffline") <<
"Could not find a matching L1 EGamma " << std::endl;
503 double recoEt = probePhoton.et();
504 double recoEta = probePhoton.eta();
505 double recoPhi = probePhoton.phi();
507 double l1Et = closestL1EGamma.
et();
508 double l1Eta = closestL1EGamma.
eta();
509 double l1Phi = closestL1EGamma.
phi();
512 double outOfBounds = 9999;
513 double resolutionEt = recoEt > 0 ? (l1Et - recoEt) / recoEt : outOfBounds;
585 ibooker.
setScope(MonitorElementData::Scope::RUN);
593 ibooker.
book2D(
"L1EGammaETvsElectronET_EB",
594 "L1 EGamma E_{T} vs GSF Electron E_{T} (EB); GSF Electron E_{T} (GeV); L1 EGamma E_{T} (GeV)",
596 &templateETvsET.
binsX[0],
598 &templateETvsET.
binsY[0]);
600 ibooker.
book2D(
"L1EGammaETvsElectronET_EE",
601 "L1 EGamma E_{T} vs GSF Electron E_{T} (EE); GSF Electron E_{T} (GeV); L1 EGamma E_{T} (GeV)",
603 &templateETvsET.
binsX[0],
605 &templateETvsET.
binsY[0]);
607 ibooker.
book2D(
"L1EGammaETvsElectronET_EB_EE",
608 "L1 EGamma E_{T} vs GSF Electron E_{T} (EB+EE); GSF Electron E_{T} (GeV); L1 EGamma E_{T} (GeV)",
610 &templateETvsET.
binsX[0],
612 &templateETvsET.
binsY[0]);
616 "L1EGammaPhivsElectronPhi_EB",
617 "#phi_{electron}^{L1} vs #phi_{electron}^{offline} (EB); #phi_{electron}^{offline}; #phi_{electron}^{L1}",
619 templatePHIvsPHI.
xmin,
620 templatePHIvsPHI.
xmax,
622 templatePHIvsPHI.
ymin,
623 templatePHIvsPHI.
ymax);
625 "L1EGammaPhivsElectronPhi_EE",
626 "#phi_{electron}^{L1} vs #phi_{electron}^{offline} (EE); #phi_{electron}^{offline}; #phi_{electron}^{L1}",
628 templatePHIvsPHI.
xmin,
629 templatePHIvsPHI.
xmax,
631 templatePHIvsPHI.
ymin,
632 templatePHIvsPHI.
ymax);
634 "L1EGammaPhivsElectronPhi_EB_EE",
635 "#phi_{electron}^{L1} vs #phi_{electron}^{offline} (EB+EE); #phi_{electron}^{offline}; #phi_{electron}^{L1}",
637 templatePHIvsPHI.
xmin,
638 templatePHIvsPHI.
xmax,
640 templatePHIvsPHI.
ymin,
641 templatePHIvsPHI.
ymax);
644 "L1 EGamma #eta vs GSF Electron #eta; GSF Electron #eta; L1 EGamma #eta",
654 ibooker.
book1D(
"resolutionElectronET_EB",
655 "electron ET resolution (EB); (L1 EGamma E_{T} - GSF Electron E_{T})/GSF Electron E_{T}; events",
660 ibooker.
book1D(
"resolutionElectronET_EE",
661 "electron ET resolution (EE); (L1 EGamma E_{T} - GSF Electron E_{T})/GSF Electron E_{T}; events",
666 "resolutionElectronET_EB_EE",
667 "electron ET resolution (EB+EE); (L1 EGamma E_{T} - GSF Electron E_{T})/GSF Electron E_{T}; events",
673 ibooker.
book1D(
"resolutionElectronPhi_EB",
674 "#phi_{electron} resolution (EB); #phi_{electron}^{L1} - #phi_{electron}^{offline}; events",
679 ibooker.
book1D(
"resolutionElectronPhi_EE",
680 "electron #phi resolution (EE); #phi_{electron}^{L1} - #phi_{electron}^{offline}; events",
685 ibooker.
book1D(
"resolutionElectronPhi_EB_EE",
686 "electron #phi resolution (EB+EE); #phi_{electron}^{L1} - #phi_{electron}^{offline}; events",
692 ibooker.
book1D(
"resolutionElectronEta",
693 "electron #eta resolution (EB); L1 EGamma #eta - GSF Electron #eta; events",
701 int nBins = electronBins.size() - 1;
702 float* electronBinArray = &(electronBins[0]);
707 ibooker.
book1D(
"efficiencyElectronET_EB_threshold_" + str_threshold +
"_Num",
708 "electron efficiency (EB) (numerator); GSF Electron E_{T} (GeV); events",
712 ibooker.
book1D(
"efficiencyElectronET_EE_threshold_" + str_threshold +
"_Num",
713 "electron efficiency (EE) (numerator); GSF Electron E_{T} (GeV); events",
717 ibooker.
book1D(
"efficiencyElectronET_EB_EE_threshold_" + str_threshold +
"_Num",
718 "electron efficiency (EB+EE) (numerator); GSF Electron E_{T} (GeV); events",
722 ibooker.
book2D(
"efficiencyElectronPhi_vs_Eta_threshold_" + str_threshold +
"_Num",
723 "electron efficiency (numerator); GSF Electron #eta; GSF Electron #phi",
732 ibooker.
book1D(
"efficiencyElectronET_EB_threshold_" + str_threshold +
"_Den",
733 "electron efficiency (EB) (denominator); GSF Electron E_{T} (GeV); events",
737 ibooker.
book1D(
"efficiencyElectronET_EE_threshold_" + str_threshold +
"_Den",
738 "electron efficiency (EE) (denominator); GSF Electron E_{T} (GeV); events",
742 ibooker.
book1D(
"efficiencyElectronET_EB_EE_threshold_" + str_threshold +
"_Den",
743 "electron efficiency (EB+EE) (denominator); GSF Electron E_{T} (GeV); events",
747 ibooker.
book2D(
"efficiencyElectronPhi_vs_Eta_threshold_" + str_threshold +
"_Den",
748 "electron efficiency (denominator); GSF Electron #eta; GSF Electron #phi",
760 ibooker.
book1D(
"efficiencyElectronEta_threshold_" + str_threshold +
"_Num",
761 "electron efficiency (numerator); GSF Electron #eta; events",
766 ibooker.
book1D(
"efficiencyElectronPhi_threshold_" + str_threshold +
"_Num",
767 "electron efficiency (numerator); GSF Electron #phi; events",
772 ibooker.
book1D(
"efficiencyElectronNVertex_threshold_" + str_threshold +
"_Num",
773 "electron efficiency (numerator); Nvtx; events",
779 ibooker.
book1D(
"efficiencyElectronEta_threshold_" + str_threshold +
"_Den",
780 "electron efficiency (denominator); GSF Electron #eta; events",
785 ibooker.
book1D(
"efficiencyElectronPhi_threshold_" + str_threshold +
"_Den",
786 "electron efficiency (denominator); GSF Electron #phi; events",
791 ibooker.
book1D(
"efficiencyElectronNVertex_threshold_" + str_threshold +
"_Den",
792 "electron efficiency (denominator); Nvtx; events",
807 ibooker.
book2D(
"L1EGammaETvsPhotonET_EB",
808 "L1 EGamma E_{T} vs Photon E_{T} (EB); Photon E_{T} (GeV); L1 EGamma E_{T} (GeV)",
810 &templateETvsET.
binsX[0],
812 &templateETvsET.
binsY[0]);
814 ibooker.
book2D(
"L1EGammaETvsPhotonET_EE",
815 "L1 EGamma E_{T} vs Photon E_{T} (EE); Photon E_{T} (GeV); L1 EGamma E_{T} (GeV)",
817 &templateETvsET.
binsX[0],
819 &templateETvsET.
binsY[0]);
821 ibooker.
book2D(
"L1EGammaETvsPhotonET_EB_EE",
822 "L1 EGamma E_{T} vs Photon E_{T} (EB+EE); Photon E_{T} (GeV); L1 EGamma E_{T} (GeV)",
824 &templateETvsET.
binsX[0],
826 &templateETvsET.
binsY[0]);
830 ibooker.
book2D(
"L1EGammaPhivsPhotonPhi_EB",
831 "#phi_{photon}^{L1} vs #phi_{photon}^{offline} (EB); #phi_{photon}^{offline}; #phi_{photon}^{L1}",
833 templatePHIvsPHI.
xmin,
834 templatePHIvsPHI.
xmax,
836 templatePHIvsPHI.
ymin,
837 templatePHIvsPHI.
ymax);
839 ibooker.
book2D(
"L1EGammaPhivsPhotonPhi_EE",
840 "#phi_{photon}^{L1} vs #phi_{photon}^{offline} (EE); #phi_{photon}^{offline}; #phi_{photon}^{L1}",
842 templatePHIvsPHI.
xmin,
843 templatePHIvsPHI.
xmax,
845 templatePHIvsPHI.
ymin,
846 templatePHIvsPHI.
ymax);
848 "L1EGammaPhivsPhotonPhi_EB_EE",
849 "#phi_{photon}^{L1} vs #phi_{photon}^{offline} (EB+EE); #phi_{photon}^{offline}; #phi_{photon}^{L1}",
851 templatePHIvsPHI.
xmin,
852 templatePHIvsPHI.
xmax,
854 templatePHIvsPHI.
ymin,
855 templatePHIvsPHI.
ymax);
858 "L1EGammaEtavsPhotonEta",
"L1 EGamma #eta vs Photon #eta; Photon #eta; L1 EGamma #eta", 100, -3, 3, 100, -3, 3);
862 ibooker.
book1D(
"resolutionPhotonET_EB",
863 "photon ET resolution (EB); (L1 EGamma E_{T} - Photon E_{T})/ Photon E_{T}; events",
868 ibooker.
book1D(
"resolutionPhotonET_EE",
869 "photon ET resolution (EE); (L1 EGamma E_{T} - Photon E_{T})/ Photon E_{T}; events",
874 ibooker.
book1D(
"resolutionPhotonET_EB_EE",
875 "photon ET resolution (EB+EE); (L1 EGamma E_{T} - Photon E_{T})/ Photon E_{T}; events",
881 ibooker.
book1D(
"resolutionPhotonPhi_EB",
882 "#phi_{photon} resolution (EB); #phi_{photon}^{L1} - #phi_{photon}^{offline}; events",
887 ibooker.
book1D(
"resolutionPhotonPhi_EE",
888 "photon #phi resolution (EE); #phi_{photon}^{L1} - #phi_{photon}^{offline}; events",
893 ibooker.
book1D(
"resolutionPhotonPhi_EB_EE",
894 "photon #phi resolution (EB+EE); #phi_{photon}^{L1} - #phi_{photon}^{offline}; events",
900 "resolutionPhotonEta",
"photon #eta resolution (EB); L1 EGamma #eta - Photon #eta; events", 120, -0.3, 0.3);
905 int nBins = photonBins.size() - 1;
906 float* photonBinArray = &(photonBins[0]);
911 ibooker.
book1D(
"efficiencyPhotonET_EB_threshold_" + str_threshold +
"_Num",
912 "photon efficiency (EB) (numerator); Photon E_{T} (GeV); events",
916 ibooker.
book1D(
"efficiencyPhotonET_EE_threshold_" + str_threshold +
"_Num",
917 "photon efficiency (EE) (numerator); Photon E_{T} (GeV); events",
921 ibooker.
book1D(
"efficiencyPhotonET_EB_EE_threshold_" + str_threshold +
"_Num",
922 "photon efficiency (EB+EE) (numerator); Photon E_{T} (GeV); events",
927 ibooker.
book1D(
"efficiencyPhotonET_EB_threshold_" + str_threshold +
"_Den",
928 "photon efficiency (EB) (denominator); Photon E_{T} (GeV); events",
932 ibooker.
book1D(
"efficiencyPhotonET_EE_threshold_" + str_threshold +
"_Den",
933 "photon efficiency (EE) (denominator); Photon E_{T} (GeV); events",
937 ibooker.
book1D(
"efficiencyPhotonET_EB_EE_threshold_" + str_threshold +
"_Den",
938 "photon efficiency (EB+EE) (denominator); Photon E_{T} (GeV); events",
962 for (
auto mon : monElementstoNormalize) {
963 if (
mon !=
nullptr) {
964 auto h =
mon->getTH2F();
966 h->Scale(1,
"width");
std::vector< float > binsX
constexpr double deltaPhi(double phi1, double phi2)
BXVector< EGamma > EGammaBxCollection
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_
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_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_pass_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EB_
virtual void setCurrentFolder(std::string const &fullpath)
double maxDeltaRForL1Matching_
MonitorElement * h_L1EGammaETvsPhotonET_EB_
edm::EDGetTokenT< std::vector< reco::Photon > > thePhotonCollection_
bool passesMediumEleId(reco::GsfElectron const &electron) const
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_EE_pass_
MonitorElement * h_L1EGammaETvsPhotonET_EE_
void fillElectrons(edm::Event const &e, const unsigned int nVertex)
virtual MonitorElementData::Scope setScope(MonitorElementData::Scope newscope)
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::string to_string(const V &value)
MonitorElement * h_resolutionElectronET_EB_
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_total_
dqmoffline::l1t::HistDefinitions histDefinitions_
void bookPhotonHistos(DQMStore::IBooker &)
Log< level::Error, false > LogError
~L1TEGammaOffline() override
std::map< double, MonitorElement * > h_efficiencyElectronPhi_vs_Eta_total_
L1TEGammaOffline(const edm::ParameterSet &ps)
std::vector< Vertex > VertexCollection
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_
const_iterator begin(int bx) const
void dqmEndRun(edm::Run const &run, edm::EventSetup const &eSetup) override
void normalise2DHistogramsToBinArea()
double maxDeltaRForHLTMatching_
std::vector< double > electronEfficiencyThresholds_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EB_EE_
bool matchesAnHLTObject(double eta, double phi) const
std::map< double, MonitorElement * > h_efficiencyElectronEta_pass_
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_
edm::EDGetTokenT< l1t::EGammaBxCollection > stage2CaloLayer2EGammaToken_
MonitorElement * h_resolutionElectronEta_
Abs< T >::type abs(const T &t)
reco::GsfElectron tagElectron_
#define DEFINE_FWK_MODULE(type)
void analyze(edm::Event const &e, edm::EventSetup const &eSetup) override
MonitorElement * h_resolutionPhotonEta_
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)
Log< level::Info, false > LogInfo
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 * 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
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
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_
const std::vector< std::string > & triggerNames() const
names of trigger paths
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_EE_total_
std::vector< std::string > triggerNames_
ParameterSet const & getParameterSet(ParameterSetID const &id)
bool passesLooseEleId(reco::GsfElectron const &electron) const
MonitorElement * h_resolutionElectronPhi_EB_
edm::TriggerResults triggerResults_
MonitorElement * h_nVertex_
void fillWithinLimits(MonitorElement *mon, double value, double weight=1.)
MonitorElement * h_resolutionPhotonPhi_EB_
const_iterator end(int bx) const
std::vector< double > photonEfficiencyBins_
double et() const final
transverse energy
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_
Log< level::Warning, false > LogWarning
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_pass_
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
double phi() const final
momentum azimuthal angle
MonitorElement * h_L1EGammaPhivsElectronPhi_EB_
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)
double eta() const final
momentum pseudorapidity