Skip to content

user_custom.yaml

config/user_custom.yaml holds your personal, uncommitted settings — where your outputs go, which physics model to use, and a handful of options. It is loaded on top of the merged configuration, so it overrides the defaults for your runs without changing anything for anyone else. It is git-ignored: it never gets committed.

A minimal file to get started

# Where outputs go (your EOS / CERNBox user area):
fs_default: davs://eoshome-<initial>.cern.ch:8444/eos/user/<initial>/<user>/FLAF/HH_bbtautau/

# Use the small, fast set of processes while testing:
phys_model: TestModel

# Standard options:
analysis_config_area: config
compute_unc_variations: true
compute_unc_histograms: true
store_noncentral: true

Replace <initial>/<user> with yours (e.g. k / kandroso). With just this, you can run the first-run smoke test.

Fields

Field Type Meaning
fs_default string or list Required. Default storage for all outputs. The fallback for every other fs_*. See Storage.
fs_anaTuple, fs_HistTuple, fs_anaCacheTuple, fs_plots, … string/list Optional per-output-type storage. Unset ⇒ uses fs_default.
phys_model string Which physics model to run: TestModel (small, for testing/CI) or the analysis's production model (e.g. BaseModel).
analysis_config_area string The analysis config directory, relative to the checkout — normally config.
compute_unc_variations bool Whether to compute systematic (up/down) variations during production.
compute_unc_histograms bool Whether to also fill histograms for those variations.
store_noncentral bool Whether to keep the non-central (systematic-shift) outputs, not just the central one.
variables list Restrict which variables are produced/plotted. Omit for the full set.

TestModel is the fast path

TestModel selects a reduced set of processes so the pipeline runs quickly end-to-end. Use it for development and local testing; switch to the production model only when you need full results. This is exactly what CI does.

A production-style example

fs_default: davs://eoshome-k.cern.ch:8444/eos/user/k/kandroso/FLAF/HH_bbtautau/
# A separate, roomier site for the big ntuples:
fs_anaTuple: T3_US_FNALLPC:/store/user/lpcflaf/HH_bbtautau/

phys_model: BaseModel
analysis_config_area: config
compute_unc_variations: true
compute_unc_histograms: true
store_noncentral: true

Per-run overrides (--user-custom)

To change settings for a single run without editing your committed file, pass an extra YAML with --user-custom. It is loaded after user_custom.yaml, so its values win:

law run FLAF.Analysis.tasks.HistPlotTask \
  --version my_test --period Run3_2022 --workflow local --branches 0 --test 1000 \
  --user-custom /path/to/extra.yaml

The path may be absolute or relative to $ANALYSIS_PATH. This is the preferred way to run one-off variants (a different model, a different storage area, a short variables: list) — it keeps your user_custom.yaml clean and is reproducible.

The CI uses a dedicated file

The integration pipeline supplies its own ci_custom.yaml (local storage, TestModel, a short variables: list) instead of a personal file, so tests never touch real storage. See Integration pipeline.