Move to CMSSW_9_4_9, MET fix, DeepAK8 updates, etc.

Kevin Pedro requested to merge github/fork/kpedro88/CMSSW949 into Run2_2017


  • JER and puppi speedups now included in base release, removed branches from setup

Bug fixes:

  • reject all non-PF jets (in case new JECs move jets w/ pT < 170 above threshold)
  • fix duplicated class dictionary for vector<int>

MET fix & other improvements:

  • 2017F EE PF threshold MET fix implemented as option in MET tool, branch included in
  • The jet collection produced by the fix (excluding jets w/ pT < 75 GeV, 2.65 < |eta| < 3.139) can also be used to compute MHT
  • MET fix applied by default for all 2017 MC and data, "orig" variables for MET, METPhi, MHT, MHTPhi, DeltaPhi1/2/3/4 are stored (and also for the corresponding Zinv clean variables)
  • disabled JEC reapplication in the MET tool (we already do it)
  • disabled reclustering when recomputing MET from candidates (we already did this previously - it was included in the 8_0_X version of the MET tool, but then lost or reverted in the 9_4_X version. I fixed it.)
  • disabled unnecessary MET significance computations (not needed when we rerun the tool to get the "orig" values)
  • sped up MET significance computation by ~40%


  • moved to mxnet 1.2.1.mod1 w/ thread-local engine patch
  • disable LPC cvmfs usage (not broadly available on the grid, library out of date)
  • add decorrelated version of tagger and associated discriminators

Some notes on DeepAK8 performance:

  • newest mxnet version is ~10-15% faster
  • When the tagger is disabled, we get ~11 events/sec.
  • When the tagger is enabled with the current configuration (run twice, once for full and once for decorrelated), we get ~6 events/sec. In other words, we spend ~40% of our CPU time per event just evaluating DeepAK8.
  • According to a presentation in last week's reco meeting, DeepAK8 is only somewhat slower than DeepDoubleB (which we currently don't include). It's actually faster than DeepFlavour, because there are more AK4 jets than AK8 jets.
  • We're currently not running DeepAK8 or DeepFlavour for the Zinv clean jets, so look forward to an even slower TreeMaker once somebody decides they really want to use these variables for an analysis. (Maybe we can run just the decorrelated DeepAK8 for Zinv, since stealth stop doesn't use Zinv variables.)

Merge request reports