원클릭으로
exclusion-contour
Generate BSM exclusion and discovery contour plots in 2D parameter planes — observed, expected, Brazil bands
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Generate BSM exclusion and discovery contour plots in 2D parameter planes — observed, expected, Brazil bands
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Numerically evaluate a FormCalc-reduced one-loop amplitude with LoopTools 2.16 (Passarino-Veltman integrals via the Wolfram/LoopTools MathLink) and emit a scattering/v1 JSON (σ_SI, σ_SD) for direct detection. Unblocks the 2HDM+a loop-only DD path. Self-heals via _shared/installs/looptools preflight.
Reduce a FeynArts amplitude list with FormCalc 9.10. Produces amp_reduced.m and amp_reduced.meta.json sidecar conforming to amp_reduced.meta/v1. Self-heals via _shared/installs/formcalc preflight.
Generate Feynman diagrams and amplitudes using FeynArts 3.11. Supports built-in models (SM, SMQCD, THDM, MSSM) and SARAH-generated models. Outputs FeynAmpList.m, diagrams.pdf, topologies.json, and metadata sidecar.
Compute direct-detection likelihoods and 90%-CL exclusion verdicts using DDCalc 2.2.0. Leaf consumer of scattering/v1 JSON from /micromegas or /formcalc.
MadDM — dark matter relic density, direct detection cross-sections, indirect detection rates, parameter scans with experimental limit comparison
Run HiggsBounds-5 + HiggsSignals-2 constraint checks on a model SLHA file. Computes hb_allowed (per-channel AND), hs_consistent (Δχ² < 6.18), p-values, and per-channel CSV. Supports single-point and scan-directory modes.
| name | exclusion-contour |
| description | Generate BSM exclusion and discovery contour plots in 2D parameter planes — observed, expected, Brazil bands |
Generate exclusion and discovery reach contour plots in two-dimensional BSM parameter planes. The bread and butter of phenomenology papers.
Define the parameter plane:
Prepare the exclusion data:
From a parameter scan: Grid of (x, y) points with a test statistic or signal strength mu at each point.
# Interpolate the grid to find the contour where mu = 1 (exclusion boundary)
from scipy.interpolate import griddata
from matplotlib.contour import QuadContourSet
From published limits: Digitized contour coordinates from HEPData or manual extraction.
Draw the contours:
Observed limit (solid line):
ax.contour(X, Y, Z, levels=[1.0], colors="black", linewidths=2)
ax.contourf(X, Y, Z, levels=[1.0, Z.max()], colors=["gray"], alpha=0.3)
Expected limit (dashed line):
ax.contour(X, Y, Z_exp, levels=[1.0], colors="black",
linewidths=2, linestyles="dashed")
Brazil bands (expected +/-1sigma, +/-2sigma):
ax.contourf(X, Y, Z_p2s, levels=[1.0, Z.max()], colors=["#FFF200"], alpha=0.5) # yellow: 2sigma
ax.contourf(X, Y, Z_p1s, levels=[1.0, Z.max()], colors=["#00CC00"], alpha=0.5) # green: 1sigma
Kinematic boundary: Diagonal line where decay is forbidden.
ax.plot([x_min, x_max], [x_min, x_max], "k--", alpha=0.5, label="Kinematic boundary")
Overlay multiple experiments/analyses:
ax.contourf() with distinct colors per experimentAnnotations:
Output:
Standard color scheme for multi-experiment overlays:
For single-experiment plots:
Input: "Plot the exclusion contour in the (m_stop, m_neutralino) plane for direct stop pair production at the 13 TeV LHC with 139 fb^-1. Show observed, expected, and +/-1,2 sigma bands. Add the kinematic boundary line where m_stop = m_top + m_neutralino."
Output: Complete Python script generating a ATLAS/CMS-style exclusion plot with Brazil bands, kinematic boundary, and proper annotations.
Reference:
docs/design-system.md— the canonical source of truth for all visual rules.
Palette: Slate Precision (styles/hephaestus-slate.mplstyle). Load with:
from styles.hep_ph_style import set_hep_context
palette = set_hep_context("slate")
Key rules:
#1a1a1a (black), 1.2pt solid — highest-contrast element on the plot.#0369a1 (steel blue), 1.0pt solid.#dc2626 (muted red) at alpha 0.06-0.10. The boundary line does the work, not the fill.Mandatory overlap check — do not skip this step:
from styles.hep_ph_style import check_overlaps
issues = check_overlaps(fig)
if issues:
print(f"WARNING: {len(issues)} text overlaps detected:")
for iss in issues:
print(f" '{iss['text_a']}' vs '{iss['text_b']}' — {iss['overlap_pt']}pt")
If check_overlaps returns any issues, you must fix them before saving. Common fixes: reposition labels, reduce font size, abbreviate text, or increase figure size. Re-run the check after fixing until it returns an empty list.