Skip to content

Conversation

@JunwonTomOh
Copy link

@JunwonTomOh JunwonTomOh commented Nov 18, 2025

PR description:

This PR includes the following updates:

  1. Synchronized the L1 MET code with CMSSW PR#48308.
  2. Applied small modification to the L1 MET phi calculation to support the ongoing development in correlator-common.
  3. Since CMSSW 15_1_X uses `cms-data/V00-08-00, which does not include the L1 MET JSON files introduced in V00-09-00. These JSON files are temporarily added in this branch for testing purpose.

PR validation:

  • All new algorithms have been tested using the FastPUPPI
  • Used /eos/cms/store/cmst3/group/l1tr/FastPUPPI/15_1_X/fpinputs_140X/v1/TTToSemileptonic_TuneCP5_14TeV-powheg-pythia8/TTToSemileptonic_PU200_151Xv0/250919_144036/0000/
  • Applied code-checks and code-format
image

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR synchronizes the L1 MET (Missing Transverse Energy) code with CMSSW main branch (PR#48308), introduces a modified phi calculation for HLS testbench compatibility, and temporarily adds JSON configuration files for L1 MET algorithms. The changes include a complete refactor of the MET calculation to use a new polynomial-based emulator and the introduction of the JUMP (Jet Uncertainty-aware MET Prediction) algorithm.

Key Changes:

  • Refactored L1 MET calculation from custom HLS implementation to a polynomial-based pt/phi to px/py conversion using 2nd-order interpolation
  • Added new L1JUMPProducer plugin implementing the JUMP algorithm for jet energy resolution-aware MET correction
  • Temporarily included JSON data files (l1met_ptphi2pxpy_poly2_v1.json and l1jump_jer_v1.json) until they are available in cms-data V00-09-00

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 12 comments.

Show a summary per file
File Description
L1Trigger/Phase2L1ParticleFlow/python/l1tMETPFProducer_cfi.py Added Poly2File parameter to configure the polynomial coefficients file path
L1Trigger/Phase2L1ParticleFlow/python/l1tJUMPProducer_cfi.py New configuration file for JUMP producer with jet and MET input tags and selection criteria
L1Trigger/Phase2L1ParticleFlow/plugins/L1MetPfProducer.cc Replaced custom phi calculation with calls to new emulator using polynomial interpolation; removed old Project/PhiFromXY functions
L1Trigger/Phase2L1ParticleFlow/plugins/L1JUMPProducer.cc New producer implementing JUMP algorithm that applies jet energy resolution corrections to MET
L1Trigger/Phase2L1ParticleFlow/interface/jetmet/L1PFMetEmulator.h New header defining polynomial-based MET emulator with pt/phi to px/py conversion and JSON parameter loading
L1Trigger/Phase2L1ParticleFlow/interface/jetmet/L1PFJUMPEmulator.h New header implementing JUMP algorithm emulator with jet energy resolution parameterization
L1Trigger/Phase2L1ParticleFlow/data/met/l1met_ptphi2pxpy_poly2_v1.json Polynomial coefficients for cos/sin interpolation across 16 phi bins
L1Trigger/Phase2L1ParticleFlow/data/met/l1jump_jer_v1.json Jet energy resolution parameters for JUMP algorithm across eta bins

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +28 to +37
class L1JUMPProducer : public edm::global::EDProducer<> {
/*
Producer for the JUMP Algorithm
JUMP: Jet Uncertainty-aware MET Prediction
- Approximate L1 Jet energy resolution by pT, eta value
- Apply the estimated resolution to MET
*/
public:
explicit L1JUMPProducer(const edm::ParameterSet&);
~L1JUMPProducer() override;
Copy link

Copilot AI Dec 15, 2025

Choose a reason for hiding this comment

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

The L1JUMPProducer class is missing a fillDescriptions static method declaration and implementation. This is a standard CMSSW pattern used by other producers in this directory to provide parameter descriptions for the framework. Add a static fillDescriptions method that describes the RawMET, L1PFJets, MinJetpT, MaxJetEta, and JERFile parameters.

Copilot uses AI. Check for mistakes.
Copy link
Author

Choose a reason for hiding this comment

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

@thesps A cfi file with the full parameter definitions already exists for this producer. Is fillDescriptions still required here, or is this mainly for consistency with other producers in this directory?

Choose a reason for hiding this comment

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

Yes, the fillDescriptions is required for the integration in master.

Copy link
Author

Choose a reason for hiding this comment

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

 Thanks for the comment. I've just updated it!

Copy link

@thesps thesps left a comment

Choose a reason for hiding this comment

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

This PR looks good to me, since it mostly just brings this fork up to date with central CMSSW. It's in good agreement with the corresponding correlator-common MR as well

Copy link

@thesps thesps left a comment

Choose a reason for hiding this comment

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

@JunwonTomOh could you address the Copilot suggestions?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants