rootfig 0.6.0__tar.gz → 0.8.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {rootfig-0.6.0 → rootfig-0.8.0}/CONTRIBUTING.md +10 -2
- {rootfig-0.6.0 → rootfig-0.8.0}/PKG-INFO +44 -13
- {rootfig-0.6.0 → rootfig-0.8.0}/README.md +39 -8
- rootfig-0.8.0/docs/api.md +121 -0
- rootfig-0.8.0/docs/batch.md +478 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/composable.md +71 -8
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/ecosystem.md +19 -4
- rootfig-0.8.0/docs/images/gallery/arrays-alice-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/arrays-alice.png +0 -0
- rootfig-0.8.0/docs/images/gallery/arrays-atlas-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/arrays-atlas.png +0 -0
- rootfig-0.8.0/docs/images/gallery/arrays-lhcb-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/arrays-lhcb.png +0 -0
- rootfig-0.8.0/docs/images/gallery/correlation-alice-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/correlation-alice.png +0 -0
- rootfig-0.8.0/docs/images/gallery/correlation-atlas-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/correlation-atlas.png +0 -0
- rootfig-0.8.0/docs/images/gallery/correlation-cms-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/correlation-cms.png +0 -0
- rootfig-0.8.0/docs/images/gallery/correlation-dune-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/correlation-dune.png +0 -0
- rootfig-0.8.0/docs/images/gallery/correlation-lhcb-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/correlation-lhcb.png +0 -0
- rootfig-0.8.0/docs/images/gallery/density_flow-atlas-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/density_flow-atlas.png +0 -0
- rootfig-0.8.0/docs/images/gallery/density_flow-cms-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/density_flow-cms.png +0 -0
- rootfig-0.8.0/docs/images/gallery/density_flow-lhcb-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/density_flow-lhcb.png +0 -0
- rootfig-0.8.0/docs/images/gallery/efficiency-alice-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/efficiency-alice.png +0 -0
- rootfig-0.8.0/docs/images/gallery/efficiency-atlas-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/efficiency-atlas.png +0 -0
- rootfig-0.8.0/docs/images/gallery/efficiency-cms-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/efficiency-cms.png +0 -0
- rootfig-0.8.0/docs/images/gallery/efficiency-lhcb-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/efficiency-lhcb.png +0 -0
- rootfig-0.8.0/docs/images/gallery/expressions-alice-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/expressions-alice.png +0 -0
- rootfig-0.8.0/docs/images/gallery/expressions-atlas-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/expressions-atlas.png +0 -0
- rootfig-0.8.0/docs/images/gallery/expressions-cms-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/expressions-cms.png +0 -0
- rootfig-0.8.0/docs/images/gallery/expressions-dune-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/expressions-dune.png +0 -0
- rootfig-0.8.0/docs/images/gallery/expressions-lhcb-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/expressions-lhcb.png +0 -0
- rootfig-0.8.0/docs/images/gallery/fill_stats-alice-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/fill_stats-alice.png +0 -0
- rootfig-0.8.0/docs/images/gallery/fill_stats-atlas-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/fill_stats-atlas.png +0 -0
- rootfig-0.8.0/docs/images/gallery/fill_stats-cms-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/fill_stats-cms.png +0 -0
- rootfig-0.8.0/docs/images/gallery/fill_stats-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/fill_stats-dune-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/fill_stats-dune.png +0 -0
- rootfig-0.8.0/docs/images/gallery/fill_stats-lhcb-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/fill_stats-lhcb.png +0 -0
- rootfig-0.8.0/docs/images/gallery/fill_stats.png +0 -0
- rootfig-0.8.0/docs/images/gallery/hist2d-cms-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/hist2d-cms.png +0 -0
- rootfig-0.8.0/docs/images/gallery/hist2d-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/hist2d-dune-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/hist2d-dune.png +0 -0
- rootfig-0.8.0/docs/images/gallery/hist2d.png +0 -0
- rootfig-0.8.0/docs/images/gallery/log_axes-alice-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/log_axes-alice.png +0 -0
- rootfig-0.8.0/docs/images/gallery/log_axes-atlas-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/log_axes-atlas.png +0 -0
- rootfig-0.8.0/docs/images/gallery/log_axes-cms-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/log_axes-cms.png +0 -0
- rootfig-0.8.0/docs/images/gallery/log_axes-dune-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/log_axes-dune.png +0 -0
- rootfig-0.8.0/docs/images/gallery/log_axes-lhcb-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/log_axes-lhcb.png +0 -0
- rootfig-0.8.0/docs/images/gallery/luminosity-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/luminosity.png +0 -0
- rootfig-0.8.0/docs/images/gallery/many_plots-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/many_plots.png +0 -0
- rootfig-0.8.0/docs/images/gallery/object_vs_event-alice-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/object_vs_event-alice.png +0 -0
- rootfig-0.8.0/docs/images/gallery/object_vs_event-atlas-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/object_vs_event-atlas.png +0 -0
- rootfig-0.8.0/docs/images/gallery/object_vs_event-cms-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/object_vs_event-cms.png +0 -0
- rootfig-0.8.0/docs/images/gallery/object_vs_event-lhcb-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/object_vs_event-lhcb.png +0 -0
- rootfig-0.8.0/docs/images/gallery/overlay_ratio-alice-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/overlay_ratio-alice.png +0 -0
- rootfig-0.8.0/docs/images/gallery/overlay_ratio-atlas-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/overlay_ratio-atlas.png +0 -0
- rootfig-0.8.0/docs/images/gallery/overlay_ratio-cms-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/overlay_ratio-cms.png +0 -0
- rootfig-0.8.0/docs/images/gallery/overlay_ratio-lhcb-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/overlay_ratio-lhcb.png +0 -0
- rootfig-0.8.0/docs/images/gallery/profile-atlas-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/profile-atlas.png +0 -0
- rootfig-0.8.0/docs/images/gallery/profile-dune-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/profile-dune.png +0 -0
- rootfig-0.8.0/docs/images/gallery/profile-lhcb-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/profile-lhcb.png +0 -0
- rootfig-0.8.0/docs/images/gallery/pull-alice-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/pull-alice.png +0 -0
- rootfig-0.8.0/docs/images/gallery/pull-atlas-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/pull-atlas.png +0 -0
- rootfig-0.8.0/docs/images/gallery/pull-cms-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/pull-cms.png +0 -0
- rootfig-0.8.0/docs/images/gallery/pull-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/pull-dune-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/pull-dune.png +0 -0
- rootfig-0.8.0/docs/images/gallery/pull-lhcb-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/pull-lhcb.png +0 -0
- rootfig-0.8.0/docs/images/gallery/pull.png +0 -0
- rootfig-0.8.0/docs/images/gallery/quick-alice-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/quick-alice.png +0 -0
- rootfig-0.8.0/docs/images/gallery/quick-atlas-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/quick-atlas.png +0 -0
- rootfig-0.8.0/docs/images/gallery/quick-cms-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/quick-cms.png +0 -0
- rootfig-0.8.0/docs/images/gallery/quick-lhcb-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/quick-lhcb.png +0 -0
- rootfig-0.8.0/docs/images/gallery/ratio_reference-alice-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/ratio_reference-alice.png +0 -0
- rootfig-0.8.0/docs/images/gallery/ratio_reference-atlas-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/ratio_reference-atlas.png +0 -0
- rootfig-0.8.0/docs/images/gallery/ratio_reference-cms-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/ratio_reference-cms.png +0 -0
- rootfig-0.8.0/docs/images/gallery/ratio_reference-lhcb-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/ratio_reference-lhcb.png +0 -0
- rootfig-0.8.0/docs/images/gallery/selective_stack-alice-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/selective_stack-alice.png +0 -0
- rootfig-0.8.0/docs/images/gallery/selective_stack-atlas-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/selective_stack-atlas.png +0 -0
- rootfig-0.8.0/docs/images/gallery/selective_stack-cms-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/selective_stack-cms.png +0 -0
- rootfig-0.8.0/docs/images/gallery/selective_stack-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/selective_stack-dune-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/selective_stack-dune.png +0 -0
- rootfig-0.8.0/docs/images/gallery/selective_stack-lhcb-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/selective_stack-lhcb.png +0 -0
- rootfig-0.8.0/docs/images/gallery/selective_stack.png +0 -0
- rootfig-0.8.0/docs/images/gallery/stack_data-alice-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/stack_data-alice.png +0 -0
- rootfig-0.8.0/docs/images/gallery/stack_data-atlas-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/stack_data-atlas.png +0 -0
- rootfig-0.8.0/docs/images/gallery/stack_data-cms-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/stack_data-cms.png +0 -0
- rootfig-0.8.0/docs/images/gallery/stack_data-dune-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/stack_data-dune.png +0 -0
- rootfig-0.8.0/docs/images/gallery/stack_data-lhcb-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/stack_data-lhcb.png +0 -0
- rootfig-0.8.0/docs/images/gallery/stored_histograms-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/stored_histograms.png +0 -0
- rootfig-0.8.0/docs/images/gallery/style_colors-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/style_colors.png +0 -0
- rootfig-0.8.0/docs/images/gallery/systematics-alice-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/systematics-alice.png +0 -0
- rootfig-0.8.0/docs/images/gallery/systematics-atlas-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/systematics-atlas.png +0 -0
- rootfig-0.8.0/docs/images/gallery/systematics-cms-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/systematics-cms.png +0 -0
- rootfig-0.8.0/docs/images/gallery/systematics-dune-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/systematics-dune.png +0 -0
- rootfig-0.8.0/docs/images/gallery/systematics-lhcb-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/systematics-lhcb.png +0 -0
- rootfig-0.8.0/docs/images/gallery/variable_bins-alice-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/variable_bins-alice.png +0 -0
- rootfig-0.8.0/docs/images/gallery/variable_bins-atlas-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/variable_bins-atlas.png +0 -0
- rootfig-0.8.0/docs/images/gallery/variable_bins-cms-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/variable_bins-cms.png +0 -0
- rootfig-0.8.0/docs/images/gallery/variable_bins-dune-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/variable_bins-dune.png +0 -0
- rootfig-0.8.0/docs/images/gallery/variable_bins-lhcb-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/variable_bins-lhcb.png +0 -0
- rootfig-0.8.0/docs/images/gallery/xbreak_ratio-alice-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/xbreak_ratio-alice.png +0 -0
- rootfig-0.8.0/docs/images/gallery/xbreak_ratio-atlas-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/xbreak_ratio-atlas.png +0 -0
- rootfig-0.8.0/docs/images/gallery/xbreak_ratio-cms-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/xbreak_ratio-cms.png +0 -0
- rootfig-0.8.0/docs/images/gallery/xbreak_ratio-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/xbreak_ratio-dune-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/xbreak_ratio-dune.png +0 -0
- rootfig-0.8.0/docs/images/gallery/xbreak_ratio-lhcb-dark.png +0 -0
- rootfig-0.8.0/docs/images/gallery/xbreak_ratio-lhcb.png +0 -0
- rootfig-0.8.0/docs/images/gallery/xbreak_ratio.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/index.md +3 -2
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/plotting.md +221 -99
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/quickstart.md +2 -2
- {rootfig-0.6.0 → rootfig-0.8.0}/examples/gallery/__init__.py +78 -15
- {rootfig-0.6.0 → rootfig-0.8.0}/examples/gallery/data.py +25 -2
- {rootfig-0.6.0 → rootfig-0.8.0}/mkdocs.yml +2 -1
- {rootfig-0.6.0 → rootfig-0.8.0}/pyproject.toml +9 -7
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/__init__.py +19 -10
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/_storage.py +15 -5
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/api/__init__.py +5 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/api/_common.py +23 -9
- rootfig-0.8.0/src/rootfig/api/_discover.py +526 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/api/_hists.py +7 -17
- rootfig-0.8.0/src/rootfig/api/_panel.py +273 -0
- rootfig-0.8.0/src/rootfig/api/_pdf.py +202 -0
- rootfig-0.8.0/src/rootfig/api/batch.py +992 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/api/data.py +22 -12
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/api/measures.py +16 -10
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/api/plots1d.py +358 -246
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/api/plots2d.py +17 -13
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/expressions/__init__.py +10 -2
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/expressions/parser.py +25 -1
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/histograms/__init__.py +24 -27
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/histograms/build.py +128 -111
- rootfig-0.8.0/src/rootfig/histograms/comparison.py +374 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/histograms/efficiency.py +1 -1
- rootfig-0.8.0/src/rootfig/histograms/groups.py +50 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/histograms/pipeline.py +153 -59
- rootfig-0.8.0/src/rootfig/histograms/prefetch.py +212 -0
- rootfig-0.8.0/src/rootfig/histograms/sources.py +24 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/histograms/stored.py +91 -27
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/histograms/systematics.py +3 -1
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/io/__init__.py +10 -1
- rootfig-0.8.0/src/rootfig/io/cache.py +80 -0
- rootfig-0.8.0/src/rootfig/io/objects.py +165 -0
- rootfig-0.8.0/src/rootfig/io/schema.py +98 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/io/sources.py +167 -47
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/model/__init__.py +11 -7
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/model/binning.py +30 -32
- rootfig-0.8.0/src/rootfig/model/filenames.py +68 -0
- rootfig-0.8.0/src/rootfig/model/groups.py +139 -0
- rootfig-0.8.0/src/rootfig/model/inputs.py +156 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/model/samples.py +6 -85
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/model/style.py +1 -1
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/model/variables.py +21 -24
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/plotting/__init__.py +23 -12
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/plotting/annotations.py +9 -5
- rootfig-0.8.0/src/rootfig/plotting/engine.py +153 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/plotting/figure.py +215 -71
- rootfig-0.8.0/src/rootfig/plotting/finish.py +127 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/plotting/hist1d.py +308 -131
- rootfig-0.8.0/src/rootfig/plotting/pages.py +314 -0
- rootfig-0.8.0/src/rootfig/plotting/panel.py +382 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/plotting/result.py +63 -32
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/plotting/style.py +167 -76
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/selection/__init__.py +0 -2
- {rootfig-0.6.0 → rootfig-0.8.0}/tests/test_api.py +1108 -121
- rootfig-0.8.0/tests/test_batch.py +1293 -0
- rootfig-0.8.0/tests/test_discovery.py +1151 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/tests/test_expressions.py +39 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/tests/test_histograms.py +751 -47
- {rootfig-0.6.0 → rootfig-0.8.0}/tests/test_io.py +448 -1
- {rootfig-0.6.0 → rootfig-0.8.0}/tests/test_model.py +297 -8
- rootfig-0.8.0/tests/test_pages.py +282 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/tests/test_plotting.py +669 -116
- rootfig-0.8.0/tests/test_save_pdf.py +836 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/tests/test_selection.py +2 -1
- {rootfig-0.6.0 → rootfig-0.8.0}/tests/test_tutorials.py +7 -2
- rootfig-0.8.0/tests/type_checks/batch.py +71 -0
- rootfig-0.8.0/tests/type_checks/groups.py +25 -0
- rootfig-0.6.0/docs/api.md +0 -53
- rootfig-0.6.0/docs/images/gallery/arrays-alice-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/arrays-alice.png +0 -0
- rootfig-0.6.0/docs/images/gallery/arrays-atlas-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/arrays-atlas.png +0 -0
- rootfig-0.6.0/docs/images/gallery/arrays-lhcb-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/arrays-lhcb.png +0 -0
- rootfig-0.6.0/docs/images/gallery/correlation-alice-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/correlation-alice.png +0 -0
- rootfig-0.6.0/docs/images/gallery/correlation-atlas-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/correlation-atlas.png +0 -0
- rootfig-0.6.0/docs/images/gallery/correlation-cms-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/correlation-cms.png +0 -0
- rootfig-0.6.0/docs/images/gallery/correlation-dune-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/correlation-dune.png +0 -0
- rootfig-0.6.0/docs/images/gallery/correlation-lhcb-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/correlation-lhcb.png +0 -0
- rootfig-0.6.0/docs/images/gallery/density_flow-atlas-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/density_flow-atlas.png +0 -0
- rootfig-0.6.0/docs/images/gallery/density_flow-cms-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/density_flow-cms.png +0 -0
- rootfig-0.6.0/docs/images/gallery/density_flow-lhcb-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/density_flow-lhcb.png +0 -0
- rootfig-0.6.0/docs/images/gallery/efficiency-alice-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/efficiency-alice.png +0 -0
- rootfig-0.6.0/docs/images/gallery/efficiency-atlas-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/efficiency-atlas.png +0 -0
- rootfig-0.6.0/docs/images/gallery/efficiency-cms-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/efficiency-cms.png +0 -0
- rootfig-0.6.0/docs/images/gallery/efficiency-lhcb-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/efficiency-lhcb.png +0 -0
- rootfig-0.6.0/docs/images/gallery/expressions-alice-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/expressions-alice.png +0 -0
- rootfig-0.6.0/docs/images/gallery/expressions-atlas-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/expressions-atlas.png +0 -0
- rootfig-0.6.0/docs/images/gallery/expressions-cms-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/expressions-cms.png +0 -0
- rootfig-0.6.0/docs/images/gallery/expressions-dune-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/expressions-dune.png +0 -0
- rootfig-0.6.0/docs/images/gallery/expressions-lhcb-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/expressions-lhcb.png +0 -0
- rootfig-0.6.0/docs/images/gallery/fill_stats-alice-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/fill_stats-alice.png +0 -0
- rootfig-0.6.0/docs/images/gallery/fill_stats-atlas-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/fill_stats-atlas.png +0 -0
- rootfig-0.6.0/docs/images/gallery/fill_stats-cms-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/fill_stats-cms.png +0 -0
- rootfig-0.6.0/docs/images/gallery/fill_stats-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/fill_stats-dune-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/fill_stats-dune.png +0 -0
- rootfig-0.6.0/docs/images/gallery/fill_stats-lhcb-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/fill_stats-lhcb.png +0 -0
- rootfig-0.6.0/docs/images/gallery/fill_stats.png +0 -0
- rootfig-0.6.0/docs/images/gallery/hist2d-cms-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/hist2d-cms.png +0 -0
- rootfig-0.6.0/docs/images/gallery/hist2d-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/hist2d-dune-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/hist2d-dune.png +0 -0
- rootfig-0.6.0/docs/images/gallery/hist2d.png +0 -0
- rootfig-0.6.0/docs/images/gallery/log_axes-alice-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/log_axes-alice.png +0 -0
- rootfig-0.6.0/docs/images/gallery/log_axes-atlas-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/log_axes-atlas.png +0 -0
- rootfig-0.6.0/docs/images/gallery/log_axes-cms-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/log_axes-cms.png +0 -0
- rootfig-0.6.0/docs/images/gallery/log_axes-dune-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/log_axes-dune.png +0 -0
- rootfig-0.6.0/docs/images/gallery/log_axes-lhcb-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/log_axes-lhcb.png +0 -0
- rootfig-0.6.0/docs/images/gallery/luminosity-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/luminosity.png +0 -0
- rootfig-0.6.0/docs/images/gallery/many_plots-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/many_plots.png +0 -0
- rootfig-0.6.0/docs/images/gallery/object_vs_event-alice-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/object_vs_event-alice.png +0 -0
- rootfig-0.6.0/docs/images/gallery/object_vs_event-atlas-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/object_vs_event-atlas.png +0 -0
- rootfig-0.6.0/docs/images/gallery/object_vs_event-cms-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/object_vs_event-cms.png +0 -0
- rootfig-0.6.0/docs/images/gallery/object_vs_event-lhcb-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/object_vs_event-lhcb.png +0 -0
- rootfig-0.6.0/docs/images/gallery/overlay_ratio-alice-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/overlay_ratio-alice.png +0 -0
- rootfig-0.6.0/docs/images/gallery/overlay_ratio-atlas-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/overlay_ratio-atlas.png +0 -0
- rootfig-0.6.0/docs/images/gallery/overlay_ratio-cms-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/overlay_ratio-cms.png +0 -0
- rootfig-0.6.0/docs/images/gallery/overlay_ratio-lhcb-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/overlay_ratio-lhcb.png +0 -0
- rootfig-0.6.0/docs/images/gallery/profile-atlas-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/profile-atlas.png +0 -0
- rootfig-0.6.0/docs/images/gallery/profile-dune-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/profile-dune.png +0 -0
- rootfig-0.6.0/docs/images/gallery/profile-lhcb-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/profile-lhcb.png +0 -0
- rootfig-0.6.0/docs/images/gallery/quick-alice-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/quick-alice.png +0 -0
- rootfig-0.6.0/docs/images/gallery/quick-atlas-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/quick-atlas.png +0 -0
- rootfig-0.6.0/docs/images/gallery/quick-cms-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/quick-cms.png +0 -0
- rootfig-0.6.0/docs/images/gallery/quick-lhcb-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/quick-lhcb.png +0 -0
- rootfig-0.6.0/docs/images/gallery/ratio_reference-alice-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/ratio_reference-alice.png +0 -0
- rootfig-0.6.0/docs/images/gallery/ratio_reference-atlas-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/ratio_reference-atlas.png +0 -0
- rootfig-0.6.0/docs/images/gallery/ratio_reference-cms-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/ratio_reference-cms.png +0 -0
- rootfig-0.6.0/docs/images/gallery/ratio_reference-lhcb-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/ratio_reference-lhcb.png +0 -0
- rootfig-0.6.0/docs/images/gallery/stack_data-alice-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/stack_data-alice.png +0 -0
- rootfig-0.6.0/docs/images/gallery/stack_data-atlas-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/stack_data-atlas.png +0 -0
- rootfig-0.6.0/docs/images/gallery/stack_data-cms-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/stack_data-cms.png +0 -0
- rootfig-0.6.0/docs/images/gallery/stack_data-dune-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/stack_data-dune.png +0 -0
- rootfig-0.6.0/docs/images/gallery/stack_data-lhcb-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/stack_data-lhcb.png +0 -0
- rootfig-0.6.0/docs/images/gallery/style_colors-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/style_colors.png +0 -0
- rootfig-0.6.0/docs/images/gallery/systematics-alice-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/systematics-alice.png +0 -0
- rootfig-0.6.0/docs/images/gallery/systematics-atlas-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/systematics-atlas.png +0 -0
- rootfig-0.6.0/docs/images/gallery/systematics-cms-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/systematics-cms.png +0 -0
- rootfig-0.6.0/docs/images/gallery/systematics-dune-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/systematics-dune.png +0 -0
- rootfig-0.6.0/docs/images/gallery/systematics-lhcb-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/systematics-lhcb.png +0 -0
- rootfig-0.6.0/docs/images/gallery/variable_bins-alice-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/variable_bins-alice.png +0 -0
- rootfig-0.6.0/docs/images/gallery/variable_bins-atlas-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/variable_bins-atlas.png +0 -0
- rootfig-0.6.0/docs/images/gallery/variable_bins-cms-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/variable_bins-cms.png +0 -0
- rootfig-0.6.0/docs/images/gallery/variable_bins-dune-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/variable_bins-dune.png +0 -0
- rootfig-0.6.0/docs/images/gallery/variable_bins-lhcb-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/variable_bins-lhcb.png +0 -0
- rootfig-0.6.0/docs/images/gallery/xbreak_ratio-alice-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/xbreak_ratio-alice.png +0 -0
- rootfig-0.6.0/docs/images/gallery/xbreak_ratio-atlas-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/xbreak_ratio-atlas.png +0 -0
- rootfig-0.6.0/docs/images/gallery/xbreak_ratio-cms-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/xbreak_ratio-cms.png +0 -0
- rootfig-0.6.0/docs/images/gallery/xbreak_ratio-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/xbreak_ratio-dune-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/xbreak_ratio-dune.png +0 -0
- rootfig-0.6.0/docs/images/gallery/xbreak_ratio-lhcb-dark.png +0 -0
- rootfig-0.6.0/docs/images/gallery/xbreak_ratio-lhcb.png +0 -0
- rootfig-0.6.0/docs/images/gallery/xbreak_ratio.png +0 -0
- rootfig-0.6.0/src/rootfig/histograms/ratio.py +0 -241
- rootfig-0.6.0/src/rootfig/io/objects.py +0 -128
- rootfig-0.6.0/src/rootfig/plotting/ratio.py +0 -206
- {rootfig-0.6.0 → rootfig-0.8.0}/.gitignore +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/LICENSE +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/expressions.md +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/gallery/index.md +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/hooks/gallery.py +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/arrays-cms-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/arrays-cms.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/arrays-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/arrays-dune-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/arrays-dune.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/arrays.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/correlation-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/correlation.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/density_flow-alice-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/density_flow-alice.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/density_flow-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/density_flow-dune-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/density_flow-dune.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/density_flow.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/efficiency-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/efficiency-dune-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/efficiency-dune.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/efficiency.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/expressions-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/expressions.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/hist2d-alice-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/hist2d-alice.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/hist2d-atlas-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/hist2d-atlas.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/hist2d-lhcb-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/hist2d-lhcb.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/log_axes-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/log_axes.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/object_vs_event-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/object_vs_event-dune-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/object_vs_event-dune.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/object_vs_event.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/overlay_ratio-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/overlay_ratio-dune-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/overlay_ratio-dune.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/overlay_ratio.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/profile-alice-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/profile-alice.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/profile-cms-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/profile-cms.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/profile-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/profile.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/quick-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/quick-dune-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/quick-dune.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/quick.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/ratio_reference-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/ratio_reference-dune-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/ratio_reference-dune.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/ratio_reference.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/robust_range-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/robust_range.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/stack_data-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/stack_data.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/systematics-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/systematics.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/variable_bins-dark.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/images/gallery/variable_bins.png +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/docs/stylesheets/gallery.css +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/examples/gallery/__main__.py +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/examples/gallery/registry.py +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/_mapping.py +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/_typing.py +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/api/tables.py +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/errors.py +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/expressions/functions.py +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/histograms/cutflow.py +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/histograms/normalize.py +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/histograms/stats.py +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/model/cuts.py +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/model/systematics.py +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/model/units.py +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/plotting/correlation.py +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/plotting/hist2d.py +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/plotting/points.py +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/py.typed +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/src/rootfig/selection/columns.py +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/tests/conftest.py +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/tests/data/split_collection.root +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/tests/test_gallery.py +0 -0
- {rootfig-0.6.0 → rootfig-0.8.0}/tests/type_checks/systematics.py +0 -0
|
@@ -32,6 +32,14 @@ that use ROOT's tutorial files run only when `root-config` is available
|
|
|
32
32
|
locally and are skipped otherwise; do not add
|
|
33
33
|
tests that require ROOT or network access.
|
|
34
34
|
|
|
35
|
+
`key4hep.yml` runs the tests on the Key4hep nightlies (LCG `devkey-head`) and the
|
|
36
|
+
latest Key4hep release, weekly as well, since the stacks change without a commit
|
|
37
|
+
here. `.github/scripts/key4hep-test.sh` installs rootfig into a
|
|
38
|
+
[cvmfs-venv](https://github.com/jbeirer/cvmfs-venv) with `--no-index`, so every
|
|
39
|
+
runtime dependency must come from the stack: the floors in `pyproject.toml` stay
|
|
40
|
+
at or below what the nightlies ship. Locally: `.github/scripts/key4hep-test.sh
|
|
41
|
+
/cvmfs/sw-nightlies.hsf.org/key4hep/setup.sh`.
|
|
42
|
+
|
|
35
43
|
## Layout
|
|
36
44
|
|
|
37
45
|
```
|
|
@@ -40,9 +48,9 @@ src/rootfig/
|
|
|
40
48
|
errors.py exception hierarchy
|
|
41
49
|
expressions/ parse, validate and evaluate expression strings
|
|
42
50
|
io/ file and in-memory data sources
|
|
43
|
-
model/ Sample, Variable, Cut, Style, binning
|
|
51
|
+
model/ Sample, Group, Variable, Cut, Style, binning
|
|
44
52
|
selection/ per-event / per-object semantics -> flat columns
|
|
45
|
-
histograms/ filling, normalisation,
|
|
53
|
+
histograms/ filling, normalisation, comparisons, statistics, groups, pipeline
|
|
46
54
|
plotting/ matplotlib/mplhep rendering, styles, annotations
|
|
47
55
|
tests/ one module per layer plus end-to-end API tests
|
|
48
56
|
docs/ MkDocs sources
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: rootfig
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary: Publication-quality figures straight from ROOT trees, without ROOT: uproot + Awkward + hist + mplhep with a TTree::Draw-like API.
|
|
3
|
+
Version: 0.8.0
|
|
4
|
+
Summary: Publication-quality figures straight from ROOT trees and histograms, without ROOT: uproot + Awkward + hist + mplhep with a TTree::Draw-like API.
|
|
5
5
|
Project-URL: Homepage, https://github.com/jbeirer/rootfig
|
|
6
6
|
Project-URL: Documentation, https://jbeirer.github.io/rootfig/
|
|
7
7
|
Project-URL: Repository, https://github.com/jbeirer/rootfig
|
|
@@ -24,11 +24,11 @@ Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
|
24
24
|
Classifier: Typing :: Typed
|
|
25
25
|
Requires-Python: >=3.12
|
|
26
26
|
Requires-Dist: awkward>=2.8
|
|
27
|
-
Requires-Dist: hist>=2.
|
|
27
|
+
Requires-Dist: hist>=2.9
|
|
28
28
|
Requires-Dist: matplotlib>=3.11
|
|
29
|
-
Requires-Dist: mplhep>=1.
|
|
29
|
+
Requires-Dist: mplhep>=1.2.1
|
|
30
30
|
Requires-Dist: numpy>=1.26
|
|
31
|
-
Requires-Dist: uproot>=5.7.
|
|
31
|
+
Requires-Dist: uproot>=5.7.1
|
|
32
32
|
Description-Content-Type: text/markdown
|
|
33
33
|
|
|
34
34
|
<p align="center">
|
|
@@ -40,7 +40,7 @@ Description-Content-Type: text/markdown
|
|
|
40
40
|
</p>
|
|
41
41
|
|
|
42
42
|
<p align="center">
|
|
43
|
-
<strong>Publication-quality figures straight from ROOT trees, without ROOT.</strong>
|
|
43
|
+
<strong>Publication-quality figures straight from ROOT trees and histograms, without ROOT.</strong>
|
|
44
44
|
</p>
|
|
45
45
|
|
|
46
46
|
<p align="center">
|
|
@@ -53,6 +53,7 @@ Description-Content-Type: text/markdown
|
|
|
53
53
|
<a href="https://jbeirer.github.io/rootfig/"><img src="https://img.shields.io/badge/docs-online-blue" alt="Documentation"></a>
|
|
54
54
|
<a href="https://doi.org/10.5281/zenodo.22726311"><img src="https://zenodo.org/badge/1366702602.svg" alt="DOI"></a>
|
|
55
55
|
<a href="https://github.com/jbeirer/rootfig/actions/workflows/ci.yml"><img src="https://github.com/jbeirer/rootfig/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
56
|
+
<a href="https://github.com/jbeirer/rootfig/actions/workflows/key4hep.yml"><img src="https://github.com/jbeirer/rootfig/actions/workflows/key4hep.yml/badge.svg" alt="Key4hep"></a>
|
|
56
57
|
<a href="https://codecov.io/gh/jbeirer/rootfig"><img src="https://codecov.io/gh/jbeirer/rootfig/branch/main/graph/badge.svg" alt="codecov"></a>
|
|
57
58
|
<a href="https://pypi.org/project/rootfig/"><img src="https://img.shields.io/pypi/v/rootfig.svg" alt="PyPI"></a>
|
|
58
59
|
<a href="https://pypi.org/project/rootfig/"><img src="https://img.shields.io/pypi/pyversions/rootfig.svg" alt="Python"></a>
|
|
@@ -97,7 +98,7 @@ uv add rootfig
|
|
|
97
98
|
```
|
|
98
99
|
|
|
99
100
|
Python 3.12 or newer. No ROOT installation is needed; `TTree` and `RNTuple`
|
|
100
|
-
files are
|
|
101
|
+
files and stored `TH1`/`TH2` histograms are all supported.
|
|
101
102
|
|
|
102
103
|
## Compare samples in one call
|
|
103
104
|
|
|
@@ -113,7 +114,8 @@ rf.plot(
|
|
|
113
114
|
weight="event_weight",
|
|
114
115
|
bins=(50, 0, 200),
|
|
115
116
|
normalize=True,
|
|
116
|
-
|
|
117
|
+
panel="ratio",
|
|
118
|
+
reference="Background",
|
|
117
119
|
)
|
|
118
120
|
```
|
|
119
121
|
|
|
@@ -138,7 +140,7 @@ p = rf.plot(
|
|
|
138
140
|
observed=data,
|
|
139
141
|
selection=baseline,
|
|
140
142
|
stack=True,
|
|
141
|
-
ratio
|
|
143
|
+
panel="ratio",
|
|
142
144
|
logy=True,
|
|
143
145
|
style=style,
|
|
144
146
|
)
|
|
@@ -150,22 +152,51 @@ Everything you get back is a standard object: `p.fig` and `p.ax` are
|
|
|
150
152
|
matplotlib `Figure`/`Axes`, `p.hists` are `hist.Hist` objects, and
|
|
151
153
|
`rf.load(...)` returns Awkward arrays.
|
|
152
154
|
|
|
155
|
+
For histogram files, `Group` sums processes and a `Variable` crops and merges
|
|
156
|
+
their bins just as it bins a tree. `PlotBook` draws the variants from one
|
|
157
|
+
preparation; `rf.ALL` discovers every shared histogram for an overview.
|
|
158
|
+
|
|
159
|
+
```python
|
|
160
|
+
# Histogram files: one per process, already scaled to 5 ab^-1
|
|
161
|
+
ww = rf.Sample("outputs/p8_ee_WW_ecm240.root", label="WW")
|
|
162
|
+
zz = rf.Sample("outputs/p8_ee_ZZ_ecm240.root", label="ZZ")
|
|
163
|
+
zh = rf.Sample("outputs/p8_ee_ZH_ecm240.root", label="ZH")
|
|
164
|
+
fcc = rf.Style(experiment="FCC-ee", status="Simulation", com="240 GeV", lumi="5 ab^-1")
|
|
165
|
+
|
|
166
|
+
book = rf.PlotBook(
|
|
167
|
+
[rf.Group([ww, zz], label="VV"), zh],
|
|
168
|
+
[rf.Variable("zmumu_recoil_m", bins=(200, 120, 140), label="Recoil mass", unit="GeV")],
|
|
169
|
+
variants={"stack": {"stack": True}, "nostack": {"stack": ["VV"]}},
|
|
170
|
+
plot_kwargs={"style": fcc},
|
|
171
|
+
)
|
|
172
|
+
book.save_pdf("zh.pdf") # rf.ALL in place of the list plots every histogram the files share
|
|
173
|
+
```
|
|
174
|
+
|
|
153
175
|
## What you can do
|
|
154
176
|
|
|
155
177
|
- **Select events and objects with readable expressions.** Write cuts such as
|
|
156
178
|
`count(Jet_pt) >= 2` or `Muon_pt > 20`; event and object selections have
|
|
157
179
|
explicit rules, and event weights carry through to each selected object.
|
|
158
|
-
- **Compare samples with a few keywords.** Overlays, stacks, data points and
|
|
159
|
-
|
|
180
|
+
- **Compare samples with a few keywords.** Overlays, stacks, data points and a
|
|
181
|
+
lower panel (ratio, difference, relative difference, pull or significance,
|
|
182
|
+
against a reference you name) share binning and propagate histogram
|
|
183
|
+
uncertainties; bin edges
|
|
160
184
|
and `(n, low, high)` are used as given, while a range inferred from the data
|
|
161
185
|
ignores far outliers, so `-999` sentinels do not set the axis. Normalise to
|
|
162
|
-
unity, density, bin width or luminosity.
|
|
186
|
+
unity, density, bin width or luminosity; stack some samples and overlay the rest.
|
|
187
|
+
Draw several samples as one histogram with `rf.Group`, each keeping its own
|
|
188
|
+
weights, cross section and systematics.
|
|
163
189
|
- **Show systematic uncertainties.** Attach weight, branch, file or
|
|
164
|
-
normalisation variations to a sample; stacks and
|
|
190
|
+
normalisation variations to a sample; stacks and lower panels draw the
|
|
165
191
|
combined statistical and systematic band, and every component stays
|
|
166
192
|
accessible.
|
|
167
193
|
- **Style figures for your analysis.** Add experiment labels, units, log axes
|
|
168
194
|
and broken axes, then refine the result with matplotlib.
|
|
195
|
+
- **Produce whole sets of plots.** `rf.PlotBook` runs one `rf.plot` call over
|
|
196
|
+
variables × selections × variants, lazily, and saves each under a
|
|
197
|
+
deterministic name or all of them as one multipage PDF; `rf.ALL` discovers
|
|
198
|
+
the variables from the files, and `select()` filters the book down while
|
|
199
|
+
iterating on a plot.
|
|
169
200
|
- **Go beyond 1D plots.** Draw 2D histograms, correlations, efficiencies,
|
|
170
201
|
profiles, resolutions and significance panels; produce cut flows and
|
|
171
202
|
summary statistics from the same inputs.
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
</p>
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
|
-
<strong>Publication-quality figures straight from ROOT trees, without ROOT.</strong>
|
|
10
|
+
<strong>Publication-quality figures straight from ROOT trees and histograms, without ROOT.</strong>
|
|
11
11
|
</p>
|
|
12
12
|
|
|
13
13
|
<p align="center">
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
<a href="https://jbeirer.github.io/rootfig/"><img src="https://img.shields.io/badge/docs-online-blue" alt="Documentation"></a>
|
|
21
21
|
<a href="https://doi.org/10.5281/zenodo.22726311"><img src="https://zenodo.org/badge/1366702602.svg" alt="DOI"></a>
|
|
22
22
|
<a href="https://github.com/jbeirer/rootfig/actions/workflows/ci.yml"><img src="https://github.com/jbeirer/rootfig/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
23
|
+
<a href="https://github.com/jbeirer/rootfig/actions/workflows/key4hep.yml"><img src="https://github.com/jbeirer/rootfig/actions/workflows/key4hep.yml/badge.svg" alt="Key4hep"></a>
|
|
23
24
|
<a href="https://codecov.io/gh/jbeirer/rootfig"><img src="https://codecov.io/gh/jbeirer/rootfig/branch/main/graph/badge.svg" alt="codecov"></a>
|
|
24
25
|
<a href="https://pypi.org/project/rootfig/"><img src="https://img.shields.io/pypi/v/rootfig.svg" alt="PyPI"></a>
|
|
25
26
|
<a href="https://pypi.org/project/rootfig/"><img src="https://img.shields.io/pypi/pyversions/rootfig.svg" alt="Python"></a>
|
|
@@ -64,7 +65,7 @@ uv add rootfig
|
|
|
64
65
|
```
|
|
65
66
|
|
|
66
67
|
Python 3.12 or newer. No ROOT installation is needed; `TTree` and `RNTuple`
|
|
67
|
-
files are
|
|
68
|
+
files and stored `TH1`/`TH2` histograms are all supported.
|
|
68
69
|
|
|
69
70
|
## Compare samples in one call
|
|
70
71
|
|
|
@@ -80,7 +81,8 @@ rf.plot(
|
|
|
80
81
|
weight="event_weight",
|
|
81
82
|
bins=(50, 0, 200),
|
|
82
83
|
normalize=True,
|
|
83
|
-
|
|
84
|
+
panel="ratio",
|
|
85
|
+
reference="Background",
|
|
84
86
|
)
|
|
85
87
|
```
|
|
86
88
|
|
|
@@ -105,7 +107,7 @@ p = rf.plot(
|
|
|
105
107
|
observed=data,
|
|
106
108
|
selection=baseline,
|
|
107
109
|
stack=True,
|
|
108
|
-
ratio
|
|
110
|
+
panel="ratio",
|
|
109
111
|
logy=True,
|
|
110
112
|
style=style,
|
|
111
113
|
)
|
|
@@ -117,22 +119,51 @@ Everything you get back is a standard object: `p.fig` and `p.ax` are
|
|
|
117
119
|
matplotlib `Figure`/`Axes`, `p.hists` are `hist.Hist` objects, and
|
|
118
120
|
`rf.load(...)` returns Awkward arrays.
|
|
119
121
|
|
|
122
|
+
For histogram files, `Group` sums processes and a `Variable` crops and merges
|
|
123
|
+
their bins just as it bins a tree. `PlotBook` draws the variants from one
|
|
124
|
+
preparation; `rf.ALL` discovers every shared histogram for an overview.
|
|
125
|
+
|
|
126
|
+
```python
|
|
127
|
+
# Histogram files: one per process, already scaled to 5 ab^-1
|
|
128
|
+
ww = rf.Sample("outputs/p8_ee_WW_ecm240.root", label="WW")
|
|
129
|
+
zz = rf.Sample("outputs/p8_ee_ZZ_ecm240.root", label="ZZ")
|
|
130
|
+
zh = rf.Sample("outputs/p8_ee_ZH_ecm240.root", label="ZH")
|
|
131
|
+
fcc = rf.Style(experiment="FCC-ee", status="Simulation", com="240 GeV", lumi="5 ab^-1")
|
|
132
|
+
|
|
133
|
+
book = rf.PlotBook(
|
|
134
|
+
[rf.Group([ww, zz], label="VV"), zh],
|
|
135
|
+
[rf.Variable("zmumu_recoil_m", bins=(200, 120, 140), label="Recoil mass", unit="GeV")],
|
|
136
|
+
variants={"stack": {"stack": True}, "nostack": {"stack": ["VV"]}},
|
|
137
|
+
plot_kwargs={"style": fcc},
|
|
138
|
+
)
|
|
139
|
+
book.save_pdf("zh.pdf") # rf.ALL in place of the list plots every histogram the files share
|
|
140
|
+
```
|
|
141
|
+
|
|
120
142
|
## What you can do
|
|
121
143
|
|
|
122
144
|
- **Select events and objects with readable expressions.** Write cuts such as
|
|
123
145
|
`count(Jet_pt) >= 2` or `Muon_pt > 20`; event and object selections have
|
|
124
146
|
explicit rules, and event weights carry through to each selected object.
|
|
125
|
-
- **Compare samples with a few keywords.** Overlays, stacks, data points and
|
|
126
|
-
|
|
147
|
+
- **Compare samples with a few keywords.** Overlays, stacks, data points and a
|
|
148
|
+
lower panel (ratio, difference, relative difference, pull or significance,
|
|
149
|
+
against a reference you name) share binning and propagate histogram
|
|
150
|
+
uncertainties; bin edges
|
|
127
151
|
and `(n, low, high)` are used as given, while a range inferred from the data
|
|
128
152
|
ignores far outliers, so `-999` sentinels do not set the axis. Normalise to
|
|
129
|
-
unity, density, bin width or luminosity.
|
|
153
|
+
unity, density, bin width or luminosity; stack some samples and overlay the rest.
|
|
154
|
+
Draw several samples as one histogram with `rf.Group`, each keeping its own
|
|
155
|
+
weights, cross section and systematics.
|
|
130
156
|
- **Show systematic uncertainties.** Attach weight, branch, file or
|
|
131
|
-
normalisation variations to a sample; stacks and
|
|
157
|
+
normalisation variations to a sample; stacks and lower panels draw the
|
|
132
158
|
combined statistical and systematic band, and every component stays
|
|
133
159
|
accessible.
|
|
134
160
|
- **Style figures for your analysis.** Add experiment labels, units, log axes
|
|
135
161
|
and broken axes, then refine the result with matplotlib.
|
|
162
|
+
- **Produce whole sets of plots.** `rf.PlotBook` runs one `rf.plot` call over
|
|
163
|
+
variables × selections × variants, lazily, and saves each under a
|
|
164
|
+
deterministic name or all of them as one multipage PDF; `rf.ALL` discovers
|
|
165
|
+
the variables from the files, and `select()` filters the book down while
|
|
166
|
+
iterating on a plot.
|
|
136
167
|
- **Go beyond 1D plots.** Draw 2D histograms, correlations, efficiencies,
|
|
137
168
|
profiles, resolutions and significance panels; produce cut flows and
|
|
138
169
|
summary statistics from the same inputs.
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# API reference
|
|
2
|
+
|
|
3
|
+
## Top level
|
|
4
|
+
|
|
5
|
+
::: rootfig.plot
|
|
6
|
+
::: rootfig.plot2d
|
|
7
|
+
::: rootfig.histogram
|
|
8
|
+
::: rootfig.api.data.histograms
|
|
9
|
+
options:
|
|
10
|
+
heading: rootfig.histograms
|
|
11
|
+
::: rootfig.load
|
|
12
|
+
::: rootfig.summarize
|
|
13
|
+
::: rootfig.correlation
|
|
14
|
+
::: rootfig.cutflow
|
|
15
|
+
::: rootfig.efficiency
|
|
16
|
+
::: rootfig.profile
|
|
17
|
+
::: rootfig.evaluate
|
|
18
|
+
::: rootfig.compare
|
|
19
|
+
::: rootfig.log_bins
|
|
20
|
+
::: rootfig.use_style
|
|
21
|
+
::: rootfig.dark_theme
|
|
22
|
+
|
|
23
|
+
## Descriptions
|
|
24
|
+
|
|
25
|
+
::: rootfig.Sample
|
|
26
|
+
::: rootfig.Group
|
|
27
|
+
::: rootfig.Variable
|
|
28
|
+
::: rootfig.Cut
|
|
29
|
+
::: rootfig.Style
|
|
30
|
+
::: rootfig.Systematic
|
|
31
|
+
|
|
32
|
+
## Batch plotting
|
|
33
|
+
|
|
34
|
+
::: rootfig.PlotBook
|
|
35
|
+
::: rootfig.PlotTask
|
|
36
|
+
::: rootfig.ALL
|
|
37
|
+
::: rootfig.discover_variables
|
|
38
|
+
::: rootfig.model.check_file_stem
|
|
39
|
+
::: rootfig.model.safe_file_stem
|
|
40
|
+
|
|
41
|
+
## Results
|
|
42
|
+
|
|
43
|
+
::: rootfig.Plot
|
|
44
|
+
::: rootfig.Histogram
|
|
45
|
+
::: rootfig.Comparison
|
|
46
|
+
::: rootfig.Uncertainty
|
|
47
|
+
::: rootfig.Summary
|
|
48
|
+
::: rootfig.SummaryTable
|
|
49
|
+
::: rootfig.Cutflow
|
|
50
|
+
::: rootfig.CutflowTable
|
|
51
|
+
::: rootfig.Efficiency
|
|
52
|
+
::: rootfig.Profile
|
|
53
|
+
|
|
54
|
+
## Errors and warnings
|
|
55
|
+
|
|
56
|
+
::: rootfig.errors
|
|
57
|
+
|
|
58
|
+
## Lower layers
|
|
59
|
+
|
|
60
|
+
These are the layers `rf.plot` is built from, usable on their own; names a module
|
|
61
|
+
does not list here are internal. The descriptions in `rootfig.model` are documented
|
|
62
|
+
above.
|
|
63
|
+
|
|
64
|
+
::: rootfig.io
|
|
65
|
+
options:
|
|
66
|
+
members:
|
|
67
|
+
- FileSource
|
|
68
|
+
- ArraySource
|
|
69
|
+
- Source
|
|
70
|
+
- ReadCache
|
|
71
|
+
- as_source
|
|
72
|
+
|
|
73
|
+
::: rootfig.expressions
|
|
74
|
+
options:
|
|
75
|
+
members:
|
|
76
|
+
- Expression
|
|
77
|
+
- parse
|
|
78
|
+
- FUNCTIONS
|
|
79
|
+
- CONSTANTS
|
|
80
|
+
|
|
81
|
+
::: rootfig.selection
|
|
82
|
+
options:
|
|
83
|
+
members:
|
|
84
|
+
- prepare
|
|
85
|
+
- Columns
|
|
86
|
+
- depth_of
|
|
87
|
+
|
|
88
|
+
::: rootfig.histograms
|
|
89
|
+
options:
|
|
90
|
+
members:
|
|
91
|
+
- build_histograms
|
|
92
|
+
- fill
|
|
93
|
+
- sum_histograms
|
|
94
|
+
- uncertainty
|
|
95
|
+
- summarize
|
|
96
|
+
- read_stored
|
|
97
|
+
- compatible_binning
|
|
98
|
+
|
|
99
|
+
<!-- The function shares its name with a submodule; its defining path is unambiguous. -->
|
|
100
|
+
::: rootfig.histograms.normalize.normalize
|
|
101
|
+
options:
|
|
102
|
+
heading: normalize
|
|
103
|
+
heading_level: 3
|
|
104
|
+
|
|
105
|
+
::: rootfig.plotting
|
|
106
|
+
options:
|
|
107
|
+
members:
|
|
108
|
+
- draw_histograms
|
|
109
|
+
- draw_panel
|
|
110
|
+
- draw_hist2d
|
|
111
|
+
- draw_correlation
|
|
112
|
+
- draw_efficiencies
|
|
113
|
+
- draw_profiles
|
|
114
|
+
- split_stack
|
|
115
|
+
- make_figure
|
|
116
|
+
- Layout
|
|
117
|
+
- figure_size
|
|
118
|
+
- add_legend
|
|
119
|
+
- add_stats_box
|
|
120
|
+
- add_text
|
|
121
|
+
- style_context
|