Skip to content

ColliderBit: refactor LEP likelihoods#607

Open
ChrisJChang wants to merge 2 commits into
GambitBSM:masterfrom
ChrisJChang:claude/kind-lamport-a23ec7
Open

ColliderBit: refactor LEP likelihoods#607
ChrisJChang wants to merge 2 commits into
GambitBSM:masterfrom
ChrisJChang:claude/kind-lamport-a23ec7

Conversation

@ChrisJChang

Copy link
Copy Markdown
Collaborator

This PR pulls all of the LEP likelihoods into a couple functions, rather than as separate capabilities. This means that in the yaml file, you will simply provide the list of LEP analyses. It still prints them separately to the output file.

The gravitino one was separated because it required a different model dependency.

In theory, it should reduce compile time since it will not need to instantiate a bunch of macros for every different capability. The compile time speedups will not be noticeable unless combined with the other Core PR to link modules (because it will speed up the ColliderBit registry compilation).

Setting @Pengxuan-Zhu-Phys as reviewer since it is ColliderBit code, and also @anderkve because it is something he has mentioned wanting to do before.

claude and others added 2 commits June 15, 2026 15:40
The LEP rollcall previously declared ~147 separate capabilities via
QUICK_FUNCTION macros: ~130 internal cross-section capabilities and 17
individual per-analysis likelihoods, each of which had to be listed
separately in the yaml ObsLikes blocks.

This replaces all of those (except the model-restricted L3 gravitino
search) with a single function, calc_LEP_LogLikes, providing two
capabilities:

  - LEP_LogLikes (map_str_dbl): the per-analysis breakdown of the LEP
    slepton and gaugino log-likelihoods, and
  - LEP_Combined_LogLike (double): their sum, for use as a single yaml
    LogLike entry.

The required LEP production cross sections are now computed internally via
the existing get_sigma_ee_* helpers rather than being exposed as separate
capabilities. The per-analysis likelihood logic is preserved verbatim in
plain helper functions. The set of analyses entering the combined
likelihood is configurable via the "analyses" run option, defaulting to
the standard non-overlapping set.

This mirrors the existing LHC_Combined_LogLike / LHC_LogLike_per_analysis
pattern, simplifies the LEP yaml entries to a single list, and greatly
reduces the number of module-function template instantiations (and hence
ColliderBit compile time).

The yaml files (CMSSM, NUHM1, NUHM2, MSSM7, MSSM9, ColliderBit_CMSSM) are
updated to use the new capabilities, with the "analyses" option set where
a non-default subset was previously used.

https://claude.ai/code/session_01625839aiHy9p3NVh6DrjDG
@Pengxuan-Zhu-Phys

Copy link
Copy Markdown

I checked the update against the old code and it holds up:

  • Default analyses set in calc_LEP_LogLikes exactly matches the old 12-analysis standard yaml list.
  • Combined log-like is just the sum of the per-analysis values — numerically identical to the old per-capability sum. Good call making LEP_LogLikes an Observable so it isn't double-counted.
  • No stale references to the removed capabilities anywhere in the repo; the 6 yaml updates are consistent.

A couple of things worth confirming (non-blocking):

  1. Model scope widened. The slepton, L3_Neutralino_*, and OPAL_Neutralino_Hadronic analyses were previously restricted to (MSSM30atQ, MSSM30atMGUT, NUHM2); the combined function now allows all five models including MSSM63*_mG.
  2. Output format change. Per-analysis values now live under map keys in LEP_LogLikes rather than individual *_Conservative_LLike columns. Might be worth a note in the changelog.

I didn't compile this locally, so it'd be good to let CI confirm the ColliderBit build.

@Pengxuan-Zhu-Phys Pengxuan-Zhu-Phys left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I checked the update against the old code and it holds up

@ahye

ahye commented Jun 20, 2026

Copy link
Copy Markdown
Member

Regarding this that @Pengxuan-Zhu-Phys noticed:

A couple of things worth confirming (non-blocking):

1. **Model scope widened.** The slepton, `L3_Neutralino_*`, and `OPAL_Neutralino_Hadronic` analyses were previously restricted to `(MSSM30atQ, MSSM30atMGUT, NUHM2)`; the combined function now allows all five models including `MSSM63*_mG`.

I don't think the assumptions in the cross section calculations apply for MSSM63 because of the appearance of for example sleptons with multiple flavour components and this is the reason this capability was previously restricted to MSSM30. This is probably not a big deal since the effect should in any case be small, but if it is possible without too much work to restrict to the MSSM30 that would be better.

Later I am hoping to have more generally applicable cross sections that we can take from smoking (and then we don't need these internal cross section routines at all).

@Pengxuan-Zhu-Phys Pengxuan-Zhu-Phys self-requested a review July 6, 2026 12:55
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.

4 participants