Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add offline DQM for MET plus track EXO triggers #19490

Merged
merged 8 commits into from
Jul 28, 2017

Conversation

bpfrancis
Copy link
Contributor

Creates offline DQM monitoring for the MET+Track triggers for the 2017 pp collisions. These paths are owned by Exotica and are in the MET primary dataset.

c.f. TSG approval presentation: https://indico.cern.ch/event/646747/contributions/2626978/attachments/1476569/2287752/bfrancis_OSU_TSG.pdf

and JIRA ticket: https://its.cern.ch/jira/browse/CMSHLT-1381

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @bpf6qc (Brian Francis) for master.

It involves the following packages:

DQMOffline/Trigger

@vazzolini, @kmaeshima, @dmitrijus, @cmsbuild, @vanbesien, @davidlange6 can you please review it and eventually sign? Thanks.
@battibass, @mtosi, @jhgoh, @calderona, @HuguesBrun, @trocino, @rociovilar this is something you requested to watch as well.
@davidlange6 you are the release manager for this.

cms-bot commands are listed here

@mtosi
Copy link
Contributor

mtosi commented Jul 1, 2017

why couldn't you make use of the already available code ?
if related to the matching you are applying between the online and offline muon ?
couldn't you add it to the available METMonitor or TopMonitor ?

then, try to squeeze as much as possible the # bins
and please, quantify the total # bins added by your PR

, hltTrk50FilterTag_ ( iConfig.getParameter<edm::InputTag>("isoTrkFilter") )
, met_variable_binning_ ( iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("metBinning") )
, muonPt_variable_binning_ ( iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("ptBinning") )
, met_binning_ ( getHistoPSet (iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("metPSet") ) )
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you really need it ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Which of these are you referring to? If you mean this variable binning histograms, we don't particularly need them; it seemed to be a common inclusion from other modules.

, jetToken_ ( consumes<reco::PFJetCollection> (iConfig.getParameter<edm::InputTag>("jets") ) )
, vtxToken_ ( consumes<reco::VertexCollection> (iConfig.getParameter<edm::InputTag>("vertices") ) )
, theTrigSummary_ ( consumes<trigger::TriggerEvent> (iConfig.getParameter<edm::InputTag>("trigSummary") ) )
, hltTrk50FilterTag_ ( iConfig.getParameter<edm::InputTag>("isoTrkFilter") )
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you might want to have such parameter slightly more generic ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will be changed.

, muonPt_variable_binning_ ( iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("ptBinning") )
, met_binning_ ( getHistoPSet (iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("metPSet") ) )
, ls_binning_ ( getHistoLSPSet (iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("lsPSet") ) )
, pt_binning_ ( getHistoPSet (iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("ptPSet") ) )
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you need it ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same question as above: if you mean the variable binning, no.

bookME(ibooker, mTmuonMetME_, histname, histtitle, pt_binning_.nbins, pt_binning_.xmin, pt_binning_.xmax);
setMETitle(mTmuonMetME_, "mT(Muon, CaloMET) [GeV]", "events / [GeV]");

histname = "muonPtVsLS"; histtitle = "Muon PT vs LS";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you have already the MET vs LS, are you applying a different selection for this ?
if not, please drop

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was requested by an analyzer, but you're right there is no additional selection: I'll remove it.

histname = "muonEta"; histtitle = "Muon eta";
bookME(ibooker, muonEtaME_, histname, histtitle, eta_binning_.nbins, eta_binning_.xmin, eta_binning_.xmax);
setMETitle(muonEtaME_, "Muon #eta", "events / 0.2");

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you are missing the eta-phi plot

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will add it.

