File indexing completed on 2025-03-02 23:54:08
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #include <string>
0017 #include <vector>
0018
0019
0020 #include "DQMServices/Core/interface/DQMGlobalEDAnalyzer.h"
0021 #include "DataFormats/Common/interface/TriggerResults.h"
0022 #include "DataFormats/HLTReco/interface/TriggerEvent.h"
0023 #include "DataFormats/HLTReco/interface/TriggerEventWithRefs.h"
0024 #include "DataFormats/HLTReco/interface/TriggerObject.h"
0025 #include "DataFormats/HLTReco/interface/TriggerRefsCollections.h"
0026 #include "DataFormats/L1Trigger/interface/BXVector.h"
0027 #include "DataFormats/L1Trigger/interface/EGamma.h"
0028 #include "DataFormats/L1Trigger/interface/Muon.h"
0029 #include "DataFormats/Math/interface/deltaR.h"
0030 #include "DataFormats/PatCandidates/interface/Electron.h"
0031 #include "DataFormats/PatCandidates/interface/PackedTriggerPrescales.h"
0032 #include "DataFormats/PatCandidates/interface/TriggerObjectStandAlone.h"
0033 #include "DataFormats/Scouting/interface/Run3ScoutingElectron.h"
0034 #include "FWCore/Common/interface/TriggerNames.h"
0035 #include "FWCore/Framework/interface/Event.h"
0036 #include "FWCore/Framework/interface/Frameworkfwd.h"
0037 #include "FWCore/Framework/interface/MakerMacros.h"
0038 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0039 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0040 #include "HLTrigger/HLTcore/interface/HLTConfigProvider.h"
0041
0042 #include "ScoutingDQMUtils.h"
0043
0044
0045
0046
0047
0048 struct kSctProbeKinematicHistos {
0049 dqm::reco::MonitorElement* hPt_Barrel;
0050 dqm::reco::MonitorElement* hPt_Endcap;
0051 dqm::reco::MonitorElement* hEta;
0052 dqm::reco::MonitorElement* hEtavPhi;
0053 dqm::reco::MonitorElement* hPhi;
0054 dqm::reco::MonitorElement* hHoverE_Barrel;
0055 dqm::reco::MonitorElement* hHoverE_Endcap;
0056 dqm::reco::MonitorElement* hOoEMOoP_Barrel;
0057 dqm::reco::MonitorElement* hOoEMOoP_Endcap;
0058 dqm::reco::MonitorElement* hdPhiIn_Barrel;
0059 dqm::reco::MonitorElement* hdPhiIn_Endcap;
0060 dqm::reco::MonitorElement* hdEtaIn_Barrel;
0061 dqm::reco::MonitorElement* hdEtaIn_Endcap;
0062 dqm::reco::MonitorElement* hSigmaIetaIeta_Barrel;
0063 dqm::reco::MonitorElement* hSigmaIetaIeta_Endcap;
0064 dqm::reco::MonitorElement* hMissingHits_Barrel;
0065 dqm::reco::MonitorElement* hMissingHits_Endcap;
0066 dqm::reco::MonitorElement* hTrackfbrem_Barrel;
0067 dqm::reco::MonitorElement* hTrackfbrem_Endcap;
0068 dqm::reco::MonitorElement* hTrack_pt_Barrel;
0069 dqm::reco::MonitorElement* hTrack_pt_Endcap;
0070 dqm::reco::MonitorElement* hTrack_pMode_Barrel;
0071 dqm::reco::MonitorElement* hTrack_pMode_Endcap;
0072 dqm::reco::MonitorElement* hTrack_etaMode_Barrel;
0073 dqm::reco::MonitorElement* hTrack_etaMode_Endcap;
0074 dqm::reco::MonitorElement* hTrack_phiMode_Barrel;
0075 dqm::reco::MonitorElement* hTrack_phiMode_Endcap;
0076 dqm::reco::MonitorElement* hTrack_qoverpModeError_Barrel;
0077 dqm::reco::MonitorElement* hTrack_qoverpModeError_Endcap;
0078 dqm::reco::MonitorElement* hRelEcalIsolation_Barrel;
0079 dqm::reco::MonitorElement* hRelEcalIsolation_Endcap;
0080 dqm::reco::MonitorElement* hRelHcalIsolation_Barrel;
0081 dqm::reco::MonitorElement* hRelHcalIsolation_Endcap;
0082 dqm::reco::MonitorElement* hRelTrackIsolation_Barrel;
0083 dqm::reco::MonitorElement* hRelTrackIsolation_Endcap;
0084 dqm::reco::MonitorElement* hInvMass;
0085 dqm::reco::MonitorElement* hPt_Barrel_passID;
0086 dqm::reco::MonitorElement* hPt_Endcap_passID;
0087 dqm::reco::MonitorElement* hPt_Barrel_passDSTsingleEG;
0088 dqm::reco::MonitorElement* hPt_Endcap_passDSTsingleEG;
0089 dqm::reco::MonitorElement* hPt_Barrel_passDSTdoubleEG;
0090 dqm::reco::MonitorElement* hPt_Endcap_passDSTdoubleEG;
0091 };
0092
0093 struct kSctTagProbeHistos {
0094 kSctProbeKinematicHistos resonanceZ;
0095 kSctProbeKinematicHistos resonanceJ;
0096 kSctProbeKinematicHistos resonanceY;
0097 kSctProbeKinematicHistos resonanceAll;
0098 };
0099
0100 class ScoutingElectronTagProbeAnalyzer : public DQMGlobalEDAnalyzer<kSctTagProbeHistos> {
0101 public:
0102 explicit ScoutingElectronTagProbeAnalyzer(const edm::ParameterSet& conf);
0103 ~ScoutingElectronTagProbeAnalyzer() override = default;
0104 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0105
0106 private:
0107 void dqmAnalyze(const edm::Event& e, const edm::EventSetup& c, kSctTagProbeHistos const&) const override;
0108
0109 void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&, kSctTagProbeHistos&) const override;
0110
0111 void bookHistograms_resonance(
0112 DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&, kSctProbeKinematicHistos&, const std::string&) const;
0113
0114 void fillHistograms_resonance(const kSctProbeKinematicHistos& histos,
0115 const Run3ScoutingElectron& el,
0116 const float inv_mass,
0117 const trigger::TriggerObjectCollection* legObjectsCollection) const;
0118
0119 bool scoutingElectron_passHLT(const Run3ScoutingElectron& el,
0120 const trigger::TriggerObjectCollection& legObjects) const;
0121
0122
0123 std::string outputInternalPath_;
0124
0125 const edm::EDGetToken triggerResultsToken_;
0126 const edm::EDGetToken triggerSummaryToken_;
0127 const edm::EDGetTokenT<pat::TriggerObjectStandAloneCollection> triggerObjects_;
0128 const std::vector<std::string> filterToMatch_;
0129
0130 const edm::EDGetTokenT<std::vector<pat::Electron>> electronCollection_;
0131 const edm::EDGetTokenT<std::vector<Run3ScoutingElectron>> scoutingElectronCollection_;
0132 };
0133
0134 ScoutingElectronTagProbeAnalyzer::ScoutingElectronTagProbeAnalyzer(const edm::ParameterSet& iConfig)
0135 : outputInternalPath_(iConfig.getParameter<std::string>("OutputInternalPath")),
0136 triggerResultsToken_(consumes<edm::TriggerResults>(iConfig.getParameter<edm::InputTag>("TriggerResultTag"))),
0137 triggerObjects_(
0138 consumes<pat::TriggerObjectStandAloneCollection>(iConfig.getParameter<edm::InputTag>("TriggerObjects"))),
0139 filterToMatch_(iConfig.getParameter<std::vector<std::string>>("FilterToMatch")),
0140 electronCollection_(
0141 consumes<std::vector<pat::Electron>>(iConfig.getParameter<edm::InputTag>("ElectronCollection"))),
0142 scoutingElectronCollection_(consumes<std::vector<Run3ScoutingElectron>>(
0143 iConfig.getParameter<edm::InputTag>("ScoutingElectronCollection"))) {}
0144
0145 void ScoutingElectronTagProbeAnalyzer::dqmAnalyze(edm::Event const& iEvent,
0146 edm::EventSetup const& iSetup,
0147 kSctTagProbeHistos const& histos) const {
0148 edm::Handle<std::vector<pat::Electron>> patEls;
0149 iEvent.getByToken(electronCollection_, patEls);
0150 if (patEls.failedToGet()) {
0151 edm::LogWarning("ScoutingMonitoring") << "pat::Electron collection not found.";
0152 return;
0153 }
0154
0155 edm::Handle<std::vector<Run3ScoutingElectron>> sctEls;
0156 iEvent.getByToken(scoutingElectronCollection_, sctEls);
0157 if (sctEls.failedToGet()) {
0158 edm::LogWarning("ScoutingMonitoring") << "Run3ScoutingElectron collection not found.";
0159 return;
0160 }
0161
0162
0163 edm::Handle<edm::TriggerResults> triggerResults;
0164 edm::Handle<pat::TriggerObjectStandAloneCollection> triggerObjects;
0165 iEvent.getByToken(triggerResultsToken_, triggerResults);
0166 iEvent.getByToken(triggerObjects_, triggerObjects);
0167
0168 std::vector<std::string> filterToMatch = {"hltDoubleEG11CaloIdLHEFilter", "hltEG30EBTightIDTightIsoTrackIsoFilter"};
0169 size_t numberOfFilters = filterToMatch.size();
0170 trigger::TriggerObjectCollection* legObjects = new trigger::TriggerObjectCollection[numberOfFilters];
0171 for (size_t iteFilter = 0; iteFilter < filterToMatch.size(); iteFilter++) {
0172 std::string filterTag = filterToMatch.at(iteFilter);
0173 for (pat::TriggerObjectStandAlone obj : *triggerObjects) {
0174 obj.unpackNamesAndLabels(iEvent, *triggerResults);
0175 if (obj.hasFilterLabel(filterTag)) {
0176 legObjects[iteFilter].push_back(obj);
0177 }
0178 }
0179 }
0180
0181 edm::LogInfo("ScoutingMonitoring") << "Process pat::Electrons: " << patEls->size();
0182 edm::LogInfo("ScoutingMonitoring") << "Process Run3ScoutingElectrons: " << sctEls->size();
0183
0184 for (const auto& sct_el : *sctEls) {
0185 if (!scoutingDQMUtils::scoutingElectronID(sct_el))
0186 continue;
0187 edm::LogInfo("ScoutingElectronTagProbeAnalyzer") << "Process Run3ScoutingElectrons: " << sct_el.sigmaIetaIeta();
0188
0189 math::PtEtaPhiMLorentzVector tag_sct_el(sct_el.pt(), sct_el.eta(), sct_el.phi(), sct_el.m());
0190 for (const auto& sct_el_second : *sctEls) {
0191 if (&sct_el_second == &sct_el)
0192 continue;
0193 math::PtEtaPhiMLorentzVector probe_sct_el(
0194 sct_el_second.pt(), sct_el_second.eta(), sct_el_second.phi(), sct_el_second.m());
0195 float invMass = (tag_sct_el + probe_sct_el).mass();
0196 edm::LogInfo("ScoutingMonitoring") << "Inv Mass: " << invMass;
0197 if ((80 < invMass) && (invMass < 100)) {
0198 fillHistograms_resonance(histos.resonanceZ, sct_el_second, invMass, legObjects);
0199 fillHistograms_resonance(histos.resonanceAll, sct_el_second, invMass, legObjects);
0200 }
0201 if ((2.8 < invMass) && (invMass < 3.8)) {
0202 fillHistograms_resonance(histos.resonanceJ, sct_el_second, invMass,
0203 legObjects);
0204 fillHistograms_resonance(histos.resonanceAll, sct_el_second, invMass, legObjects);
0205 }
0206 if ((9.0 < invMass) && (invMass < 12.6)) {
0207 fillHistograms_resonance(histos.resonanceY,
0208 sct_el_second,
0209 invMass,
0210 legObjects);
0211 fillHistograms_resonance(histos.resonanceAll, sct_el_second, invMass, legObjects);
0212 }
0213 }
0214 }
0215 }
0216
0217 bool ScoutingElectronTagProbeAnalyzer::scoutingElectron_passHLT(
0218 const Run3ScoutingElectron& el, const trigger::TriggerObjectCollection& legObjects) const {
0219 bool foundTheLeg = false;
0220 for (unsigned int i = 0; i < legObjects.size(); i++) {
0221 float delR2 = deltaR2(legObjects.at(i).eta(), legObjects.at(i).phi(), el.eta(), el.phi());
0222 if (delR2 < 0.01) {
0223 foundTheLeg = true;
0224 break;
0225 }
0226 }
0227 return foundTheLeg;
0228 }
0229
0230 void ScoutingElectronTagProbeAnalyzer::fillHistograms_resonance(
0231 const kSctProbeKinematicHistos& histos,
0232 const Run3ScoutingElectron& el,
0233 const float inv_mass,
0234 const trigger::TriggerObjectCollection* legObjectsCollection) const {
0235 histos.hEta->Fill(el.eta());
0236 histos.hPhi->Fill(el.phi());
0237 histos.hInvMass->Fill(inv_mass);
0238
0239 if (fabs(el.eta()) < 1.5) {
0240 histos.hPt_Barrel->Fill(el.pt());
0241 if (scoutingDQMUtils::scoutingElectronID(el))
0242 histos.hPt_Barrel_passID->Fill(el.pt());
0243 if (scoutingElectron_passHLT(el, legObjectsCollection[0]))
0244 histos.hPt_Barrel_passDSTdoubleEG->Fill(el.pt());
0245 if (scoutingElectron_passHLT(el, legObjectsCollection[1]))
0246 histos.hPt_Barrel_passDSTsingleEG->Fill(el.pt());
0247 histos.hHoverE_Barrel->Fill(el.hOverE());
0248 histos.hOoEMOoP_Barrel->Fill(el.ooEMOop());
0249 histos.hdPhiIn_Barrel->Fill(fabs(el.dPhiIn()));
0250 histos.hdEtaIn_Barrel->Fill(fabs(el.dEtaIn()));
0251 histos.hSigmaIetaIeta_Barrel->Fill(el.sigmaIetaIeta());
0252 histos.hMissingHits_Barrel->Fill(el.missingHits());
0253 histos.hTrackfbrem_Barrel->Fill(el.trackfbrem());
0254 histos.hRelEcalIsolation_Barrel->Fill(el.ecalIso() / el.pt());
0255 histos.hRelHcalIsolation_Barrel->Fill(el.hcalIso() / el.pt());
0256 histos.hRelTrackIsolation_Barrel->Fill(el.trackIso() / el.pt());
0257 for (const auto& trk : el.trkpt()) {
0258 histos.hTrack_pt_Barrel->Fill(trk);
0259 }
0260 for (const auto& trk : el.trkpMode()) {
0261 histos.hTrack_pMode_Barrel->Fill(trk);
0262 }
0263 for (const auto& trk : el.trketaMode()) {
0264 histos.hTrack_etaMode_Barrel->Fill(trk);
0265 }
0266 for (const auto& trk : el.trkphiMode()) {
0267 histos.hTrack_phiMode_Barrel->Fill(trk);
0268 }
0269 for (const auto& trk : el.trkqoverpModeError()) {
0270 histos.hTrack_qoverpModeError_Barrel->Fill(trk);
0271 }
0272 } else {
0273 histos.hPt_Endcap->Fill(el.pt());
0274 if (scoutingDQMUtils::scoutingElectronID(el))
0275 histos.hPt_Endcap_passID->Fill(el.pt());
0276 if (scoutingElectron_passHLT(el, legObjectsCollection[0]))
0277 histos.hPt_Endcap_passDSTdoubleEG->Fill(el.pt());
0278 if (scoutingElectron_passHLT(el, legObjectsCollection[1]))
0279 histos.hPt_Endcap_passDSTsingleEG->Fill(el.pt());
0280 histos.hHoverE_Endcap->Fill(el.hOverE());
0281 histos.hOoEMOoP_Endcap->Fill(el.ooEMOop());
0282 histos.hdPhiIn_Endcap->Fill(fabs(el.dPhiIn()));
0283 histos.hdEtaIn_Endcap->Fill(fabs(el.dEtaIn()));
0284 histos.hSigmaIetaIeta_Endcap->Fill(el.sigmaIetaIeta());
0285 histos.hMissingHits_Endcap->Fill(el.missingHits());
0286 histos.hTrackfbrem_Endcap->Fill(el.trackfbrem());
0287 histos.hRelEcalIsolation_Endcap->Fill(el.ecalIso() / el.pt());
0288 histos.hRelHcalIsolation_Endcap->Fill(el.hcalIso() / el.pt());
0289 histos.hRelTrackIsolation_Endcap->Fill(el.trackIso() / el.pt());
0290 for (const auto& trk : el.trkpt()) {
0291 histos.hTrack_pt_Endcap->Fill(trk);
0292 }
0293 for (const auto& trk : el.trkpMode()) {
0294 histos.hTrack_pMode_Endcap->Fill(trk);
0295 }
0296 for (const auto& trk : el.trketaMode()) {
0297 histos.hTrack_etaMode_Endcap->Fill(trk);
0298 }
0299 for (const auto& trk : el.trkphiMode()) {
0300 histos.hTrack_phiMode_Endcap->Fill(trk);
0301 }
0302 for (const auto& trk : el.trkqoverpModeError()) {
0303 histos.hTrack_qoverpModeError_Endcap->Fill(trk);
0304 }
0305 }
0306 }
0307
0308 void ScoutingElectronTagProbeAnalyzer::bookHistograms(DQMStore::IBooker& ibook,
0309 edm::Run const& run,
0310 edm::EventSetup const& iSetup,
0311 kSctTagProbeHistos& histos) const {
0312 ibook.setCurrentFolder(outputInternalPath_);
0313 bookHistograms_resonance(ibook, run, iSetup, histos.resonanceZ, "resonanceZ");
0314 bookHistograms_resonance(ibook, run, iSetup, histos.resonanceJ, "resonanceJ");
0315 bookHistograms_resonance(ibook, run, iSetup, histos.resonanceY, "resonanceY");
0316 bookHistograms_resonance(ibook, run, iSetup, histos.resonanceAll, "resonanceAll");
0317 }
0318
0319 void ScoutingElectronTagProbeAnalyzer::bookHistograms_resonance(DQMStore::IBooker& ibook,
0320 edm::Run const& run,
0321 edm::EventSetup const& iSetup,
0322 kSctProbeKinematicHistos& histos,
0323 const std::string& name) const {
0324 ibook.setCurrentFolder(outputInternalPath_);
0325 histos.hPt_Barrel =
0326 ibook.book1D(name + "_Probe_sctElectron_Pt_Barrel", name + "_Probe_sctElectron_Pt_Barrel", 500, 0, 500);
0327 histos.hPt_Endcap =
0328 ibook.book1D(name + "_Probe_sctElectron_Pt_Endcap", name + "_Probe_sctElectron_Pt_Endcap", 500, 0, 500);
0329
0330 histos.hEta = ibook.book1D(name + "_Probe_sctElectron_Eta", name + "_Probe_sctElectron_Eta", 100, -5.0, 5.0);
0331 histos.hPhi = ibook.book1D(name + "_Probe_sctElectron_Phi", name + "_Probe_sctElectron_Phi", 100, -3.3, 3.3);
0332
0333 histos.hHoverE_Barrel =
0334 ibook.book1D(name + "_Probe_sctElectron_HoverE_Barrel", name + "_Probe_sctElectron_HoverE_Barrel", 500, 0, 0.5);
0335 histos.hHoverE_Endcap =
0336 ibook.book1D(name + "_Probe_sctElectron_HoverE_Endcap", name + "_Probe_sctElectron_HoverE_Endcap", 500, 0, 0.5);
0337
0338 histos.hOoEMOoP_Barrel = ibook.book1D(
0339 name + "_Probe_sctElectron_OoEMOoP_Barrel", name + "_Probe_sctElectron_OoEMOoP_Barrel", 500, -0.2, 0.2);
0340 histos.hOoEMOoP_Endcap = ibook.book1D(
0341 name + "_Probe_sctElectron_OoEMOoP_Endcap", name + "_Probe_sctElectron_OoEMOoP_Endcap", 500, -0.2, 0.2);
0342
0343 histos.hdPhiIn_Barrel =
0344 ibook.book1D(name + "_Probe_sctElectron_dPhiIn_Barrel", name + "_Probe_sctElectron_dPhiIn_Barrel", 100, 0, 0.1);
0345 histos.hdPhiIn_Endcap =
0346 ibook.book1D(name + "_Probe_sctElectron_dPhiIn_Endcap", name + "_Probe_sctElectron_dPhiIn_Endcap", 100, 0, 0.1);
0347
0348 histos.hdEtaIn_Barrel =
0349 ibook.book1D(name + "_Probe_sctElectron_dEtaIn_Barrel", name + "_Probe_sctElectron_dEtaIn_Barrel", 100, 0, 0.1);
0350 histos.hdEtaIn_Endcap =
0351 ibook.book1D(name + "_Probe_sctElectron_dEtaIn_Endcap", name + "_Probe_sctElectron_dEtaIn_Endcap", 100, 0, 0.1);
0352
0353 histos.hSigmaIetaIeta_Barrel = ibook.book1D(
0354 name + "_Probe_sctElectron_SigmaIetaIeta_Barrel", name + "_Probe_sctElectron_SigmaIetaIeta_Barrel", 500, 0, 0.05);
0355 histos.hSigmaIetaIeta_Endcap = ibook.book1D(
0356 name + "_Probe_sctElectron_SigmaIetaIeta_Endcap", name + "_Probe_sctElectron_SigmaIetaIeta_Endcap", 500, 0, 0.05);
0357
0358 histos.hMissingHits_Barrel = ibook.book1D(
0359 name + "_Probe_sctElectron_MissingHits_Barrel", name + "_Probe_sctElectron_MissingHits_Barrel", 21, -0.5, 20.5);
0360 histos.hMissingHits_Endcap = ibook.book1D(
0361 name + "_Probe_sctElectron_MissingHits_Endcap", name + "_Probe_sctElectron_MissingHits_Endcap", 21, -0.5, 20.5);
0362
0363 histos.hTrackfbrem_Barrel = ibook.book1D(
0364 name + "_Probe_sctElectron_Trackfbrem_Barrel", name + "_Probe_sctElectron_Trackfbrem_Barrel", 100, 0, 1.0);
0365 histos.hTrackfbrem_Endcap = ibook.book1D(
0366 name + "_Probe_sctElectron_Trackfbrem_Endcap", name + "_Probe_sctElectron_Trackfbrem_Endcap", 100, 0, 1.0);
0367
0368 histos.hTrack_pt_Barrel = ibook.book1D(
0369 name + "_Probe_sctElectron_Track_pt_Barrel", name + "_Probe_sctElectron_Track_pt_Barrel", 200, 0, 100.0);
0370 histos.hTrack_pt_Endcap = ibook.book1D(
0371 name + "_Probe_sctElectron_Track_pt_Endcap", name + "_Probe_sctElectron_Track_pt_Endcap", 200, 0, 100.0);
0372
0373 histos.hTrack_pMode_Barrel = ibook.book1D(
0374 name + "_Probe_sctElectron_Track_pMode_Barrel", name + "_Probe_sctElectron_Track_pMode_Barrel", 50, -0.5, 49.5);
0375 histos.hTrack_pMode_Endcap = ibook.book1D(
0376 name + "_Probe_sctElectron_Track_pMode_Endcap", name + "_Probe_sctElectron_Track_pMode_Endcap", 50, -0.5, 49.5);
0377
0378 histos.hTrack_etaMode_Barrel = ibook.book1D(
0379 name + "_Probe_sctElectron_Track_etaMode_Barrel", name + "_Probe_sctElectron_Track_etaMode_Barrel", 26, -6.5, 6.5);
0380 histos.hTrack_etaMode_Endcap = ibook.book1D(
0381 name + "_Probe_sctElectron_Track_etaMode_Endcap", name + "_Probe_sctElectron_Track_etaMode_Endcap", 26, -6.5, 6.5);
0382
0383 histos.hTrack_phiMode_Barrel = ibook.book1D(
0384 name + "_Probe_sctElectron_Track_phiMode_Barrel", name + "_Probe_sctElectron_Track_phiMode_Barrel", 18, -4.5, 4.5);
0385 histos.hTrack_phiMode_Endcap = ibook.book1D(
0386 name + "_Probe_sctElectron_Track_phiMode_Endcap", name + "_Probe_sctElectron_Track_phiMode_Endcap", 18, -4.5, 4.5);
0387
0388 histos.hTrack_qoverpModeError_Barrel = ibook.book1D(name + "_Probe_sctElectron_Track_qoverpModeError_Barrel",
0389 name + "_Probe_sctElectron_Track_qoverpModeError_Barrel",
0390 36,
0391 -4.5,
0392 4.5);
0393 histos.hTrack_qoverpModeError_Endcap = ibook.book1D(name + "_Probe_sctElectron_Track_qoverpModeError_Endcap",
0394 name + "_Probe_sctElectron_Track_qoverpModeError_Endcap",
0395 36,
0396 -4.5,
0397 4.5);
0398
0399 histos.hRelEcalIsolation_Barrel = ibook.book1D(name + "_Probe_sctElectron_RelEcalIsolation_Barrel",
0400 name + "_Probe_sctElectron_RelEcalIsolation_Barrel",
0401 100,
0402 0,
0403 1.0);
0404 histos.hRelEcalIsolation_Endcap = ibook.book1D(name + "_Probe_sctElectron_RelEcalIsolation_Endcap",
0405 name + "_Probe_sctElectron_RelEcalIsolation_Endcap",
0406 100,
0407 0,
0408 1.0);
0409
0410 histos.hRelHcalIsolation_Barrel = ibook.book1D(name + "_Probe_sctElectron_RelHcalIsolation_Barrel",
0411 name + "_Probe_sctElectron_RelHcalIsolation_Barrel",
0412 100,
0413 0,
0414 1.0);
0415 histos.hRelHcalIsolation_Endcap = ibook.book1D(name + "_Probe_sctElectron_RelHcalIsolation_Endcap",
0416 name + "_Probe_sctElectron_RelHcalIsolation_Endcap",
0417 100,
0418 0,
0419 1.0);
0420
0421 histos.hRelTrackIsolation_Barrel = ibook.book1D(name + "_Probe_sctElectron_RelTrackIsolation_Barrel",
0422 name + "_Probe_sctElectron_RelTrackIsolation_Barrel",
0423 100,
0424 0,
0425 1.0);
0426 histos.hRelTrackIsolation_Endcap = ibook.book1D(name + "_Probe_sctElectron_RelTrackIsolation_Endcap",
0427 name + "_Probe_sctElectron_RelTrackIsolation_Endcap",
0428 100,
0429 0,
0430 1.0);
0431 histos.hInvMass =
0432 ibook.book1D(name + "_sctElectron_Invariant_Mass", name + "_sctElectron_Invariant_Mass", 800, 0, 200);
0433
0434 histos.hPt_Barrel_passID = ibook.book1D(
0435 name + "_Probe_sctElectron_Pt_Barrel_passID", name + "_Probe_sctElectron_Pt_Barrel_passID", 500, 0, 500);
0436 histos.hPt_Endcap_passID = ibook.book1D(
0437 name + "_Probe_sctElectron_Pt_Endcap_passID", name + "_Probe_sctElectron_Pt_Endcap_passID", 500, 0, 500);
0438 histos.hPt_Barrel_passDSTsingleEG = ibook.book1D(name + "_Probe_sctElectron_Pt_Barrel_passDSTsingleEG",
0439 name + "_Probe_sctElectron_Pt_Barrel_passDSTsingleEG",
0440 500,
0441 0,
0442 500);
0443 histos.hPt_Endcap_passDSTsingleEG = ibook.book1D(name + "_Probe_sctElectron_Pt_Endcap_passDSTsingleEG",
0444 name + "_Probe_sctElectron_Pt_Endcap_passDSTsingleEG",
0445 500,
0446 0,
0447 500);
0448 histos.hPt_Barrel_passDSTdoubleEG = ibook.book1D(name + "_Probe_sctElectron_Pt_Barrel_passDSTdoubleEG",
0449 name + "_Probe_sctElectron_Pt_Barrel_passDSTdoubleEG",
0450 500,
0451 0,
0452 500);
0453 histos.hPt_Endcap_passDSTdoubleEG = ibook.book1D(name + "_Probe_sctElectron_Pt_Endcap_passDSTdoubleEG",
0454 name + "_Probe_sctElectron_Pt_Endcap_passDSTdoubleEG",
0455 500,
0456 0,
0457 500);
0458 }
0459
0460
0461
0462 void ScoutingElectronTagProbeAnalyzer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
0463 edm::ParameterSetDescription desc;
0464 desc.add<std::string>("OutputInternalPath", "MY_FOLDER");
0465 desc.add<edm::InputTag>("TriggerResultTag", edm::InputTag("TriggerResults", "", "HLT"));
0466 desc.add<std::vector<std::string>>("FilterToMatch",
0467 std::vector<std::string>{"hltPreDSTHLTMuonRun3PFScoutingPixelTracking"});
0468 desc.add<edm::InputTag>("TriggerObjects", edm::InputTag("slimmedPatTrigger"));
0469 desc.add<edm::InputTag>("ElectronCollection", edm::InputTag("slimmedElectrons"));
0470 desc.add<edm::InputTag>("ScoutingElectronCollection", edm::InputTag("Run3ScoutingElectrons"));
0471 descriptions.addWithDefaultLabel(desc);
0472 }
0473
0474 DEFINE_FWK_MODULE(ScoutingElectronTagProbeAnalyzer);