Flesh out Gen/ee: WHIZARD mumuH card + Pythia8 (k4Gen) shower step - #2
Open
kjvbrt wants to merge 6 commits into
Open
Flesh out Gen/ee: WHIZARD mumuH card + Pythia8 (k4Gen) shower step#2kjvbrt wants to merge 6 commits into
kjvbrt wants to merge 6 commits into
Conversation
Adapts the FCC-config golden card (winter2023 branch) for e+e- -> mu mu H, stripping its internal legacy-PYTHIA6 shower/decay to keep the two-step WHIZARD (LHE) -> Pythia8 (k4Gen Gaudi, H -> b b) chain explicit for students, and adds the runnable mumuH.sin, mumuH_Hbb.cmd, and pythia_mumuH.py files alongside the README.
mumuH_Hbb.cmd now bases its Beams:/PartonLevel settings on FCC-config's actual LHE-reading card (p8_ee_default.cmd) instead of an unrelated production card, turning off Pythia8's own ISR/FSR since WHIZARD already applies it. Vertex/time smearing moves to the Gaudi GaussSmearVertex tool in pythia_mumuH.py to avoid double-smearing against Pythia8's own Beams:allowVertexSpread. Also documents the golden card's PYTHIA6 settings (Higgs mass/width, fragmentation tune, Bose-Einstein correlations, long-lived particle stability) that still need porting, as open TODOs.
Ran WHIZARD + Pythia8 (k4Gen) against the real Key4hep stack: WHIZARD step works and gives a cross section matching the known sigma(ee->ZH)*BR(Z->mumu) value, but the Pythia8 step crashes inside Pythia8's own resonanceShowers/iBotCopyId machinery when decaying and showering the bare Higgs resonance from the LHE file. Documents the crash, backtrace, and ruled-out fixes as a blocking Open TODO. Also recommends VSCodium over VSCode in the top-level README, and adds Open TODOs for background-sample generation, a jupytext-based Jupyter export, and a custom TextMate grammar for WHIZARD/Pythia8 syntax highlighting.
The Step 2 (Pythia8) crash was caused by WHIZARD's ?keep_beams = true, which FCC-config's own (unheeded) maintainer comment on a sibling card already warns about. Fixed by no longer setting ?keep_beams at all in mumuH.sin, relying on its default (false). Verified with a standalone, zero-Gaudi Pythia8 reproducer and a full 1000-event k4run pipeline run. Also corrects PartonLevel:FSR in mumuH_Hbb.cmd: it must stay on (Pythia8 default) since it's what showers the H -> b b decay products before hadronization, not just a source of double-counted radiation as previously assumed - verified by dumping the Pythia8 event record with it on and off. PartonLevel:ISR stays off, confirmed correct the same way. Also removes explicit defaults (?keep_beams, ?keep_remnants) from mumuH.sin and documents mH, ISR/FSR, and the ISR-photon-visibility caveat in Gen/ee/README.md.
A small fraction of events (~1 in a few thousand) hit an unrecoverable Pythia8-level failure that retrying doesn't fix. Without raising Gaudi's default per-algorithm ErrorMax = 1, a single such event aborts the entire run - only shows up at scale (a 1000-event test never hits it), confirmed by generating and processing 10,000 events. ErrorMax = 20 lets a handful be skipped instead, verified with a clean 10,000/10,000-event run.
kjvbrt
marked this pull request as ready for review
August 21, 2026 11:45
For each PYTHIA6 setting the golden card had enabled, checked whether Pythia8's own default already covers it rather than porting the tuned numeric values (risky - the two codes don't always define equivalent- sounding parameters identically). Most items needed no change: Bowler fragmentation for b/c quarks is already Pythia8's default, and Higgs mass/width already closely match. Bose-Einstein correlations were checked and deliberately left off - they don't affect the mu mu recoil mass and only marginally affect the H -> b b dijet mass, not worth the added complexity here. The long-lived-particle setting went through a wrong attempt (mapped to a proper-lifetime cutoff) before checking the actual PYTHIA 6.4 manual, which shows MSTJ(22)=4 is a geometric decay-vertex-position cutoff instead - Pythia8's default already matches its practical outcome, confirmed on real generated events (K_S0/Lambda decay behavior), so no setting is needed there either.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
wzp6_ee_mumuH_Hbb_ecm240.sin,winter2023) for e+e- -> mu mu H, keeping its physics but splitting out an explicit WHIZARD (LHE) -> Pythia8 (k4Gen Gaudi, H -> b b) two-step chain for students, instead of the golden card's internal legacy-PYTHIA6 shower.mumuH.sin,mumuH_Hbb.cmd,pythia_mumuH.pyalongsideGen/ee/README.md.Test plan
whizard mumuH.sinand confirmmumuH.lheis producedk4run pythia_mumuH.pyand confirmmumuH_Hbb.rootis produced with a saneMCParticlescollection