std::vector<reco::Muon> muons;
muons.clear();
for(auto const & m : *muonHandle) {
bool pass = m.isGlobalMuon() &&
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

couldn't you make use of some of the functions provided by MUO POG ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes; this is just reco::Muon::isTight and will be changed. Also I realize here that I haven't included muon isolation, which we want to require.

@mtosi mtosi mentioned this pull request Jul 1, 2017
@mtosi
Copy link
Contributor

mtosi commented Jul 1, 2017 via email

@mtosi
Copy link
Contributor

mtosi commented Jul 1, 2017 via email

@bpfrancis
Copy link
Contributor Author

Okay, I understand for the plot binnings. We always report our efficiencies with log-x (variable) binning so those binnings are preferred anyway.

To answer your question about why this is its own module, the METMonitor would need very significant additions that the MET paths would never use, and the TOPMonitor conversely monitors much more than we require as well as not having the machinery to measure a multi-leg efficiency with online requirements and online/offline matching. In the end I felt it more appropriate to write this than to disturb those two so severely.

@cmsbuild
Copy link
Contributor

cmsbuild commented Jul 1, 2017

Pull request #19490 was updated. @vazzolini, @kmaeshima, @dmitrijus, @cmsbuild, @vanbesien, @davidlange6 can you please check and sign again.

@bpfrancis
Copy link
Contributor Author

I've tried to address all the issues mentioned. I also have included a requirement for tight PF-based muon isolation, which was mistakenly left out before.

Total bins: 37,440 per path --> 74,880 total.
Of these about 40% are the number of bins in the versus-LS plots (2 paths * 2 types (met, muon) * 3 (num/den/eff) * 2500 bins each), where 2500 was chosen just because other modules seem to use that number of bins.

@fwyzard
Copy link
Contributor

fwyzard commented Jul 3, 2017

@cmsbuild , please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Jul 3, 2017

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-any-integration/21072/console Started: 2017/07/03 10:58

@fwyzard
Copy link
Contributor

fwyzard commented Jul 3, 2017

tracked by #19142

@cmsbuild
Copy link
Contributor

cmsbuild commented Jul 3, 2017

@cmsbuild
Copy link
Contributor

cmsbuild commented Jul 3, 2017

Comparison job queued.

@cmsbuild
Copy link
Contributor

cmsbuild commented Jul 13, 2017

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-any-integration/21424/console Started: 2017/07/13 10:50

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next master IBs after it passes the integration tests. This pull request requires discussion in the ORP meeting before it's merged. @davidlange6, @smuzaffar

@fwyzard
Copy link
Contributor

fwyzard commented Jul 13, 2017

Please do not rebase this.
As soon as @dmitrijus (done) and @davidlange6 let me know that the PR is fine (apart from the conflict) I will fix it in a separate PR.

@cmsbuild
Copy link
Contributor

-1
@bpf6qc This pull request cannot be automatically merged, could you please rebase it?

You can see the log for git cms-merge-topic here:
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-19490/21424/git-merge-result

@fwyzard
Copy link
Contributor

fwyzard commented Jul 23, 2017

@davidlange6, can you comment on this PR ?

iEvent.getByToken(jetToken_, jetsHandle);
if(jetsHandle->size() < njets_) return;
std::vector<reco::PFJet> jets;
jets.clear();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hi @bpf6qc - this clear is not needed.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed.

if(jetSelection_(j)) jets.push_back(j);
}
if(jets.size() < njets_) return;
if(njets_ > 0 && jets.size() > 0 && fabs(jets[0].eta()) > leadJetEtaCut_) return;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please use jets.empty()

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you mean jets.clear() then I agree, I hadn't deallocated them before.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, really jets.empty(): not empty() is more efficient than size() > 0

metVsHltMetClean_.numerator->Fill(hltMetClean.pt(), met);

// Filling track leg histograms (denominator)
double leadMuonPt = muons.size() ? muons[0].pt() : -1.0;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

muons.empty()

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above, if you mean muons.clear() then okay, otherwise empty() just returns a bool.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not muons.empty() ? ... : ... is equivalent to and more efficient than muons.size() ? ... : ...

@fwyzard
Copy link
Contributor

fwyzard commented Jul 24, 2017

@bpf6qc can you address the comments from David ?

@fwyzard
Copy link
Contributor

fwyzard commented Jul 25, 2017

@bpf6qc can you push an update to this PR ?

@cmsbuild
Copy link
Contributor

Pull request #19490 was updated. @vazzolini, @kmaeshima, @dmitrijus, @cmsbuild, @vanbesien, @davidlange6 can you please check and sign again.

fwyzard added a commit to fwyzard/cmssw that referenced this pull request Jul 25, 2017
Fixed conflicts:
	DQMOffline/Trigger/python/ExoticaMonitoring_Client_cff.py
	DQMOffline/Trigger/python/ExoticaMonitoring_cff.py
