From 112ae9b6697ba925f6a10d160bfa76eb0c011e92 Mon Sep 17 00:00:00 2001 From: sscruz Date: Fri, 15 Sep 2017 12:17:47 +0200 Subject: [PATCH 1/4] Adding new paths to the monitoring --- .../python/HLTMuonOfflineAnalyzer_cff.py | 93 +++++++++++++------ .../python/HLTMuonOfflineAnalyzer_cfi.py | 8 ++ .../Trigger/python/MuonPostProcessor_cff.py | 5 +- DQMOffline/Trigger/src/HLTMuonMatchAndPlot.cc | 63 ++++++++++--- 4 files changed, 128 insertions(+), 41 deletions(-) diff --git a/DQMOffline/Trigger/python/HLTMuonOfflineAnalyzer_cff.py b/DQMOffline/Trigger/python/HLTMuonOfflineAnalyzer_cff.py index bf39e34926cc0..70943c3b5f9a9 100644 --- a/DQMOffline/Trigger/python/HLTMuonOfflineAnalyzer_cff.py +++ b/DQMOffline/Trigger/python/HLTMuonOfflineAnalyzer_cff.py @@ -67,16 +67,23 @@ #tightAnalyzer.probeParams = cms.PSet() -globalAnalyzerRef = hltMuonOfflineAnalyzer.clone() -globalAnalyzerRef.destination = "HLT/Muon/DistributionsGlobal" -globalAnalyzerRef.targetParams = globalMuonParams -globalAnalyzerRef.hltPathsToCheck = cms.vstring( +refPathsList = cms.vstring( "HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v", "HLT_Mu17_TrkIsoVVL_TkMu8_TrkIsoVVL_DZ_v", "HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v", "HLT_Mu17_TrkIsoVVL_TkMu8_TrkIsoVVL_v", "HLT_TkMu17_TrkIsoVVL_TkMu8_TrkIsoVVL_v", - "HLT_TkMu17_TrkIsoVVL_TkMu8_TrkIsoVVL_DZ_v") + "HLT_TkMu17_TrkIsoVVL_TkMu8_TrkIsoVVL_DZ_v" + "HLT_Mu18_Mu9_DZ_v", + "HLT_Mu18_Mu9_v", + "HLT_Mu18_Mu9_SameSign_DZ_v", + "HLT_Mu18_Mu9_SameSign_v" + ) + +globalAnalyzerRef = hltMuonOfflineAnalyzer.clone() +globalAnalyzerRef.destination = "HLT/Muon/DistributionsGlobal" +globalAnalyzerRef.targetParams = globalMuonParams +globalAnalyzerRef.hltPathsToCheck = refPathsList globalAnalyzerRef.requiredTriggers = cms.untracked.vstring( "HLT_Mu17_TrkIsoVVL_v") @@ -85,13 +92,7 @@ trackerAnalyzerRef = hltMuonOfflineAnalyzer.clone() trackerAnalyzerRef.destination = "HLT/Muon/DistributionsTracker" trackerAnalyzerRef.targetParams = trackerMuonParams -trackerAnalyzerRef.hltPathsToCheck = cms.vstring( - "HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v", - "HLT_Mu17_TrkIsoVVL_TkMu8_TrkIsoVVL_DZ_v", - "HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v", - "HLT_Mu17_TrkIsoVVL_TkMu8_TrkIsoVVL_v", - "HLT_TkMu17_TrkIsoVVL_TkMu8_TrkIsoVVL_v", - "HLT_TkMu17_TrkIsoVVL_TkMu8_TrkIsoVVL_DZ_v") +trackerAnalyzerRef.hltPathsToCheck = refPathsList trackerAnalyzerRef.requiredTriggers = cms.untracked.vstring( "HLT_Mu17_TrkIsoVVL_v") #trackerAnalyzerRef.probeParams = cms.PSet() @@ -99,13 +100,8 @@ tightAnalyzerRef = hltMuonOfflineAnalyzer.clone() tightAnalyzerRef.destination = "HLT/Muon/DistributionsTight" tightAnalyzerRef.targetParams = tightMuonParams -tightAnalyzerRef.hltPathsToCheck = cms.vstring( - "HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v", - "HLT_Mu17_TrkIsoVVL_TkMu8_TrkIsoVVL_DZ_v", - "HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v", - "HLT_Mu17_TrkIsoVVL_TkMu8_TrkIsoVVL_v", - "HLT_TkMu17_TrkIsoVVL_TkMu8_TrkIsoVVL_v", - "HLT_TkMu17_TrkIsoVVL_TkMu8_TrkIsoVVL_DZ_v") +tightAnalyzerRef.hltPathsToCheck = refPathsList + tightAnalyzerRef.requiredTriggers = cms.untracked.vstring( "HLT_Mu17_TrkIsoVVL_v") #tightAnalyzerRef.probeParams = cms.PSet() @@ -113,19 +109,58 @@ looseAnalyzerRef = hltMuonOfflineAnalyzer.clone() looseAnalyzerRef.destination = "HLT/Muon/DistributionsLoose" looseAnalyzerRef.targetParams = looseMuonParams -looseAnalyzerRef.hltPathsToCheck = cms.vstring( - "HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v", - "HLT_Mu17_TrkIsoVVL_TkMu8_TrkIsoVVL_DZ_v", - "HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v", - "HLT_Mu17_TrkIsoVVL_TkMu8_TrkIsoVVL_v", - "HLT_TkMu17_TrkIsoVVL_TkMu8_TrkIsoVVL_v", - "HLT_TkMu17_TrkIsoVVL_TkMu8_TrkIsoVVL_DZ_v") +looseAnalyzerRef.hltPathsToCheck = refPathsList looseAnalyzerRef.requiredTriggers = cms.untracked.vstring( "HLT_Mu17_TrkIsoVVL_v") #tightAnalyzer.probeParams = cms.PSet() +refPathsList19 = cms.vstring( + "HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v", + "HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v" , + "HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v" , + "HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v", + "HLT_Mu20_Mu10_DZ_v", + "HLT_Mu20_Mu10_SameSign_DZ_v", + "HLT_Mu20_Mu10_SameSign_v", + "HLT_Mu20_Mu10_v") + +globalAnalyzerRef19 = hltMuonOfflineAnalyzer.clone() +globalAnalyzerRef19.destination = "HLT/Muon/DistributionsGlobal" +globalAnalyzerRef19.targetParams = globalMuonParams +globalAnalyzerRef19.hltPathsToCheck = refPathsList19 +globalAnalyzerRef19.requiredTriggers = cms.untracked.vstring( + "HLT_Mu19_TrkIsoVVL_v") + +#globalAnalyzerRef19.probeParams = cms.PSet() + +trackerAnalyzerRef19 = hltMuonOfflineAnalyzer.clone() +trackerAnalyzerRef19.destination = "HLT/Muon/DistributionsTracker" +trackerAnalyzerRef19.targetParams = trackerMuonParams +trackerAnalyzerRef19.hltPathsToCheck = refPathsList19 +trackerAnalyzerRef19.requiredTriggers = cms.untracked.vstring( + "HLT_Mu19_TrkIsoVVL_v") +#trackerAnalyzerRef19.probeParams = cms.PSet() + +tightAnalyzerRef19 = hltMuonOfflineAnalyzer.clone() +tightAnalyzerRef19.destination = "HLT/Muon/DistributionsTight" +tightAnalyzerRef19.targetParams = tightMuonParams +tightAnalyzerRef19.hltPathsToCheck = refPathsList19 +tightAnalyzerRef19.requiredTriggers = cms.untracked.vstring( + "HLT_Mu19_TrkIsoVVL_v") +#tightAnalyzerRef19.probeParams = cms.PSet() + +looseAnalyzerRef19 = hltMuonOfflineAnalyzer.clone() +looseAnalyzerRef19.destination = "HLT/Muon/DistributionsLoose" +looseAnalyzerRef19.targetParams = looseMuonParams +looseAnalyzerRef19.hltPathsToCheck = refPathsList19 +looseAnalyzerRef19.requiredTriggers = cms.untracked.vstring( + "HLT_Mu19_TrkIsoVVL_v") +#tightAnalyzer.probeParams = cms.PSet() + + + hltMuonOfflineAnalyzers = cms.Sequence( globalAnalyzerTnP * @@ -135,7 +170,11 @@ globalAnalyzerRef * trackerAnalyzerRef * tightAnalyzerRef * - looseAnalyzerRef + looseAnalyzerRef * + globalAnalyzerRef19 * + trackerAnalyzerRef19 * + tightAnalyzerRef19 * + looseAnalyzerRef19 ) from Configuration.Eras.Modifier_pA_2016_cff import pA_2016 diff --git a/DQMOffline/Trigger/python/HLTMuonOfflineAnalyzer_cfi.py b/DQMOffline/Trigger/python/HLTMuonOfflineAnalyzer_cfi.py index 1b1303c76243d..90ab2c2152cf4 100644 --- a/DQMOffline/Trigger/python/HLTMuonOfflineAnalyzer_cfi.py +++ b/DQMOffline/Trigger/python/HLTMuonOfflineAnalyzer_cfi.py @@ -39,6 +39,14 @@ "HLT_IsoTkMu22_eta2p1_v", "HLT_IsoMu18_v", "HLT_IsoTkMu18_v", + "HLT_IsoMu30_v", + "HLT_Mu55_v", + "HLT_Mu19_TrkIsoVVL_v", + "HLT_Mu19_v", + "HLT_L2Mu50_v", + "HLT_OldMu100_v", + "HLT_TkMu100_v", + "HLT_DoubleL2Mu50_v", "HLT_PAL1DoubleMuOpen_v", #for HI "HLT_PAL1DoubleMuOpen_OS_v", #for HI "HLT_PAL1DoubleMuOpen_SS_v", #for HI diff --git a/DQMOffline/Trigger/python/MuonPostProcessor_cff.py b/DQMOffline/Trigger/python/MuonPostProcessor_cff.py index 49eb90addbb9b..95dd7aafd0469 100644 --- a/DQMOffline/Trigger/python/MuonPostProcessor_cff.py +++ b/DQMOffline/Trigger/python/MuonPostProcessor_cff.py @@ -22,7 +22,10 @@ "Refefficiency_TurnOn_Mu2 'Reference efficiency; Pt; N(pass) / N' Refefficiency_TurnOn_Mu2_numer Refefficiency_TurnOn_Mu2_denom", "Refefficiency_DZ_Mu 'Reference efficiency; d_{z}; N(pass) / N' Refefficiency_DZ_Mu_numer Refefficiency_DZ_Mu_denom", "Refefficiency_DZ_Vertex 'Reference efficiency; d_{z}; N(pass) / N' Refefficiency_DZ_Vertex_numer Refefficiency_DZ_Vertex_denom", - + "Ref_SS_pt1 'Same sign efficiency'; p_{T}; N(pass) / N' Ref_SS_pt1_numer Ref_SS_pt1_denom", + "Ref_SS_pt2 'Same sign efficiency'; p_{T}; N(pass) / N' Ref_SS_pt2_numer Ref_SS_pt2_denom", + "Ref_SS_eta1 'Same sign efficiency'; p_{T}; N(pass) / N' Ref_SS_eta1_numer Ref_SS_eta1_denom", + "Ref_SS_eta2 'Same sign efficiency'; p_{T}; N(pass) / N' Ref_SS_eta2_numer Ref_SS_eta2_denom", ), diff --git a/DQMOffline/Trigger/src/HLTMuonMatchAndPlot.cc b/DQMOffline/Trigger/src/HLTMuonMatchAndPlot.cc index 35e914bb0d082..5f03906e1a68e 100644 --- a/DQMOffline/Trigger/src/HLTMuonMatchAndPlot.cc +++ b/DQMOffline/Trigger/src/HLTMuonMatchAndPlot.cc @@ -183,6 +183,10 @@ void HLTMuonMatchAndPlot::beginRun(DQMStore::IBooker & iBooker, book2D(iBooker, "Refefficiency_Eta_"+suffix, "etaCoarse", "etaCoarse", ";#eta;#eta"); book2D(iBooker, "Refefficiency_Pt_"+suffix, "ptCoarse", "ptCoarse", ";p_{T};p_{T}"); book1D(iBooker, "Refefficiency_DZ_Vertex_" + suffix, "NVertex", ";NVertex;"); + book1D(iBooker, "Ref_SS_pt1_" + suffix, "ptCoarse", ";p_{T}"); + book1D(iBooker, "Ref_SS_pt2_" + suffix, "ptCoarse", ";p_{T}"); + book1D(iBooker, "Ref_SS_eta1_" + suffix, "etaCoarse", ";#eta;"); + book1D(iBooker, "Ref_SS_eta2_" + suffix, "etaCoarse", ";#eta;"); // book1D(iBooker, "Refefficiency_DZ_Mu2_" + suffix, "z0", ";z0;"); } // string MRbaseDir = boost::replace_all_copy(baseDir, "HLT/Muon","HLT/Muon/MR"); @@ -359,13 +363,15 @@ void HLTMuonMatchAndPlot::analyze(Handle & allMuons, if(mass > 60 && mass < 120) { if(muon.pt() < targetptCutZ_) continue; - hists_["massVsEtaZ_denom"]->Fill(theProbe.eta()); - hists_["MR_massVsEtaZ_denom"]->Fill(theProbe.eta()); - hists_["MR_massVsPhiZ_denom"]->Fill(theProbe.phi()); - hists_["massVsPtZ_denom"]->Fill(theProbe.pt()); - hists_["MR_massVsPtZ_denom"]->Fill(theProbe.pt()); - hists_["massVsVertexZ_denom"]->Fill(vertices->size()); - hists_["MR_massVsVertexZ_denom"]->Fill(vertices->size()); + hists_["massVsPtZ_denom"]->Fill(theProbe.pt()); + hists_["massVsEtaZ_denom"]->Fill(theProbe.eta()); + if (theProbe.pt() > cutMinPt_){ + hists_["MR_massVsEtaZ_denom"]->Fill(theProbe.eta()); + hists_["MR_massVsPhiZ_denom"]->Fill(theProbe.phi()); + hists_["MR_massVsPtZ_denom"]->Fill(theProbe.pt()); + hists_["massVsVertexZ_denom"]->Fill(vertices->size()); + hists_["MR_massVsVertexZ_denom"]->Fill(vertices->size()); + } const Track * track = nullptr; if (theProbe.isTrackerMuon()) track = & * theProbe.innerTrack(); else if (theProbe.isStandAloneMuon()) track = & * theProbe.outerTrack(); @@ -375,18 +381,20 @@ void HLTMuonMatchAndPlot::analyze(Handle & allMuons, } hists_["efficiencyDeltaR_denom" ]->Fill(deltaR(theProbe, muon)); if(matches[k] < targetMuons.size()) { - hists_["massVsEtaZ_numer"]->Fill(theProbe.eta()); - hists_["MR_massVsEtaZ_numer"]->Fill(theProbe.eta()); - hists_["MR_massVsPhiZ_numer"]->Fill(theProbe.phi()); hists_["massVsPtZ_numer"]->Fill(theProbe.pt()); hists_["MR_massVsPtZ_numer"]->Fill(theProbe.pt()); - hists_["massVsVertexZ_numer"]->Fill(vertices->size()); - hists_["MR_massVsVertexZ_numer"]->Fill(vertices->size()); - hists_["efficiencyDeltaR_numer" ]->Fill(deltaR(theProbe, muon)); + if (theProbe.pt() > cutMinPt_){ + hists_["MR_massVsPhiZ_numer"]->Fill(theProbe.phi()); + hists_["massVsEtaZ_numer"]->Fill(theProbe.eta()); + hists_["MR_massVsEtaZ_numer"]->Fill(theProbe.eta()); + hists_["massVsVertexZ_numer"]->Fill(vertices->size()); + hists_["MR_massVsVertexZ_numer"]->Fill(vertices->size()); + } if (track){ hists_["massVsDZZ_numer"]->Fill(track->dz(beamSpot->position())); hists_["MR_massVsDZZ_numer"]->Fill(track->dz(beamSpot->position())); } + hists_["efficiencyDeltaR_numer" ]->Fill(deltaR(theProbe, muon)); } pairalreadyconsidered = true; } @@ -484,6 +492,35 @@ void HLTMuonMatchAndPlot::analyze(Handle & allMuons, } } + string nonSameSignPath = hltPath_; + bool ssPath=false; + if ( nonSameSignPath.rfind("_SameSign") < nonSameSignPath.length()){ + ssPath = true; + nonSameSignPath = boost::replace_all_copy(nonSameSignPath, "_SameSign",""); + nonSameSignPath = nonSameSignPath.substr(0, nonSameSignPath.rfind("_v")+2); + } + bool passTriggerSS = false; + if (ssPath){ + for ( unsigned int hltIndex = 0; hltIndex < numTriggers; ++hltIndex){ + passTriggerSS = passTriggerSS || (trigNames.triggerName(hltIndex).find(nonSameSignPath) != std::string::npos && triggerResults->wasrun(hltIndex) && triggerResults->accept(hltIndex)); + } + + if (ssPath && targetMuons.size() > 1 && passTriggerSS){ + if (targetMuons.at(0).charge() * targetMuons.at(1).charge() > 0){ + hists_["Ref_SS_pt1_denom"]->Fill( targetMuons.at(0).pt() ); + hists_["Ref_SS_pt2_denom"]->Fill( targetMuons.at(1).pt() ); + hists_["Ref_SS_eta1_denom"]->Fill( targetMuons.at(0).eta() ); + hists_["Ref_SS_eta2_denom"]->Fill( targetMuons.at(1).eta() ); + if (nMatched > 1){ + hists_["Ref_SS_pt1_numer"]->Fill( targetMuons.at(0).pt() ); + hists_["Ref_SS_pt2_numer"]->Fill( targetMuons.at(1).pt() ); + hists_["Ref_SS_eta1_numer"]->Fill( targetMuons.at(0).eta() ); + hists_["Ref_SS_eta2_numer"]->Fill( targetMuons.at(1).eta() ); + } + } + } + } + string nonDZPath = hltPath_; bool dzPath = false; if ( nonDZPath.rfind("_DZ") < nonDZPath.length()){ From f442db016e2eafdde6f8fd98ebd5d3e917ed257e Mon Sep 17 00:00:00 2001 From: sscruz Date: Tue, 19 Sep 2017 15:12:52 +0200 Subject: [PATCH 2/4] Adding .empty's and more paths to the monitoring --- DQMOffline/Trigger/python/HLTMuonOfflineAnalyzer_cff.py | 7 ++++++- DQMOffline/Trigger/src/HLTMuonMatchAndPlot.cc | 8 ++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/DQMOffline/Trigger/python/HLTMuonOfflineAnalyzer_cff.py b/DQMOffline/Trigger/python/HLTMuonOfflineAnalyzer_cff.py index 70943c3b5f9a9..10e32d7ce58e2 100644 --- a/DQMOffline/Trigger/python/HLTMuonOfflineAnalyzer_cff.py +++ b/DQMOffline/Trigger/python/HLTMuonOfflineAnalyzer_cff.py @@ -124,7 +124,12 @@ "HLT_Mu20_Mu10_DZ_v", "HLT_Mu20_Mu10_SameSign_DZ_v", "HLT_Mu20_Mu10_SameSign_v", - "HLT_Mu20_Mu10_v") + "HLT_Mu20_Mu10_v", + "HLT_Mu23_Mu12_DZ_v", + "HLT_Mu23_Mu12_SameSign_DZ_v", + "HLT_Mu23_Mu12_SameSign_v", + "HLT_Mu23_Mu12_v" + ) globalAnalyzerRef19 = hltMuonOfflineAnalyzer.clone() globalAnalyzerRef19.destination = "HLT/Muon/DistributionsGlobal" diff --git a/DQMOffline/Trigger/src/HLTMuonMatchAndPlot.cc b/DQMOffline/Trigger/src/HLTMuonMatchAndPlot.cc index 5f03906e1a68e..e3a223dc2b48c 100644 --- a/DQMOffline/Trigger/src/HLTMuonMatchAndPlot.cc +++ b/DQMOffline/Trigger/src/HLTMuonMatchAndPlot.cc @@ -172,7 +172,7 @@ void HLTMuonMatchAndPlot::beginRun(DQMStore::IBooker & iBooker, book1D(iBooker, "massVsDZZ_" + suffix, "z0", ";z0;"); - if (requiredTriggers_.size() > 0){ + if (!requiredTriggers_.empty()){ book1D(iBooker, "Refefficiency_Eta_Mu1_" + suffix, "etaCoarse", ";#eta;"); book1D(iBooker, "Refefficiency_Eta_Mu2_" + suffix, "etaCoarse", ";#eta;"); book1D(iBooker, "Refefficiency_TurnOn_Mu1_" + suffix, "ptCoarse", ";p_{T};"); @@ -192,7 +192,7 @@ void HLTMuonMatchAndPlot::beginRun(DQMStore::IBooker & iBooker, // string MRbaseDir = boost::replace_all_copy(baseDir, "HLT/Muon","HLT/Muon/MR"); iBooker.setCurrentFolder(MRbaseDir + pathSansSuffix + "/"); - if (requiredTriggers_.size() > 0){ + if (!requiredTriggers_.empty()){ book1D(iBooker, "MR_Refefficiency_TurnOn_Mu1_" + suffix, "pt", ";p_{T};"); book1D(iBooker, "MR_Refefficiency_TurnOn_Mu2_" + suffix, "pt", ";p_{T};"); book1D(iBooker, "MR_Refefficiency_Vertex_" + suffix, "NVertexFine", ";NVertex;"); @@ -427,7 +427,7 @@ void HLTMuonMatchAndPlot::analyze(Handle & allMuons, if (!isLastFilter_) return; unsigned int numTriggers = trigNames.size(); bool passTrigger = false; - if (requiredTriggers_.size() == 0) passTrigger = true; + if (requiredTriggers_.empty()) passTrigger = true; for (auto const & requiredTrigger : requiredTriggers_) { for ( unsigned int hltIndex = 0; hltIndex < numTriggers; ++hltIndex){ passTrigger = (trigNames.triggerName(hltIndex).find(requiredTrigger) != std::string::npos && triggerResults->wasrun(hltIndex) && triggerResults->accept(hltIndex)); @@ -439,7 +439,7 @@ void HLTMuonMatchAndPlot::analyze(Handle & allMuons, for (unsigned long matche : matches){ if (matche < targetMuons.size()) nMatched++; } - if (requiredTriggers_.size() > 0 && targetMuons.size() > 1 && passTrigger){ + if (!requiredTriggers_.empty() && targetMuons.size() > 1 && passTrigger){ // denominator: hists_["Refefficiency_Eta_Mu1_denom"]->Fill( targetMuons.at(0).eta()); hists_["Refefficiency_Eta_Mu2_denom"]->Fill( targetMuons.at(1).eta()); From f436e121039923043c0c5b730094379c5cca1cea Mon Sep 17 00:00:00 2001 From: sscruz Date: Fri, 22 Sep 2017 11:56:13 +0200 Subject: [PATCH 3/4] Addressing David's comments --- DQMOffline/Trigger/src/HLTMuonMatchAndPlot.cc | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/DQMOffline/Trigger/src/HLTMuonMatchAndPlot.cc b/DQMOffline/Trigger/src/HLTMuonMatchAndPlot.cc index e3a223dc2b48c..625ad57f4216f 100644 --- a/DQMOffline/Trigger/src/HLTMuonMatchAndPlot.cc +++ b/DQMOffline/Trigger/src/HLTMuonMatchAndPlot.cc @@ -506,16 +506,16 @@ void HLTMuonMatchAndPlot::analyze(Handle & allMuons, } if (ssPath && targetMuons.size() > 1 && passTriggerSS){ - if (targetMuons.at(0).charge() * targetMuons.at(1).charge() > 0){ - hists_["Ref_SS_pt1_denom"]->Fill( targetMuons.at(0).pt() ); - hists_["Ref_SS_pt2_denom"]->Fill( targetMuons.at(1).pt() ); - hists_["Ref_SS_eta1_denom"]->Fill( targetMuons.at(0).eta() ); - hists_["Ref_SS_eta2_denom"]->Fill( targetMuons.at(1).eta() ); + if (targetMuons[0].charge() * targetMuons[1].charge() > 0){ + hists_["Ref_SS_pt1_denom"]->Fill( targetMuons[0].pt() ); + hists_["Ref_SS_pt2_denom"]->Fill( targetMuons[1].pt() ); + hists_["Ref_SS_eta1_denom"]->Fill( targetMuons[0].eta() ); + hists_["Ref_SS_eta2_denom"]->Fill( targetMuons[1].eta() ); if (nMatched > 1){ - hists_["Ref_SS_pt1_numer"]->Fill( targetMuons.at(0).pt() ); - hists_["Ref_SS_pt2_numer"]->Fill( targetMuons.at(1).pt() ); - hists_["Ref_SS_eta1_numer"]->Fill( targetMuons.at(0).eta() ); - hists_["Ref_SS_eta2_numer"]->Fill( targetMuons.at(1).eta() ); + hists_["Ref_SS_pt1_numer"]->Fill( targetMuons[0].pt() ); + hists_["Ref_SS_pt2_numer"]->Fill( targetMuons[1].pt() ); + hists_["Ref_SS_eta1_numer"]->Fill( targetMuons[0].eta() ); + hists_["Ref_SS_eta2_numer"]->Fill( targetMuons[1].eta() ); } } } From 9a1216f1d098fcbc2471a686d62fdb4f64a8c51f Mon Sep 17 00:00:00 2001 From: sscruz Date: Tue, 26 Sep 2017 19:02:01 +0200 Subject: [PATCH 4/4] Addressing Davids comments --- DQMOffline/Trigger/src/HLTMuonMatchAndPlot.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DQMOffline/Trigger/src/HLTMuonMatchAndPlot.cc b/DQMOffline/Trigger/src/HLTMuonMatchAndPlot.cc index 625ad57f4216f..f6b42653d5ff4 100644 --- a/DQMOffline/Trigger/src/HLTMuonMatchAndPlot.cc +++ b/DQMOffline/Trigger/src/HLTMuonMatchAndPlot.cc @@ -502,7 +502,7 @@ void HLTMuonMatchAndPlot::analyze(Handle & allMuons, bool passTriggerSS = false; if (ssPath){ for ( unsigned int hltIndex = 0; hltIndex < numTriggers; ++hltIndex){ - passTriggerSS = passTriggerSS || (trigNames.triggerName(hltIndex).find(nonSameSignPath) != std::string::npos && triggerResults->wasrun(hltIndex) && triggerResults->accept(hltIndex)); + passTriggerSS = passTriggerSS || (trigNames.triggerName(hltIndex).substr(0,nonSameSignPath.size()) == nonSameSignPath && triggerResults->wasrun(hltIndex) && triggerResults->accept(hltIndex)); } if (ssPath && targetMuons.size() > 1 && passTriggerSS){