Skip to content

Implement total phase space for unfolding#661

Open
davidwalter2 wants to merge 41 commits intoWMass:mainfrom
davidwalter2:260216_totalPhaseSpace
Open

Implement total phase space for unfolding#661
davidwalter2 wants to merge 41 commits intoWMass:mainfrom
davidwalter2:260216_totalPhaseSpace

Conversation

@davidwalter2
Copy link
Copy Markdown
Collaborator

@davidwalter2 davidwalter2 commented Feb 20, 2026

Total phase space extrapolation (main feature)

  • Add masked channel covering the full generator-level phase space (removing the fiducial muon pt/η selection on the gen axis)
  • Acceptance corrections are applied via a dedicated acceptance axis in the histograms; the masked channel integrates over it
  • Supported for both W and Z unfolding; the rapidity axis includes flow bins for the total phase space measurement
  • Unfolding plotting scripts moved to a dedicated area under scripts/plotting/analysisTools/unfolding
  • Disable bin by bin inflation factor always when unfolding

Nonprompt background (fakes)

  • Add OnesSelector histselection to allow fitting sideband regions simultaneous
  • ABCD mt/relIso axes now use np.inf as overflow edge
  • Added script scripts/rabbit/regen_smoothing_params.py to save fake parameters Chebyshev basis directly

Other

  • support MiNNLO scale variation for FO uncertainty
  • rename theory_helpers ->helicity_smoothing_helpers to avoid confusion with corr_helpers
  • Update rabbit submodule

@davidwalter2 davidwalter2 marked this pull request as ready for review March 31, 2026 02:20
davidwalter2 and others added 8 commits April 6, 2026 10:57
The last bin of each axis now explicitly captures [edge, ∞) so rabbit
can include it in the fit without relying on histogram overflow.

- binning.get_binning_fakes_mt/relIso: append np.inf as last edge
- binning.axis_relIsoCat: [0, 0.15, 0.3, inf], overflow=False
- mw histmaker axis_mtCat, axis_isoCat: overflow=False
- mz_wlike histmaker: replace large-number proxies (1000, 100) with np.inf
- histselections: cap regressor x_max at last finite mt edge

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- rebin_pt: recompute new_edges after trimming input when odd-edge branch fires
- systematics.add_syst_hist: fix mutable default tensor_axes=[] -> None
- generator_level_definitions: define postfsrPTV for wlike mode (was missing,
  causing RDF crash when unfolding aliases postfsrV_pt <- postfsrPTV)
- unfolding_tools.UnfolderZ: use self.unfolding_levels[0] explicitly instead of
  relying on loop-variable persistence for the fitresult reweighting block
- theory_fit_writer: raise ValueError (not silent None) when required ptV/absYV
  axes not found; avoid calling axis lookup twice in set_reference

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@davidwalter2
Copy link
Copy Markdown
Collaborator Author

davidwalter2 commented Apr 22, 2026

This one is ready for review/merge when the rabbit PR is merged WMass/rabbit#130 .

The CI results are unchanged as expected for this PR:
https://cmsmwbot.web.cern.ch/WMassAnalysis/PRValidation/PR661/2026_04_22/
compared to main:
https://cmsmwbot.web.cern.ch/WMassAnalysis/PRValidation/ReferenceRuns/2026_04_23_1e66f2b/

The ordering of plots has changed due to name changes in the new version of rabbit. The plot style has changed due to update of wums. AlphaS has changed due to another PR merged earlier this morning (could check ReferenceRun from tomorrow for better comparison).

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.

1 participant