https://github.com/N3PDF/pineappl
Tip revision: c756b4ca839804212c8432d9f2a5491e9d6e6202 authored by Christopher Schwan on 09 October 2023, 15:01:14 UTC
Release v0.6.2
Release v0.6.2
Tip revision: c756b4c
CHANGELOG.md
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [0.6.2] - 09/10/2023
### Added
- added support for Python 3.6 on Linux and PyPy 3.7, 3.8, 3.9 and 3.10 on
MacOS and Windows for packages from <https://pypi.org/project/pineappl/>
- added support for scale uncertainties calculated with the covariance method,
and for combined PDF and scale uncertainties
- added support for installing man pages. See installation instructions for
more information
- added new method `Grid::optimize_using` and its corresponding C function
`pineappl_grid_optimize_using`, which optimize a `Grid` like
`Grid::optimize`, but allow for more fine-grained selection of optimization
options, which are listed in the new bitflags `GridOptFlags`
### Changed
- `pineappl plot` now produces a more cleaned-up matplotlib script, in which
the most important information, which a user may whish to change, is at the
top of the file
- `pineappl pdfunc` was renamed into `pineappl uncert`, which is now also able
to calculate scale uncertainties, which in turn have been removed from
`pineappl convolute`
- `pineappl help` now relies on installed man pages
### Fixed
- fixed a bug in the calculation of asymmetries when multiple scales had been
used
- fixed a bug causing `Grid::evolve` to require more x-grid values than needed;
this result in errors similar to the following: 'no operator for x =
0.0018585113621881083 found' where this x-grid value is a point that is used
in a masked order
## [0.6.1] - 18/07/2023
### Added
- added switch `--no-pdf-unc` to `plot` subcommand to skip the time-consuming
computation of PDF uncertainties
- added new function `pineappl_grid_merge_bins` to the CAPI. This function
corresponds to `Grid::merge_bins` and merges a range of bins together into a
new bin.
- added new function `Grid::split_lumi`, which splits the luminosity such that
it contains a single combination per partonic channel. This function is
available through the CAPI via `pineappl_grid_split_lumi` and via the CLI
through `pineappl write --split-lumi`
### Fixed
- fixed panic when trying to plot DIS observables
## [0.6.0] - 01/06/2023
### Added
- added `--orders` switch to pull to allow the selection of a subset of
perturbative orders
- added the subcommand `help` to show manpages of for each subcommand of
`pineappl`
- the switch `--limit` in `pull` now allows the value `0` for faster pull
computation
- added PDF ratio panel to plot script generated by `pineappl plot`
- added new subcommand `export`, which is able to convert *some* PineAPPL grids
into the APPLgrid format
- added support for [EKO](https://eko.readthedocs.io/en/latest/)'s new file
formats (old file format is still supported) in `pineappl evolve`
- `pineappl import` now also imports fastNLO's metadata:
- `fastNLOTable::GetDimLabels()` is stored as the value of the key
`x{1,2,...}_labels`
- `fastNLOTable::GetXSDescr()` is stored as the value of the key `y_label`
- `fastNLOTable::GetScDescr()` is stored as the value of the key
`fastnlo_scenario`
- removed switch `--silence-libraries` which did not work properly and relied
on non-portable code
### Changed
- raised MSRV to 1.64.0
- the switch `--force-positive` must be given at the same level as
`--silence-lhapdf`
- the CLI subcommands `delete`, `optimize`, `set` and `update` were merged into
the new `write` subcommand. Also the options `--merge-bins`, `--scale` and
`--scale-by-order` were merged into `write`
- the CLI subcommand `remap` was merged into `write` as the option `--remap`,
which expects as a single argument the remapping string. The option `--norm`
was renamed to `--remap-norm`, and `--ignore-obs-norm` was renamed to
`--remap-norm-ignore`. Note that the latter now counts dimensions from zero
onward, instead from one (old behavior)
- the CLI subcommand `info` and `obl` were merged into the new subcommand
`read`
### Fixed
- fixed a bug introduced in v0.5.5 that caused `pineappl convolute` to not show
results for more than two PDF sets
- fixed a bug that caused `pineappl convolute` to ignore a possible `--order`
parameter for additionally given PDF sets
- fixed a bug that caused `pineappl plot` to show wrong pulls if the central
PDF set had asymmetric uncertainties
### Removed
- removed `pineappl sum --integrated`. This subcommand did not always work as
expected, use `pineappl obs --merge-bins` instead
## [0.5.9] - 02/01/2023
### Added
- added new function `pineappl_grid_scale_by_bin` to the CAPI that corresponds
to `Grid::scale_by_bin`
- added new subcommand `analyze`, which performs various analyses. For time
being only one analysis is available: `ckf`. This calculates the per-channel
K factors which can be compared against the per-bin K factors
- added switch `--orders` to `evolve` to allow evolving a subset of orders of
the full grid
- added new switch `--fktable` to the CLI subcommand `pineappl obl` to detect
whether a grid is also an FK table
- added new method `Grid::evolve_info` which extracts the information need to
generate EKOs. This function is less restrictive than `Grid::axes`, which it
will replace
- `pineappl import` now converts also scale-variation log-grids from
flexible-scale fastNLO tables
### Fixed
- fixed bug in the calculation of asymmetries when multiple scales were
requested
## [0.5.8] - 21/10/2022
### Added
- added new method `Grid::evolve`, which will succeed `Grid::convolute_eko` and
is more robust, faster and easier to understand
### Fixed
- fixed a bug in `LumiCache::setup`, which caused wrong results returned by
`Grid::convolute`, if `lumi_cache` is reused for a second grid with different
Q2/x1/x2 parameters
## [0.5.7] - 05/10/2022
### Fixed
- the importer did not depend on the right versions of `pineappl_applgrid` and
`pineappl_fastnlo`
## [0.5.6] - 04/10/2022
### Added
- added `--dis-pid` switch to `import` subcommand
- added `--no-optimize` switch to `import` subcommand
### Changed
- improved documentation
- changed `--silence-fastnlo` to `--silence-libraries`, which now silences also
APPLgrid
- improved `import` converter, which now is able to convert most APPLgrids and
fastNLO tables on ploughshare
### Fixed
- fixed corner cases of the `REMAPPING` string that were handled incorrectly
- made most tests of `pineappl` integration tests, which resolves that problem
that `cargo build` had to be called before
- fixed problem in `Grid::convolute_eko` that lead to wrong result when
subgrids had different x-grids
## [0.5.5] - 25/08/2022
### Added
- added support for choosing a specific member instead of the averaging over
all PDFs for the central results for the `pdfunc`, `plot` and `pull`
subcommands. For instance, `pineappl pdfunc ... NNPDF40_nnlo_as_01180`
calculates the central value using the average over all replicas, whereas
`pineappl pdfunc ... NNPDF40_nnlo_as_01180/0` uses the zeroth member. The
calculated uncertainties are the same for both
- added support for converting APPLgrids in `import`
- added support plotting asymmetries with `pineappl plot`
- added new function to the C API, `pineappl_grid_clone`, which clones a given
grid
### Changed
- renamed the switch `--silence-fastnlo` to `--silence-libraries`, which also
covers APPLgrid. For backwards compatibility the previous name still works
## [0.5.4] - 08/07/2022
### Added
- added new switch `--force-positive` to CLI to cut out negative PDF values
- exposed scale variation parameters to the Python API
- added the C functions `pineappl_grid_key_value` to read out metadata and
`pineappl_string_delete` to delete string allocated from the previous
function
## [0.5.3] - 22/06/2022
### Added
- added new switch `--ignore-bin-limits` to `diff` that ignores possibly
different bin limits. However, the number of total bins must still be the
same between both grids
- added support for
[FK tables](https://docs.nnpdf.science/data/th-data-files.html) in the
subcommand `import`
- added new switches `--digits-abs`, `--digits-rel` and `--digits` to various
subcommand to influence the number of (fractional) digits printed
- PDF relabeling support has been added. This means that all subcommands
understand PDF specifications of the type `pdfset=label`, where `pdfset` must
be an LHAPDF identifier, and results using this set are displayed using
`label` instead of `pdfset`.
- added bin-dependent rescaling method. To use it through the CLI use `pineappl
ops --scale-by-bin=`
### Changed
- slightly changed the output of the CLI; indices of orders, bins and
luminosities are now consistently abbreviated by `o`, `b` and `l`
- changed the output of the CLI to also print the units of the numbers
## [0.5.2] - 29/03/2022
### Added
- added new subcommand `import`, which at this stage converts fastNLO tables to
PineAPPL grids. This program was previously an example and written in C++ and
now has been removed.
## [0.5.1] - 01/03/2022
### Added
- added the `--bins` option to the CLI subcommand `sum`, which allows to sum
bins together
- added the `--fk-table` option to the CLI subcommand `optimize`, which allows
the optmization of FK tables based on assumptions of heavy-flavor PDFs
- added new subcommand `ops` which collects various modifying operations on
grids. The switches `--cc1` and `--cc2` charge conjugate the first and second
PDF, respectively, and charge conjugates the luminosity function
correspondingly such that the convolutions are unchanged
### Changed
- when running `pineappl convolute ... -s 1` the scale-variation columns are no
longer shown. The output would be zero, but this doesn't make sense. All
other values of `-s` are unaffected.
- added a further optimization to `Grid::optimize` that strips empty orders
### Fixed
- fixed `pineappl obl --bins`, which had the wrong column headers if there were
more than one observable
## [0.5.0] - 11/02/2022
### Added
- added support for DIS processes, which feature only a single hadron in the
initial state
- added new C API function `pineappl_grid_set_remapper`
- added new subcommand `sum` to sum over bins of a grid
- added new subcommand `pull` to view where the differences between two PDF
sets are coming from
- added an example program using the C API to convert fastNLO tables (of type
`fastNLOCoeffAddFix`). Tables of type `fastNLOCoeffAddFlex` are not supported
yet
- added a new switch `--subgrid-pull` to the `plot` subcommand; this generates
several plots showing the where the pull between two PDFs comes from in `x1`
and `x2`, and also in rapidity `y` and invariant mass `M`
- improved the `optimize` method such that it removes all entries of a
luminosity function that are empty across orders and bins. This required a
change in `merge`, which now allows the merge of grids with different
luminosities and orders
- enabled relabeling PDF sets, which means that they can now specified as
`LHAPDF-set-name=label`, which uses the set `LHAPDF-set-name` to load it from
LHAPDF, but `label` is the name that appears in the plot legend
- added new options to the `subgrids` command: `--muf`, `--mur`, `--x1` and
`--x2` to print the corresponding grid values and `--stats` to print
information about the space requirements of the subgrid type
- added new subcommand `--delete`, which allows to delete bins from a grid
- added new subcommand `obl`, which stands for orders (o), bins (b) and lumis
(l), that shows information about the all contained subgrids in a grid;
`pineappl obl -l` will replace `pineappl lumis` in the future
- added options `--orders1`, `--orders2`, `--scale1` and `--scale2` to the
subcommand `pineappl diff`, which allow the selection of orders and scaling
of grids that should be compared
### Changed
- The command-line interface `pineappl` no longer prints both the differential
and integrated cross sections. Instead it either prints the differential
cross sections, or, if the switch `-i` or `--integrated` is given, the
integrated cross sections (without bin limits and/or normalizations) are
printed
- the C API functions `pineappl_subgrid_q2_slice`,
`pineappl_subgrid_filled_q2_slices` and `pineappl_subgrid_replace_and_delete`
have been replaced by `pineappl_grid_export_q2_slice`,
`pineappl_grid_nonzero_q2_slices` and `pineappl_grid_replace_and_delete`,
respectively.
- the C API function `pineappl_subgrid_fill_q2_slice` has been replaced by
function `pineappl_subgrid_import_q2_slice`
- the C API function `pineappl_subgrid_new` has been replaced by a function
with the similar name but different arguments
- changed the output of the `pineappl` subcommand `channels`, `convolute` and
`pdf_uncertainty`. By default only the differential cross sections are shown
(integrated numbers divided by bin widths), but the flag `-i` or
`--integrated` can be given to switch to the integrated numbers, which are
not divided by bin widths.
- slightly improved file sizes by introducing a type for empty subgrids:
`EmptySubgridV1`
- vastly improved the output of the `plot` subcommand: bounding boxes are
properly calculated now, added support for higher-dimensional distributions
- changed the `plot` subcommand such that the legend is put in between panels,
thereby producing less overlapping elements
- replaced the C API functions `pineappl_subgrid_new` and
`pineappl_subgrid_import_q2_slice` with `pineappl_subgrid_new2` and
`pineappl_subgrid_import_mu2_slice`, respectively. The latter support
independent renormalization and factorization scales
- changed the names of `pineappl_grid_export_q2_slice` and
`pineappl_grid_nonzero_q2_slices` to `pineappl_grid_export_mu2_slice` and
`pineappl_grid_nonzero_mu2_slices`, respectively
- replaced C API-based Python interface with PyO3-based one
- the subcommand `subgrids` now does not print empty grids; the old behavior
can be restored with the new switch `--show-empty`
- `pineappl diff` now behaves differently whenever luminities are different and
errors out when this is the case. This can be adjusted using
`--ignore-lumis`
## [0.4.1] - 25/03/2021
### Fixed
- added fallback options to `git_version` that prevented uploading
`pineappl_capi` and `pineappl_cli` to crates.io
## [0.4.0] - 25/03/2021
### Added
- added access to the contents of Lagrange-interpolation grids
- added more C functions previously missing: `pineappl_grid_bin_limits`,
`pineappl_grid_lumi`, `pineappl_lumi_combinations`, `pineappl_lumi_count`,
`pineappl_lumi_entry`
- added `remap` subcommand which allows to change the binning and dimensions of
a distribution
- added global `--silence_lhapdf` switch to suppress the output of LHAPDF
- added new subgrid type: `LagrangeSparseGrid`, which can be generated using
the new subcommand `optimize` from existing grids; this data structure uses
less memory and is a bit faster
- added new subcommand `optimize`, which optimizes the size for each grid, both
in memory and when written as a file
- added new subgrid type `LagrangeSubgridV2`, which allows for different `x1`
and `x2` limits, for example for DIS processes
- added new switches to the subcommand `info`: `--get`, `--keys`, `--show`,
which lets one read a single or all key-values pairs of each grid file.
- added new subcommand `set` which allows to modify the key-value storage
- added new C functions `pineappl_grid_set_key_value` and
`pineappl_grid_optimize`
- added a new switch `--ignore_orders` to the diff subcommand, which sums over
all orders and is therefore useful if two grids are compared that should have
the same contents in principle, but in practice have different orders
- added new subcommand `plot`, which allows to plot the information contained
in a grid
### Changed
- the order columns of the subcommand `diff` are now properly sorted and do not
change randomly.
- the subcommand `diff` now shows the differential cross sections of both grids
with the same number of digits as the subcommands `convolute` and similar.
- changed the default maximum value of Q from 1 TeV to 10 TeV and the number of
grid points in Q^2 from 30 to 40
- Removed `Grid::bin_limit` and replaced it with `Grid::bin_info`
- in the C API the type `uintptr_t` has been changed to the more common type
`size_t`
- changed the default `LagrangeSubgrid` type from `V1` to `V2`. This subgrid
type supports DIS and allows to reconstruct static scales. If a static scale
has been detected, `optimize` can remove the interpolation in the Q^2
dimension.
### Fixed
- the subcommand `diff` did not show differences in per cent, although it
printed a per cent sign. Now it shows relative differences, which is always
useful, even when the differences are smaller than sub-per mille.
## [0.3.0] - 20/08/2020
### Added
- added the options `--absolute`, `--orders`, and `--lumis` to the subcommand
`channels`
- added Python interface to the C API, the the folder `wrappers/python` and the
example in `examples/python-dy-aa`
- added the option `--normalize` to the subcommand `orders`, which can be used
to specify the orders that should be used to normalize to.
### Fixed
- added missing support for LHAIDs for `pdf_uncertainty`
- fixed a case where merging two grids fails, because the bin limits are
numerically not exactly the same
## [0.2.0] - 02/08/2020
### Added
- the Lagrange-interpolation grid of PineAPPL now supports fully dynamic
factorisation/renormalisation scales
- `pineappl` has a new subcommand `pdf_uncertainty` to calculate PDF
uncertainties
- in `examples/capi-dy-aa` one can find an example how to use the C API
- added method `Grid::with_subgrid_type` that allows the selection of a custom
Subgrid type
- added `--absolute` switch to the subcommand `convolute` of `pineappl`, which
shows all values of the scale variation as absolute numbers
- added a PDF and alphas to `Grid::convolute` to speed up convolutions
- added `--orders` switch to the subcommand `pdf_uncertainty`, to caclulate the
PDF uncertainty only with the specified perturbative orders
- added new subcommand `info` which shows the highest orders in alphas and
alpha
- added new subcommand `diff` which compares two grids with each other
### Changed
- the parameter `reweight` of `SubgridParams` is set to `true` by default now
(was `false` before)
- improved the output of `pineappl`, bin widths are printed now
### Fixed
- fixed subcommand `orders` of `pineappl` to normalise each leading order to
the sum of all leading orders, not only the first
- fixed subcommand `pdf_uncertainty` of `pineappl` to show the correct
integrated results (bin width was missing)
- fixed calculation of the scale variation
## [0.1.0] - 11/06/2020
- first release
[Unreleased]: https://github.com/NNPDF/pineappl/compare/v0.6.2...HEAD
[0.6.2]: https://github.com/NNPDF/pineappl/compare/v0.6.1...v0.6.2
[0.6.1]: https://github.com/NNPDF/pineappl/compare/v0.6.0...v0.6.1
[0.6.0]: https://github.com/NNPDF/pineappl/compare/v0.5.9...v0.6.0
[0.5.9]: https://github.com/NNPDF/pineappl/compare/v0.5.8...v0.5.9
[0.5.8]: https://github.com/NNPDF/pineappl/compare/v0.5.7...v0.5.8
[0.5.7]: https://github.com/NNPDF/pineappl/compare/v0.5.6...v0.5.7
[0.5.6]: https://github.com/NNPDF/pineappl/compare/v0.5.5...v0.5.6
[0.5.5]: https://github.com/NNPDF/pineappl/compare/v0.5.4...v0.5.5
[0.5.4]: https://github.com/NNPDF/pineappl/compare/v0.5.3...v0.5.4
[0.5.3]: https://github.com/NNPDF/pineappl/compare/v0.5.2...v0.5.3
[0.5.2]: https://github.com/NNPDF/pineappl/compare/v0.5.1...v0.5.2
[0.5.1]: https://github.com/NNPDF/pineappl/compare/v0.5.0...v0.5.1
[0.5.0]: https://github.com/NNPDF/pineappl/compare/v0.4.1...v0.5.0
[0.4.1]: https://github.com/NNPDF/pineappl/compare/v0.4.0...v0.4.1
[0.4.0]: https://github.com/NNPDF/pineappl/compare/v0.3.0...v0.4.0
[0.3.0]: https://github.com/NNPDF/pineappl/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/NNPDF/pineappl/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/NNPDF/pineappl/compare/v0.0.0...v0.1.0