From a6107d7ec44ff4b2ce148c839f5566c240b6e491 Mon Sep 17 00:00:00 2001 From: Elvire Bouvier Date: Sat, 18 Jul 2015 18:52:12 +0200 Subject: [PATCH] hltTriggerSummaryRAW available only for MC --- .../Trigger/src/TopDiLeptonHLTOfflineDQM.cc | 379 +++++++++--------- .../src/TopSingleLeptonHLTOfflineDQM.cc | 295 +++++++------- 2 files changed, 338 insertions(+), 336 deletions(-) diff --git a/DQMOffline/Trigger/src/TopDiLeptonHLTOfflineDQM.cc b/DQMOffline/Trigger/src/TopDiLeptonHLTOfflineDQM.cc index 446250b433649..2d22fb089cb52 100644 --- a/DQMOffline/Trigger/src/TopDiLeptonHLTOfflineDQM.cc +++ b/DQMOffline/Trigger/src/TopDiLeptonHLTOfflineDQM.cc @@ -199,9 +199,6 @@ namespace HLTOfflineDQMTopDiLepton { if( !event.getByToken(triggerTable_, triggerTable) ) return; } - edm::Handle triggerEventWithRefsHandle; - if(!event.getByToken(triggerEventWithRefsTag_,triggerEventWithRefsHandle)) return; - /* ------------------------------------------------------------ @@ -226,7 +223,7 @@ namespace HLTOfflineDQMTopDiLepton { edm::Handle > muons; if( !event.getByToken(muons_, muons) ) { edm::LogWarning( "TopSingleLeptonHLTOfflineDQM" ) - << "Muon collection not found \n"; + << "Muon collection not found \n"; return; } @@ -258,7 +255,7 @@ namespace HLTOfflineDQMTopDiLepton { edm::Handle > elecs; if( !event.getByToken(elecs_, elecs) ) { edm::LogWarning( "TopSingleLeptonHLTOfflineDQM" ) - << "Electron collection not found \n"; + << "Electron collection not found \n"; return; } @@ -309,7 +306,7 @@ namespace HLTOfflineDQMTopDiLepton { edm::Handle > jets; if( !event.getByToken(jets_, jets) ) { edm::LogWarning( "TopSingleLeptonHLTOfflineDQM" ) - << "Jet collection not found \n"; + << "Jet collection not found \n"; return; } @@ -500,205 +497,209 @@ namespace HLTOfflineDQMTopDiLepton { ------------------------------------------------------------ */ - // loop over trigger paths - for(unsigned int i=0; i& moduleLabels(hltConfig.moduleLabels(triggerIndex)); - const unsigned int moduleIndex(triggerTable->index(triggerIndex)); - // Results from TriggerEventWithRefs product - electronIds_.clear(); electronRefs_.clear(); - muonIds_.clear(); muonRefs_.clear(); - // look only for modules actually run in this path - unsigned int kElec=0; - unsigned int kMuon=0; - for (unsigned int k=0; k<=moduleIndex; ++k) { - const string& moduleLabel(moduleLabels[k]); - const string moduleType(hltConfig.moduleType(moduleLabel)); - // check whether the module is packed up in TriggerEventWithRef product - const unsigned int filterIndex(triggerEventWithRefsHandle->filterIndex(edm::InputTag(moduleLabel,"",processName_))); - if (filterIndexsize()) { - triggerEventWithRefsHandle->getObjects(filterIndex,electronIds_,electronRefs_); - const unsigned int nElectrons(electronIds_.size()); - if (nElectrons>0) kElec = k; - - triggerEventWithRefsHandle->getObjects(filterIndex,muonIds_,muonRefs_); - const unsigned int nMuons(muonIds_.size()); - if (nMuons>0) kMuon = k; - - } - } - bool l1Matched = false; - bool l2Matched = false; - double l1DeltaRMin = 500.; - double l2DeltaRMin = 500.; - unsigned int l1IndMatched = 500; - unsigned int l2IndMatched = 500; - // access to hlt dielecs - electronIds_.clear(); electronRefs_.clear(); - if (kElec > 0 && kMuon < 1 && isoElecs.size()>0) { - const string& moduleLabelElec(moduleLabels[kElec]); - const string moduleTypeElec(hltConfig.moduleType(moduleLabelElec)); - const unsigned int filterIndexElec(triggerEventWithRefsHandle->filterIndex(edm::InputTag(moduleLabelElec,"",processName_))); - triggerEventWithRefsHandle->getObjects(filterIndexElec,electronIds_,electronRefs_); - const unsigned int nElectrons(electronIds_.size()); - double deltar1 = 600.; - double deltar2 = 600.; - for (unsigned int inde = 0; inde < isoElecs.size(); inde++) { - if (nElectrons > 0) deltar1 = deltaR(*electronRefs_[0],*isoElecs[inde]); - if (nElectrons > 1) deltar2 = deltaR(*electronRefs_[1],*isoElecs[inde]); - if (deltar1 < deltar2 && deltar1 < l1DeltaRMin) { - l1DeltaRMin = deltar1; - l1IndMatched = inde; - } - if (deltar2 < deltar1 && deltar2 < l2DeltaRMin) { - l2DeltaRMin = deltar2; - l2IndMatched = inde; - } - } - if (nElectrons > 0 && l1IndMatched < 500) fill("leptDeltaREta_", isoElecs[l1IndMatched]->eta(), l1DeltaRMin); - if (nElectrons > 1 && l2IndMatched < 500) fill("leptDeltaREta_", isoElecs[l2IndMatched]->eta(), l2DeltaRMin); - if (l1DeltaRMin < DRMIN) { - l1Matched = true; - fill("matchingMon_", 0.5 ); - fill("leptResolution_", fabs(isoElecs[l1IndMatched]->pt()-electronRefs_[0]->pt())/isoElecs[l1IndMatched]->pt() ); - } - if (l2DeltaRMin < DRMIN) { - l2Matched = true; - fill("matchingMon_", 1.5 ); - fill("leptResolution_", fabs(isoElecs[l2IndMatched]->pt()-electronRefs_[1]->pt())/isoElecs[l2IndMatched]->pt() ); + edm::Handle triggerEventWithRefsHandle; + if(event.getByToken(triggerEventWithRefsTag_,triggerEventWithRefsHandle)) { + + // loop over trigger paths + for(unsigned int i=0; i 0 && kElec < 1 && isoMuons.size()>0) { - const string& moduleLabelMuon(moduleLabels[kMuon]); - const string moduleTypeMuon(hltConfig.moduleType(moduleLabelMuon)); - const unsigned int filterIndexMuon(triggerEventWithRefsHandle->filterIndex(edm::InputTag(moduleLabelMuon,"",processName_))); - triggerEventWithRefsHandle->getObjects(filterIndexMuon,muonIds_,muonRefs_); - trigger::VRmuon myMuonRefs; - const unsigned int nMuons(muonIds_.size()); - for (unsigned int l=0; lpt()-muonRefs_[l]->pt())/muonRefs_[l]->pt()) < 1e-5) isNew = false; + if (!isInteresting) continue; + // dump infos on the considered trigger path + const unsigned int triggerIndex = triggerNames.triggerIndex(name); + // get modules for the considered trigger path + const vector& moduleLabels(hltConfig.moduleLabels(triggerIndex)); + const unsigned int moduleIndex(triggerTable->index(triggerIndex)); + // Results from TriggerEventWithRefs product + electronIds_.clear(); electronRefs_.clear(); + muonIds_.clear(); muonRefs_.clear(); + // look only for modules actually run in this path + unsigned int kElec=0; + unsigned int kMuon=0; + for (unsigned int k=0; k<=moduleIndex; ++k) { + const string& moduleLabel(moduleLabels[k]); + const string moduleType(hltConfig.moduleType(moduleLabel)); + // check whether the module is packed up in TriggerEventWithRef product + const unsigned int filterIndex(triggerEventWithRefsHandle->filterIndex(edm::InputTag(moduleLabel,"",processName_))); + if (filterIndexsize()) { + triggerEventWithRefsHandle->getObjects(filterIndex,electronIds_,electronRefs_); + const unsigned int nElectrons(electronIds_.size()); + if (nElectrons>0) kElec = k; + + triggerEventWithRefsHandle->getObjects(filterIndex,muonIds_,muonRefs_); + const unsigned int nMuons(muonIds_.size()); + if (nMuons>0) kMuon = k; + } - if (isNew) myMuonRefs.push_back(muonRefs_[l]); } - const unsigned int nMyMuons(myMuonRefs.size()); - double deltar1 = 600.; - double deltar2 = 600.; - double deltar3 = 600.; - for (unsigned int indm = 0; indm < isoMuons.size(); indm++) { - if (nMyMuons > 0) deltar1 = deltaR(*myMuonRefs[0],*isoMuons[indm]); - if (nMyMuons > 1) deltar2 = deltaR(*myMuonRefs[1],*isoMuons[indm]); - if (nMyMuons > 2) deltar3 = deltaR(*myMuonRefs[2],*isoMuons[indm]); - if (nMyMuons > 0 && (nMyMuons<1 || deltar1 < deltar2) && (nMyMuons<2 || deltar1 1 && deltar2 < deltar1 && (nMyMuons<3 || deltar2 0 && kMuon < 1 && isoElecs.size()>0) { + const string& moduleLabelElec(moduleLabels[kElec]); + const string moduleTypeElec(hltConfig.moduleType(moduleLabelElec)); + const unsigned int filterIndexElec(triggerEventWithRefsHandle->filterIndex(edm::InputTag(moduleLabelElec,"",processName_))); + triggerEventWithRefsHandle->getObjects(filterIndexElec,electronIds_,electronRefs_); + const unsigned int nElectrons(electronIds_.size()); + double deltar1 = 600.; + double deltar2 = 600.; + for (unsigned int inde = 0; inde < isoElecs.size(); inde++) { + if (nElectrons > 0) deltar1 = deltaR(*electronRefs_[0],*isoElecs[inde]); + if (nElectrons > 1) deltar2 = deltaR(*electronRefs_[1],*isoElecs[inde]); + if (deltar1 < deltar2 && deltar1 < l1DeltaRMin) { + l1DeltaRMin = deltar1; + l1IndMatched = inde; + } + if (deltar2 < deltar1 && deltar2 < l2DeltaRMin) { + l2DeltaRMin = deltar2; + l2IndMatched = inde; + } } - if (nMyMuons > 2 && deltar3 < deltar1 && deltar3 < deltar2 && deltar3 < l3DeltaRMin) { - l3DeltaRMin = deltar3; - l3IndMatched = indm; + if (nElectrons > 0 && l1IndMatched < 500) fill("leptDeltaREta_", isoElecs[l1IndMatched]->eta(), l1DeltaRMin); + if (nElectrons > 1 && l2IndMatched < 500) fill("leptDeltaREta_", isoElecs[l2IndMatched]->eta(), l2DeltaRMin); + if (l1DeltaRMin < DRMIN) { + l1Matched = true; + fill("matchingMon_", 0.5 ); + fill("leptResolution_", fabs(isoElecs[l1IndMatched]->pt()-electronRefs_[0]->pt())/isoElecs[l1IndMatched]->pt() ); } - } - if (nMyMuons > 0 && l1IndMatched < 500) fill("leptDeltaREta_", isoMuons[l1IndMatched]->eta(), l1DeltaRMin); - if (nMyMuons > 1 && l2IndMatched < 500) fill("leptDeltaREta_", isoMuons[l2IndMatched]->eta(), l2DeltaRMin); - if (nMyMuons > 2 && l3IndMatched < 500) fill("leptDeltaREta_", isoMuons[l3IndMatched]->eta(), l3DeltaRMin); - if (l1DeltaRMin < DRMIN) { - l1Matched = true; - fill("matchingMon_", 0.5 ); - fill("leptResolution_", fabs(isoMuons[l1IndMatched]->pt()-myMuonRefs[0]->pt())/isoMuons[l1IndMatched]->pt() ); if (l2DeltaRMin < DRMIN) { l2Matched = true; fill("matchingMon_", 1.5 ); - fill("leptResolution_", fabs(isoMuons[l2IndMatched]->pt()-myMuonRefs[1]->pt())/isoMuons[l2IndMatched]->pt() ); - } else if (l3DeltaRMin < DRMIN) { - l2Matched = true; - fill("matchingMon_", 1.5 ); - fill("leptResolution_", fabs(isoMuons[l3IndMatched]->pt()-myMuonRefs[2]->pt())/isoMuons[l3IndMatched]->pt() ); - } - } else { - if (l2DeltaRMin < DRMIN) { + fill("leptResolution_", fabs(isoElecs[l2IndMatched]->pt()-electronRefs_[1]->pt())/isoElecs[l2IndMatched]->pt() ); + } + } + // access to hlt dimuons + muonIds_.clear(); muonRefs_.clear(); + l1DeltaRMin = 500.; l2DeltaRMin = 500.; double l3DeltaRMin = 500.; + l1IndMatched = 500; l2IndMatched = 500; double l3IndMatched = 500; + if (kMuon > 0 && kElec < 1 && isoMuons.size()>0) { + const string& moduleLabelMuon(moduleLabels[kMuon]); + const string moduleTypeMuon(hltConfig.moduleType(moduleLabelMuon)); + const unsigned int filterIndexMuon(triggerEventWithRefsHandle->filterIndex(edm::InputTag(moduleLabelMuon,"",processName_))); + triggerEventWithRefsHandle->getObjects(filterIndexMuon,muonIds_,muonRefs_); + trigger::VRmuon myMuonRefs; + const unsigned int nMuons(muonIds_.size()); + for (unsigned int l=0; lpt()-muonRefs_[l]->pt())/muonRefs_[l]->pt()) < 1e-5) isNew = false; + } + if (isNew) myMuonRefs.push_back(muonRefs_[l]); + } + const unsigned int nMyMuons(myMuonRefs.size()); + double deltar1 = 600.; + double deltar2 = 600.; + double deltar3 = 600.; + for (unsigned int indm = 0; indm < isoMuons.size(); indm++) { + if (nMyMuons > 0) deltar1 = deltaR(*myMuonRefs[0],*isoMuons[indm]); + if (nMyMuons > 1) deltar2 = deltaR(*myMuonRefs[1],*isoMuons[indm]); + if (nMyMuons > 2) deltar3 = deltaR(*myMuonRefs[2],*isoMuons[indm]); + if (nMyMuons > 0 && (nMyMuons<1 || deltar1 < deltar2) && (nMyMuons<2 || deltar1 1 && deltar2 < deltar1 && (nMyMuons<3 || deltar2 2 && deltar3 < deltar1 && deltar3 < deltar2 && deltar3 < l3DeltaRMin) { + l3DeltaRMin = deltar3; + l3IndMatched = indm; + } + } + if (nMyMuons > 0 && l1IndMatched < 500) fill("leptDeltaREta_", isoMuons[l1IndMatched]->eta(), l1DeltaRMin); + if (nMyMuons > 1 && l2IndMatched < 500) fill("leptDeltaREta_", isoMuons[l2IndMatched]->eta(), l2DeltaRMin); + if (nMyMuons > 2 && l3IndMatched < 500) fill("leptDeltaREta_", isoMuons[l3IndMatched]->eta(), l3DeltaRMin); + if (l1DeltaRMin < DRMIN) { l1Matched = true; fill("matchingMon_", 0.5 ); - fill("leptResolution_", fabs(isoMuons[l2IndMatched]->pt()-myMuonRefs[1]->pt())/isoMuons[l2IndMatched]->pt() ); - if (l3DeltaRMin < DRMIN) { + fill("leptResolution_", fabs(isoMuons[l1IndMatched]->pt()-myMuonRefs[0]->pt())/isoMuons[l1IndMatched]->pt() ); + if (l2DeltaRMin < DRMIN) { + l2Matched = true; + fill("matchingMon_", 1.5 ); + fill("leptResolution_", fabs(isoMuons[l2IndMatched]->pt()-myMuonRefs[1]->pt())/isoMuons[l2IndMatched]->pt() ); + } else if (l3DeltaRMin < DRMIN) { l2Matched = true; fill("matchingMon_", 1.5 ); fill("leptResolution_", fabs(isoMuons[l3IndMatched]->pt()-myMuonRefs[2]->pt())/isoMuons[l3IndMatched]->pt() ); } + } else { + if (l2DeltaRMin < DRMIN) { + l1Matched = true; + fill("matchingMon_", 0.5 ); + fill("leptResolution_", fabs(isoMuons[l2IndMatched]->pt()-myMuonRefs[1]->pt())/isoMuons[l2IndMatched]->pt() ); + if (l3DeltaRMin < DRMIN) { + l2Matched = true; + fill("matchingMon_", 1.5 ); + fill("leptResolution_", fabs(isoMuons[l3IndMatched]->pt()-myMuonRefs[2]->pt())/isoMuons[l3IndMatched]->pt() ); + } + } + if (l3DeltaRMin < DRMIN) { + l1Matched = true; + fill("matchingMon_", 0.5 ); + fill("leptResolution_", fabs(isoMuons[l3IndMatched]->pt()-myMuonRefs[2]->pt())/isoMuons[l3IndMatched]->pt() ); + } + } + } + // access to hlt elec-muon + electronIds_.clear(); electronRefs_.clear(); + muonIds_.clear(); muonRefs_.clear(); + l1DeltaRMin = 500.; l2DeltaRMin = 500.; + l1IndMatched = 500; l2IndMatched = 500; + if (kElec > 0 && kMuon > 0 && isoElecs.size()>0) { + const string& moduleLabelElec(moduleLabels[kElec]); + const string moduleTypeElec(hltConfig.moduleType(moduleLabelElec)); + const unsigned int filterIndexElec(triggerEventWithRefsHandle->filterIndex(edm::InputTag(moduleLabelElec,"",processName_))); + triggerEventWithRefsHandle->getObjects(filterIndexElec,electronIds_,electronRefs_); + const unsigned int nElectrons(electronIds_.size()); + double deltar = 600.; + for (unsigned int inde = 0; inde < isoElecs.size(); inde++) { + if (nElectrons > 0) deltar = deltaR(*electronRefs_[0],*isoElecs[inde]); + if (deltar < l1DeltaRMin) { + l1DeltaRMin = deltar; + l1IndMatched = inde; + } } - if (l3DeltaRMin < DRMIN) { + if (nElectrons > 0 && l1IndMatched < 500) fill("leptDeltaREta_", isoElecs[l1IndMatched]->eta(), l1DeltaRMin); + if (l1DeltaRMin < DRMIN) { l1Matched = true; fill("matchingMon_", 0.5 ); - fill("leptResolution_", fabs(isoMuons[l3IndMatched]->pt()-myMuonRefs[2]->pt())/isoMuons[l3IndMatched]->pt() ); - } - } - } - // access to hlt elec-muon - electronIds_.clear(); electronRefs_.clear(); - muonIds_.clear(); muonRefs_.clear(); - l1DeltaRMin = 500.; l2DeltaRMin = 500.; - l1IndMatched = 500; l2IndMatched = 500; - if (kElec > 0 && kMuon > 0 && isoElecs.size()>0) { - const string& moduleLabelElec(moduleLabels[kElec]); - const string moduleTypeElec(hltConfig.moduleType(moduleLabelElec)); - const unsigned int filterIndexElec(triggerEventWithRefsHandle->filterIndex(edm::InputTag(moduleLabelElec,"",processName_))); - triggerEventWithRefsHandle->getObjects(filterIndexElec,electronIds_,electronRefs_); - const unsigned int nElectrons(electronIds_.size()); - double deltar = 600.; - for (unsigned int inde = 0; inde < isoElecs.size(); inde++) { - if (nElectrons > 0) deltar = deltaR(*electronRefs_[0],*isoElecs[inde]); - if (deltar < l1DeltaRMin) { - l1DeltaRMin = deltar; - l1IndMatched = inde; + fill("leptResolution_", fabs(isoElecs[l1IndMatched]->pt()-electronRefs_[0]->pt())/isoElecs[l1IndMatched]->pt() ); } } - if (nElectrons > 0 && l1IndMatched < 500) fill("leptDeltaREta_", isoElecs[l1IndMatched]->eta(), l1DeltaRMin); - if (l1DeltaRMin < DRMIN) { - l1Matched = true; - fill("matchingMon_", 0.5 ); - fill("leptResolution_", fabs(isoElecs[l1IndMatched]->pt()-electronRefs_[0]->pt())/isoElecs[l1IndMatched]->pt() ); - } - } - if (kElec > 0 && kMuon > 0 && isoMuons.size()>0) { - const string& moduleLabelMuon(moduleLabels[kMuon]); - const string moduleTypeMuon(hltConfig.moduleType(moduleLabelMuon)); - const unsigned int filterIndexMuon(triggerEventWithRefsHandle->filterIndex(edm::InputTag(moduleLabelMuon,"",processName_))); - triggerEventWithRefsHandle->getObjects(filterIndexMuon,muonIds_,muonRefs_); - const unsigned int nMuons(muonIds_.size()); - if (isoMuons.size()<1) continue; - double deltar = 600.; - for (unsigned int indm = 0; indm < isoMuons.size(); indm++) { - if (nMuons > 0) deltar = deltaR(*muonRefs_[0],*isoMuons[indm]); - if (deltar < l2DeltaRMin) { - l2DeltaRMin = deltar; - l2IndMatched = indm; + if (kElec > 0 && kMuon > 0 && isoMuons.size()>0) { + const string& moduleLabelMuon(moduleLabels[kMuon]); + const string moduleTypeMuon(hltConfig.moduleType(moduleLabelMuon)); + const unsigned int filterIndexMuon(triggerEventWithRefsHandle->filterIndex(edm::InputTag(moduleLabelMuon,"",processName_))); + triggerEventWithRefsHandle->getObjects(filterIndexMuon,muonIds_,muonRefs_); + const unsigned int nMuons(muonIds_.size()); + if (isoMuons.size()<1) continue; + double deltar = 600.; + for (unsigned int indm = 0; indm < isoMuons.size(); indm++) { + if (nMuons > 0) deltar = deltaR(*muonRefs_[0],*isoMuons[indm]); + if (deltar < l2DeltaRMin) { + l2DeltaRMin = deltar; + l2IndMatched = indm; + } + } + if (nMuons > 0 && l2IndMatched < 500) fill("leptDeltaREta_", isoMuons[l2IndMatched]->eta(), l2DeltaRMin); + if (l2DeltaRMin < DRMIN) { + l2Matched = true; + fill("matchingMon_", 1.5 ); + fill("leptResolution_", fabs(isoMuons[l2IndMatched]->pt()-muonRefs_[0]->pt())/isoMuons[l2IndMatched]->pt() ); } } - if (nMuons > 0 && l2IndMatched < 500) fill("leptDeltaREta_", isoMuons[l2IndMatched]->eta(), l2DeltaRMin); - if (l2DeltaRMin < DRMIN) { - l2Matched = true; - fill("matchingMon_", 1.5 ); - fill("leptResolution_", fabs(isoMuons[l2IndMatched]->pt()-muonRefs_[0]->pt())/isoMuons[l2IndMatched]->pt() ); - } + if (l1Matched && l2Matched) fill("matchingMon_", 2.5 ); } - if (l1Matched && l2Matched) fill("matchingMon_", 2.5 ); } } @@ -767,11 +768,11 @@ TopDiLeptonHLTOfflineDQM::dqmBeginRun(const edm::Run& iRun, const edm::EventSetu bool changed(true); if (!hltConfig_.init(iRun,iSetup,"*",changed)) { - edm::LogWarning( "TopSingleLeptonHLTOfflineDQM" ) - << "Config extraction failure with process name " - << hltConfig_.processName() - << "\n"; - return; + edm::LogWarning( "TopSingleLeptonHLTOfflineDQM" ) + << "Config extraction failure with process name " + << hltConfig_.processName() + << "\n"; + return; } } @@ -827,7 +828,7 @@ TopDiLeptonHLTOfflineDQM::analyze(const edm::Event& event, const edm::EventSetup } } -void + void TopDiLeptonHLTOfflineDQM::bookHistograms(DQMStore::IBooker &i, edm::Run const&, edm::EventSetup const&) { for (auto& sel: selection_) { diff --git a/DQMOffline/Trigger/src/TopSingleLeptonHLTOfflineDQM.cc b/DQMOffline/Trigger/src/TopSingleLeptonHLTOfflineDQM.cc index 3791a70072834..4a2c738aaa60f 100644 --- a/DQMOffline/Trigger/src/TopSingleLeptonHLTOfflineDQM.cc +++ b/DQMOffline/Trigger/src/TopSingleLeptonHLTOfflineDQM.cc @@ -243,9 +243,6 @@ namespace HLTOfflineDQMTopSingleLepton { if( !event.getByToken(triggerTable_, triggerTable) ) return; } - edm::Handle triggerEventWithRefsHandle; - if(!event.getByToken(triggerEventWithRefsTag_,triggerEventWithRefsHandle)) return; - /* ------------------------------------------------------------ @@ -257,7 +254,7 @@ namespace HLTOfflineDQMTopSingleLepton { edm::Handle > pvs; if( !event.getByToken(pvs_, pvs) ) { edm::LogWarning( "TopSingleLeptonHLTOfflineDQM" ) - << "Vertex collection not found \n"; + << "Vertex collection not found \n"; return; } unsigned int pvMult = 0; @@ -279,7 +276,7 @@ namespace HLTOfflineDQMTopSingleLepton { edm::Handle > elecs; if( !event.getByToken(elecs_, elecs) ) { edm::LogWarning( "TopSingleLeptonHLTOfflineDQM" ) - << "Electron collection not found \n"; + << "Electron collection not found \n"; return; } @@ -317,7 +314,7 @@ namespace HLTOfflineDQMTopSingleLepton { std::vector isoMuons; if( !event.getByToken(muons_, muons) ) { edm::LogWarning( "TopSingleLeptonHLTOfflineDQM" ) - << "Muon collection not found \n"; + << "Muon collection not found \n"; return; } reco::Muon mu; @@ -376,7 +373,7 @@ namespace HLTOfflineDQMTopSingleLepton { edm::Handle > jets; if( !event.getByToken(jets_, jets) ) { edm::LogWarning( "TopSingleLeptonHLTOfflineDQM" ) - << "Jet collection not found \n"; + << "Jet collection not found \n"; return; } @@ -499,157 +496,161 @@ namespace HLTOfflineDQMTopSingleLepton { ------------------------------------------------------------ */ - const edm::TriggerNames& triggerNames = event.triggerNames(*triggerTable); - // loop over trigger paths - for(unsigned int i=0; i& moduleLabels(hltConfig.moduleLabels(triggerIndex)); - const unsigned int moduleIndex(triggerTable->index(triggerIndex)); - // Results from TriggerEventWithRefs product - electronIds_.clear(); electronRefs_.clear(); - muonIds_.clear(); muonRefs_.clear(); - pfjetIds_.clear(); pfjetRefs_.clear(); - // look only for modules actually run in this path - unsigned int kElec=0; - unsigned int kMuon=0; - unsigned int kJet=0; - for (unsigned int k=0; k<=moduleIndex; ++k) { - const string& moduleLabel(moduleLabels[k]); - const string moduleType(hltConfig.moduleType(moduleLabel)); - // check whether the module is packed up in TriggerEventWithRef product - const unsigned int filterIndex(triggerEventWithRefsHandle->filterIndex(edm::InputTag(moduleLabel,"",processName_))); - if (filterIndexsize()) { - triggerEventWithRefsHandle->getObjects(filterIndex,electronIds_,electronRefs_); - const unsigned int nElectrons(electronIds_.size()); - if (nElectrons>0) kElec = k; - - triggerEventWithRefsHandle->getObjects(filterIndex,muonIds_,muonRefs_); - const unsigned int nMuons(muonIds_.size()); - if (nMuons>0) kMuon = k; - - triggerEventWithRefsHandle->getObjects(filterIndex,pfjetIds_,pfjetRefs_); - const unsigned int nPFJets(pfjetIds_.size()); - if (nPFJets>0) kJet = k; + edm::Handle triggerEventWithRefsHandle; + if(event.getByToken(triggerEventWithRefsTag_,triggerEventWithRefsHandle)) { + + const edm::TriggerNames& triggerNames = event.triggerNames(*triggerTable); + // loop over trigger paths + for(unsigned int i=0; i 0) { - const string& moduleLabelElec(moduleLabels[kElec]); - const string moduleTypeElec(hltConfig.moduleType(moduleLabelElec)); - const unsigned int filterIndexElec(triggerEventWithRefsHandle->filterIndex(edm::InputTag(moduleLabelElec,"",processName_))); - triggerEventWithRefsHandle->getObjects(filterIndexElec,electronIds_,electronRefs_); - for (unsigned int inde = 0; inde < isoElecs.size(); inde++) { - double deltar = deltaR(*electronRefs_[0],*isoElecs[inde]); - if (deltar < eDeltaRMin) { - eDeltaRMin = deltar; - eIndMatched = inde; + if (!isInteresting) continue; + // dump infos on the considered trigger path + const unsigned int triggerIndex = triggerNames.triggerIndex(name); + // get modules for the considered trigger path + const vector& moduleLabels(hltConfig.moduleLabels(triggerIndex)); + const unsigned int moduleIndex(triggerTable->index(triggerIndex)); + // Results from TriggerEventWithRefs product + electronIds_.clear(); electronRefs_.clear(); + muonIds_.clear(); muonRefs_.clear(); + pfjetIds_.clear(); pfjetRefs_.clear(); + // look only for modules actually run in this path + unsigned int kElec=0; + unsigned int kMuon=0; + unsigned int kJet=0; + for (unsigned int k=0; k<=moduleIndex; ++k) { + const string& moduleLabel(moduleLabels[k]); + const string moduleType(hltConfig.moduleType(moduleLabel)); + // check whether the module is packed up in TriggerEventWithRef product + const unsigned int filterIndex(triggerEventWithRefsHandle->filterIndex(edm::InputTag(moduleLabel,"",processName_))); + if (filterIndexsize()) { + triggerEventWithRefsHandle->getObjects(filterIndex,electronIds_,electronRefs_); + const unsigned int nElectrons(electronIds_.size()); + if (nElectrons>0) kElec = k; + + triggerEventWithRefsHandle->getObjects(filterIndex,muonIds_,muonRefs_); + const unsigned int nMuons(muonIds_.size()); + if (nMuons>0) kMuon = k; + + triggerEventWithRefsHandle->getObjects(filterIndex,pfjetIds_,pfjetRefs_); + const unsigned int nPFJets(pfjetIds_.size()); + if (nPFJets>0) kJet = k; } } - if (eDeltaRMin < DRMIN) lMatched = true; - } - // access to hlt muons - muonIds_.clear(); muonRefs_.clear(); - double mDeltaRMin = 500.; - unsigned int mIndMatched = 500; - if (kMuon > 0) { - const string& moduleLabelMuon(moduleLabels[kMuon]); - const string moduleTypeMuon(hltConfig.moduleType(moduleLabelMuon)); - const unsigned int filterIndexMuon(triggerEventWithRefsHandle->filterIndex(edm::InputTag(moduleLabelMuon,"",processName_))); - triggerEventWithRefsHandle->getObjects(filterIndexMuon,muonIds_,muonRefs_); - for (unsigned int indm = 0; indm < isoMuons.size(); indm++) { - double deltar = deltaR(*muonRefs_[0],*isoMuons[indm]); - if (deltar < mDeltaRMin) { - mDeltaRMin = deltar; - mIndMatched = indm; + bool isMatched = true; + bool lMatched = false; + bool j1Matched = false; + bool j2Matched = false; + bool j3Matched = false; + // access to hlt elecs + double eDeltaRMin = 500.; + unsigned int eIndMatched = 500; + electronIds_.clear(); electronRefs_.clear(); + if (kElec > 0) { + const string& moduleLabelElec(moduleLabels[kElec]); + const string moduleTypeElec(hltConfig.moduleType(moduleLabelElec)); + const unsigned int filterIndexElec(triggerEventWithRefsHandle->filterIndex(edm::InputTag(moduleLabelElec,"",processName_))); + triggerEventWithRefsHandle->getObjects(filterIndexElec,electronIds_,electronRefs_); + for (unsigned int inde = 0; inde < isoElecs.size(); inde++) { + double deltar = deltaR(*electronRefs_[0],*isoElecs[inde]); + if (deltar < eDeltaRMin) { + eDeltaRMin = deltar; + eIndMatched = inde; + } } + if (eDeltaRMin < DRMIN) lMatched = true; } - if (mDeltaRMin < DRMIN) lMatched = true; - } - // access to hlt pf jets - const unsigned int nPFJets(pfjetIds_.size()); - pfjetIds_.clear(); pfjetRefs_.clear(); - double j1DeltaRMin = 500.; - double j2DeltaRMin = 500.; - double j3DeltaRMin = 500.; - unsigned int j1IndMatched = 500; - unsigned int j2IndMatched = 500; - unsigned int j3IndMatched = 500; - if (kJet > 0) { - const string& moduleLabelJet(moduleLabels[kJet]); - const string moduleTypeJet(hltConfig.moduleType(moduleLabelJet)); - const unsigned int filterIndexJet(triggerEventWithRefsHandle->filterIndex(edm::InputTag(moduleLabelJet,"",processName_))); - triggerEventWithRefsHandle->getObjects(filterIndexJet,pfjetIds_,pfjetRefs_); - for (unsigned int indj = 0; indj < correctedJets.size(); indj++) { - double deltar1 = deltaR(*pfjetRefs_[0],correctedJets[indj]); - if (deltar1 < j1DeltaRMin) {j1DeltaRMin = deltar1; j1IndMatched = indj;} - if (nPFJets > 1) { - double deltar2 = deltaR(*pfjetRefs_[1],correctedJets[indj]); - if (deltar2 < j2DeltaRMin) {j2DeltaRMin = deltar2; j2IndMatched = indj;} - if (nPFJets > 2) { - double deltar3 = deltaR(*pfjetRefs_[2],correctedJets[indj]); - if (deltar3 < j3DeltaRMin) {j3DeltaRMin = deltar3; j3IndMatched = indj;} + // access to hlt muons + muonIds_.clear(); muonRefs_.clear(); + double mDeltaRMin = 500.; + unsigned int mIndMatched = 500; + if (kMuon > 0) { + const string& moduleLabelMuon(moduleLabels[kMuon]); + const string moduleTypeMuon(hltConfig.moduleType(moduleLabelMuon)); + const unsigned int filterIndexMuon(triggerEventWithRefsHandle->filterIndex(edm::InputTag(moduleLabelMuon,"",processName_))); + triggerEventWithRefsHandle->getObjects(filterIndexMuon,muonIds_,muonRefs_); + for (unsigned int indm = 0; indm < isoMuons.size(); indm++) { + double deltar = deltaR(*muonRefs_[0],*isoMuons[indm]); + if (deltar < mDeltaRMin) { + mDeltaRMin = deltar; + mIndMatched = indm; } } + if (mDeltaRMin < DRMIN) lMatched = true; } - if (nPFJets > 0 && j1DeltaRMin < DRMIN) j1Matched = true; - if (nPFJets > 1 && j2DeltaRMin < DRMIN) j2Matched = true; - if (nPFJets > 2 && j3DeltaRMin < DRMIN) j3Matched = true; - } - if (eIndMatched < 500) { - fill("leptDeltaREta_", isoElecs[eIndMatched]->eta(), eDeltaRMin); - if (lMatched) fill("leptResolution_", fabs(isoElecs[eIndMatched]->pt()-electronRefs_[0]->pt())/isoElecs[eIndMatched]->pt() ); - } - if (mIndMatched < 500) { - fill("leptDeltaREta_", isoMuons[mIndMatched]->eta(), mDeltaRMin); - if (lMatched) fill("leptResolution_", fabs(isoMuons[mIndMatched]->pt()-muonRefs_[0]->pt())/isoMuons[mIndMatched]->pt() ); - } - if (lMatched) fill("matchingMon_", 0.5 ); - else isMatched = false; - if (j1IndMatched < 500) { - fill("jetDeltaREta_", correctedJets[j1IndMatched].eta(), j1DeltaRMin); - if (j1Matched) { - fill("jetResolution_", fabs(correctedJets[j1IndMatched].pt()-pfjetRefs_[0]->pt())/correctedJets[j1IndMatched].pt() ); - fill("matchingMon_", 1.5 ); + // access to hlt pf jets + const unsigned int nPFJets(pfjetIds_.size()); + pfjetIds_.clear(); pfjetRefs_.clear(); + double j1DeltaRMin = 500.; + double j2DeltaRMin = 500.; + double j3DeltaRMin = 500.; + unsigned int j1IndMatched = 500; + unsigned int j2IndMatched = 500; + unsigned int j3IndMatched = 500; + if (kJet > 0) { + const string& moduleLabelJet(moduleLabels[kJet]); + const string moduleTypeJet(hltConfig.moduleType(moduleLabelJet)); + const unsigned int filterIndexJet(triggerEventWithRefsHandle->filterIndex(edm::InputTag(moduleLabelJet,"",processName_))); + triggerEventWithRefsHandle->getObjects(filterIndexJet,pfjetIds_,pfjetRefs_); + for (unsigned int indj = 0; indj < correctedJets.size(); indj++) { + double deltar1 = deltaR(*pfjetRefs_[0],correctedJets[indj]); + if (deltar1 < j1DeltaRMin) {j1DeltaRMin = deltar1; j1IndMatched = indj;} + if (nPFJets > 1) { + double deltar2 = deltaR(*pfjetRefs_[1],correctedJets[indj]); + if (deltar2 < j2DeltaRMin) {j2DeltaRMin = deltar2; j2IndMatched = indj;} + if (nPFJets > 2) { + double deltar3 = deltaR(*pfjetRefs_[2],correctedJets[indj]); + if (deltar3 < j3DeltaRMin) {j3DeltaRMin = deltar3; j3IndMatched = indj;} + } + } + } + if (nPFJets > 0 && j1DeltaRMin < DRMIN) j1Matched = true; + if (nPFJets > 1 && j2DeltaRMin < DRMIN) j2Matched = true; + if (nPFJets > 2 && j3DeltaRMin < DRMIN) j3Matched = true; + } + if (eIndMatched < 500) { + fill("leptDeltaREta_", isoElecs[eIndMatched]->eta(), eDeltaRMin); + if (lMatched) fill("leptResolution_", fabs(isoElecs[eIndMatched]->pt()-electronRefs_[0]->pt())/isoElecs[eIndMatched]->pt() ); } + if (mIndMatched < 500) { + fill("leptDeltaREta_", isoMuons[mIndMatched]->eta(), mDeltaRMin); + if (lMatched) fill("leptResolution_", fabs(isoMuons[mIndMatched]->pt()-muonRefs_[0]->pt())/isoMuons[mIndMatched]->pt() ); + } + if (lMatched) fill("matchingMon_", 0.5 ); else isMatched = false; - if (j2IndMatched < 500) { - fill("jetDeltaREta_", correctedJets[j2IndMatched].eta(), j2DeltaRMin); - if (j2Matched) { - fill("jetResolution_", fabs(correctedJets[j2IndMatched].pt()-pfjetRefs_[1]->pt())/correctedJets[j2IndMatched].pt() ); - fill("matchingMon_", 2.5 ); + if (j1IndMatched < 500) { + fill("jetDeltaREta_", correctedJets[j1IndMatched].eta(), j1DeltaRMin); + if (j1Matched) { + fill("jetResolution_", fabs(correctedJets[j1IndMatched].pt()-pfjetRefs_[0]->pt())/correctedJets[j1IndMatched].pt() ); + fill("matchingMon_", 1.5 ); } else isMatched = false; - if (j3IndMatched < 500) { - fill("jetDeltaREta_", correctedJets[j3IndMatched].eta(), j3DeltaRMin); - if (j3Matched) { - fill("jetResolution_", fabs(correctedJets[j3IndMatched].pt()-pfjetRefs_[2]->pt())/correctedJets[j3IndMatched].pt() ); - fill("matchingMon_", 3.5 ); + if (j2IndMatched < 500) { + fill("jetDeltaREta_", correctedJets[j2IndMatched].eta(), j2DeltaRMin); + if (j2Matched) { + fill("jetResolution_", fabs(correctedJets[j2IndMatched].pt()-pfjetRefs_[1]->pt())/correctedJets[j2IndMatched].pt() ); + fill("matchingMon_", 2.5 ); } else isMatched = false; + if (j3IndMatched < 500) { + fill("jetDeltaREta_", correctedJets[j3IndMatched].eta(), j3DeltaRMin); + if (j3Matched) { + fill("jetResolution_", fabs(correctedJets[j3IndMatched].pt()-pfjetRefs_[2]->pt())/correctedJets[j3IndMatched].pt() ); + fill("matchingMon_", 3.5 ); + } + else isMatched = false; + } } } + if (isMatched) fill("matchingMon_", 4.5 ); + } - if (isMatched) fill("matchingMon_", 4.5 ); } - } } @@ -718,11 +719,11 @@ TopSingleLeptonHLTOfflineDQM::dqmBeginRun(const edm::Run& iRun, const edm::Event bool changed(true); if (!hltConfig_.init(iRun,iSetup,"*",changed)) { - edm::LogWarning( "TopSingleLeptonHLTOfflineDQM" ) - << "Config extraction failure with process name " - << hltConfig_.processName() - << "\n"; - return; + edm::LogWarning( "TopSingleLeptonHLTOfflineDQM" ) + << "Config extraction failure with process name " + << hltConfig_.processName() + << "\n"; + return; } } @@ -738,13 +739,13 @@ TopSingleLeptonHLTOfflineDQM::analyze(const edm::Event& event, const edm::EventS edm::Handle > vertex; if( !event.getByToken(vertex_, vertex) ) return; if(vertex->empty() || !(*vertexSelect_)(vertex->front())) return; - } + } if(!beamspot_.isUninitialized()){ edm::Handle beamspot; if( !event.getByToken(beamspot_, beamspot) ) return; if(!(*beamspotSelect_)(*beamspot)) return; } - // apply selection steps + // apply selection steps for(std::vector::const_iterator selIt=selectionOrder_.begin(); selIt!=selectionOrder_.end(); ++selIt){ std::string key = selectionStep(*selIt), type = objectType(*selIt); if(selection_.find(key)!=selection_.end()){ @@ -778,7 +779,7 @@ TopSingleLeptonHLTOfflineDQM::analyze(const edm::Event& event, const edm::EventS } } -void + void TopSingleLeptonHLTOfflineDQM::bookHistograms(DQMStore::IBooker &i, edm::Run const&, edm::EventSetup const&) { for (auto& sel: selection_) {