Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "PlotKit"]
path = PlotKit
url = git@github.com:kandrosov/PlotKit.git
url = git@github.com:cms-flaf/PlotKit.git
2 changes: 1 addition & 1 deletion PlotKit
9 changes: 7 additions & 2 deletions docs/ci/integration-pipeline.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,12 @@ Repos with the trigger enabled: HH_bbtautau, HH_bbWW, H_mumu, FLAF, Corrections,
```text
@cms-flaf-bot please test
- https://github.com/cms-flaf/FLAF/pull/272
- https://github.com/cms-flaf/PlotKit/pull/2
```
Shorthands include `- <repo>_version=PR_<n>`, a `…/pull/<n>` URL, a `…/tree/<branch>` URL, and
`- gitlab_branch=<branch>` to run a non-default `flaf_integration` branch.
`- gitlab_branch=<branch>` to run a non-default `flaf_integration` branch. `PlotKit_version`
pins the `FLAF/PlotKit` sub-sub-module, which is switched after `FLAF` (so it overrides whatever
commit the requested `FLAF` pins).

## `integration_cfg.yaml`

Expand Down Expand Up @@ -73,7 +76,9 @@ The shared trigger logic distinguishes:

- **root packages** — repos with an `_active` variable (the analyses: HH_bbtautau, HH_bbWW,
H_mumu);
- **packages** — repos with a `_version` but no `_active` (FLAF, Corrections, StatInference).
- **packages** — repos with a `_version` but no `_active` (FLAF, PlotKit, Corrections,
StatInference). `PlotKit` is a sub-sub-module (`FLAF/PlotKit`); the build switches it after
`FLAF`.

Both may trigger the pipeline; the distinction matters only when editing the trigger logic.

Expand Down
2 changes: 1 addition & 1 deletion docs/concepts/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ tools with it. For example, HH→bb̄ττ looks like this:
```text
HH_bbtautau/ ← the analysis repository (you clone this)
├── FLAF/ ← shared framework (submodule)
│ ├── PlotKit/ ← plotting helpers (submodule of FLAF)
│ ├── PlotKit/ ← plotting toolkit: matplotlib/mplhep (+ROOT/cmsstyle); submodule
│ └── RunKit/ ← workflow utilities (vendored directory, not a submodule)
├── Corrections/ ← shared corrections (submodule)
├── StatInference/ ← shared stat tooling (submodule; HH analyses only)
Expand Down
5 changes: 4 additions & 1 deletion docs/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,10 @@ Framework and CMS-computing vocabulary, in plain terms. For the quick on-ramp ve
testing set; production uses the full model. Defined in `phys_models.yaml`.

**PlotKit**
: FLAF's plotting-helpers submodule.
: FLAF's plotting toolkit (a submodule of FLAF, [cms-flaf/PlotKit](https://github.com/cms-flaf/PlotKit)).
Renders the stacked CMS plots with **matplotlib + mplhep** by default (no ROOT required) and can
optionally render through **ROOT + cmsstyle**. It reads the analysis `config/plot/*.yaml` files and
can also run standalone (`python -m PlotKit.cli`).

**Process**
: A physics object built from one or more datasets (e.g. "TT", "DY", "signal") — what you plot and
Expand Down
11 changes: 10 additions & 1 deletion docs/reference/tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,19 @@ consume.
- **Parameter:** `--producer-to-aggregate`.

### `HistPlotTask`
Produces the final **plots**. **Branches over variables** (one branch per variable).
Produces the final **plots** via the [PlotKit](https://github.com/cms-flaf/PlotKit) submodule
(matplotlib + mplhep by default; optional ROOT + cmsstyle). **Branches over variables** (one branch
per variable).

- **Parameter:** `--variables` (string; restrict which variables).

Plot styling comes from the analysis `config/plot/*.yaml` files (`cms_stacked.yaml`,
`histograms.yaml`, `<era>.yaml`) — unchanged from the legacy renderer. Signal overlays are scaled by
`signal_plot_scale` in `global.yaml`: a fixed factor (e.g. `100`) **or** `bkg` to normalise each
signal's integral to the summed background (shape comparison; the legend then reads
`… (norm. to bkg)`). PlotKit can also render outside FLAF; see its README for the standalone
`python -m PlotKit.cli` entry point.

## Statistical-inference tasks

The limit/fit tasks (e.g. `PlotResonantLimits`, `PlotPullsAndImpacts`) come from the
Expand Down
1 change: 1 addition & 0 deletions run_tools/mk_flaf_env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ install() {
run_cmd pip install bayesian-optimization
run_cmd pip install yamllint
run_cmd pip install black
run_cmd pip install cmsstyle # optional PlotKit backend (ROOT/cmsstyle); mplhep comes from LCG
}

install_gh_cli() {
Expand Down
Loading