@fwyzard
Copy link
Contributor

fwyzard commented Jul 26, 2017

I have resolved the conflicts in #19916.
Please DO NOT TOUCH this PR/branch, and leave it open.

@cmsbuild cmsbuild merged commit 38afbc3 into cms-sw:master Jul 28, 2017
fwyzard added a commit to fwyzard/cmssw that referenced this pull request Jul 28, 2017
This PR includes a backport of the following PRs:
  - cms-sw#18172
  - cms-sw#18950
  - cms-sw#18959
  - cms-sw#18968
  - cms-sw#18971
  - cms-sw#19023
  - cms-sw#19046
  - cms-sw#19078
  - cms-sw#19119
  - cms-sw#19178
  - cms-sw#19290
  - cms-sw#19293
  - cms-sw#19294
  - cms-sw#19490
  - cms-sw#19499
  - cms-sw#19577
  - cms-sw#19585
  - cms-sw#19596
  - cms-sw#19599
  - cms-sw#19627
  - cms-sw#19689
  - cms-sw#19694
  - cms-sw#19703
  - cms-sw#19781
  - cms-sw#19794

plus the older ones, contained in DQMOffline/Trigger and HLTriggerOffline.

It synchronises with CMSSW_9_3_X
  - DQMServices/ClientConfig
  - DQMOffline/Configuration
  - DQMOffline/Trigger
  - HLTriggerOffline/Btag
  - HLTriggerOffline/Higgs
  - HLTriggerOffline/SUSYBSM
  - HLTriggerOffline/Tau
  - HLTriggerOffline/Top
fwyzard added a commit to fwyzard/cmssw that referenced this pull request Sep 3, 2017
This PR includes a backport of the following PRs:
  - cms-sw#18172
  - cms-sw#18950
  - cms-sw#18959
  - cms-sw#18968
  - cms-sw#18971
  - cms-sw#19023
  - cms-sw#19046
  - cms-sw#19078
  - cms-sw#19119
  - cms-sw#19178
  - cms-sw#19290
  - cms-sw#19293
  - cms-sw#19294
  - cms-sw#19490
  - cms-sw#19499
  - cms-sw#19577
  - cms-sw#19585
  - cms-sw#19596
  - cms-sw#19599
  - cms-sw#19627
  - cms-sw#19689
  - cms-sw#19694
  - cms-sw#19703
  - cms-sw#19781
  - cms-sw#19794

plus the older ones, contained in DQMOffline/Trigger and HLTriggerOffline.

It synchronises with CMSSW_9_3_X
  - DQMServices/ClientConfig
  - DQMOffline/Configuration
  - DQMOffline/Trigger
  - HLTriggerOffline/Btag
  - HLTriggerOffline/Higgs
  - HLTriggerOffline/SUSYBSM
  - HLTriggerOffline/Tau
  - HLTriggerOffline/Top
mtosi pushed a commit to mtosi/cmssw that referenced this pull request Oct 17, 2017
This PR includes a backport of the following PRs:
  - cms-sw#18172
  - cms-sw#18950
  - cms-sw#18959
  - cms-sw#18968
  - cms-sw#18971
  - cms-sw#19023
  - cms-sw#19046
  - cms-sw#19078
  - cms-sw#19119
  - cms-sw#19178
  - cms-sw#19290
  - cms-sw#19293
  - cms-sw#19294
  - cms-sw#19490
  - cms-sw#19499
  - cms-sw#19577
  - cms-sw#19585
  - cms-sw#19596
  - cms-sw#19599
  - cms-sw#19627
  - cms-sw#19689
  - cms-sw#19694
  - cms-sw#19703
  - cms-sw#19781
  - cms-sw#19794

plus the older ones, contained in DQMOffline/Trigger and HLTriggerOffline.

It synchronises with CMSSW_9_3_X
  - DQMServices/ClientConfig
  - DQMOffline/Configuration
  - DQMOffline/Trigger
  - HLTriggerOffline/Btag
  - HLTriggerOffline/Higgs
  - HLTriggerOffline/SUSYBSM
  - HLTriggerOffline/Tau
  - HLTriggerOffline/Top
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants