diff --git a/0001-Correct-the-lhapdf-config-help-message-to-use-includ.patch b/0001-Correct-the-lhapdf-config-help-message-to-use-includ.patch new file mode 100644 index 0000000..911a430 --- /dev/null +++ b/0001-Correct-the-lhapdf-config-help-message-to-use-includ.patch @@ -0,0 +1,50 @@ +From d49e808ed6c027db3a682a731d74ec3ffa7c6076 Mon Sep 17 00:00:00 2001 +From: Andy Buckley +Date: Mon, 9 Mar 2026 19:33:39 +0000 +Subject: [PATCH] Correct the lhapdf-config help message to use --includedir + rather than --incdir, but also add a backward-compatibility handling for + --incdir if given. Thanks to Mark Sutton. + +--- + ChangeLog | 6 ++++++ + bin/lhapdf-config.in | 3 ++- + 2 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index cd35d70..7eabc3f 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,9 @@ ++2026-03-09 Andy Buckley ++ ++ * Correct the lhapdf-config help message to use --includedir ++ rather than --incdir, but also add a backward-compatibility ++ handling for --incdir if given. Thanks to Mark Sutton. ++ + 2026-02-19 Andy Buckley + + * Version 6.5.6 release. +diff --git a/bin/lhapdf-config.in b/bin/lhapdf-config.in +index b62a217..d13b6f1 100644 +--- a/bin/lhapdf-config.in ++++ b/bin/lhapdf-config.in +@@ -13,7 +13,7 @@ Options: + --help | -h : show this help message + + --prefix : show the installation prefix (cf. autoconf) +- --incdir : show the path to the LHAPDF C++ header directory ++ --includedir : show the path to the LHAPDF C++ header directory + --libdir : show the path to the LHAPDF library directory + --datadir : show the path to the LHAPDF data directory + --pythonpath|--pydir : show the path(s) to the directory containing LHAPDF's Python package +@@ -48,6 +48,7 @@ for opt in "$@"; do + --version) echo "@PACKAGE_VERSION@" && exit 0 ;; + --prefix) show_prefix=1 ;; + --includedir) show_incdir=1 ;; ++ --incdir) show_incdir=1 ;; #< TODO: for backward compatibility from 6.5.7, remove eventually + --libdir) show_libdir=1 ;; + --datadir) show_datdir=1 ;; + --pythonpath) show_pypath=1 ;; +-- +2.53.0 + diff --git a/0001-Fix-double-I-in-lhapdf-config-cflags-output.patch b/0001-Fix-double-I-in-lhapdf-config-cflags-output.patch new file mode 100644 index 0000000..f8959a8 --- /dev/null +++ b/0001-Fix-double-I-in-lhapdf-config-cflags-output.patch @@ -0,0 +1,76 @@ +From d4dd6202016754052f7f7f0cfedd3913a08afbbf Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Fri, 3 Apr 2026 07:45:56 +0200 +Subject: [PATCH] Fix double -I in lhapdf-config --cflags output Don't put + -L/usr/lib and -L/usr/lib64 in build flags Fix pkg-config --define-variable + libdir=/path --libs lhapdf + +--- + ChangeLog | 6 ++++++ + bin/lhapdf-config.in | 2 +- + configure | 9 +++++++-- + lhapdf.pc.in | 4 ++-- + 4 files changed, 16 insertions(+), 5 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 7eabc3f..74f4c7e 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,9 @@ ++2026-04-03 Mattias Ellert ++ ++ * Fix double -I in lhapdf-config --cflags output ++ * Don't put -L/usr/lib and -L/usr/lib64 in build flags ++ * Fix pkg-config --define-variable libdir=/path --libs lhapdf ++ + 2026-03-09 Andy Buckley + + * Correct the lhapdf-config help message to use --includedir +diff --git a/bin/lhapdf-config.in b/bin/lhapdf-config.in +index d13b6f1..4b5afcd 100644 +--- a/bin/lhapdf-config.in ++++ b/bin/lhapdf-config.in +@@ -102,7 +102,7 @@ if [ "$show_iflags" -eq 1 ]; then + ilhapdf="@includedir@" + test -n "$ilhapdf" && OUT="$OUT -I${ilhapdf}" + iyamlcpp="@YAML_CPP_CPPFLAGS@" +- test -n "$iyamlcpp" && OUT="$OUT -I${iyamlcpp}" ++ test -n "$iyamlcpp" && OUT="$OUT ${iyamlcpp}" + fi + if [ "$show_Lflags" -eq 1 ]; then + llhapdf="@libdir@" +diff --git a/configure b/configure +index 7fafae6..d530cd7 100644 +--- a/configure ++++ b/configure +@@ -19972,8 +19972,13 @@ + YAML_CPP_CPPFLAGS="" + YAML_CPP_LDFLAGS="" + if test "x$yaml_cpp_prefix" != "xno"; then +- YAML_CPP_CPPFLAGS="-I$yaml_cpp_prefix/include" +- YAML_CPP_LDFLAGS="-L$yaml_cpp_prefix/lib -L$yaml_cpp_prefix/lib64 -lyaml-cpp" ++ if test "x$yaml_cpp_prefix" = "x/usr"; then ++ YAML_CPP_CPPFLAGS="" ++ YAML_CPP_LDFLAGS="-lyaml-cpp" ++ else ++ YAML_CPP_CPPFLAGS="-I$yaml_cpp_prefix/include" ++ YAML_CPP_LDFLAGS="-L$yaml_cpp_prefix/lib -L$yaml_cpp_prefix/lib64 -lyaml-cpp" ++ fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for main in -lyaml-cpp" >&5 + printf %s "checking for main in -lyaml-cpp... " >&6; } + if test ${ac_cv_lib_yaml_cpp_main+y} +diff --git a/lhapdf.pc.in b/lhapdf.pc.in +index 964d0ae..1a7d80a 100644 +--- a/lhapdf.pc.in ++++ b/lhapdf.pc.in +@@ -8,5 +8,5 @@ Name: lhapdf + Description: LHAPDF parton density library + URL: https://lhapdf.hepforge.org + Version: @VERSION@ +-Libs: -L@libdir@ @YAML_CPP_LDFLAGS@ -lLHAPDF +-Cflags: -I@includedir@ @YAML_CPP_CPPFLAGS@ ++Libs: -L${libdir} @YAML_CPP_LDFLAGS@ -lLHAPDF ++Cflags: -I${includedir} @YAML_CPP_CPPFLAGS@ +-- +2.53.0 + diff --git a/lhapdf-soname.patch b/lhapdf-soname.patch deleted file mode 100644 index 45fc089..0000000 --- a/lhapdf-soname.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff -ur LHAPDF-6.3.0.orig/src/Makefile.am LHAPDF-6.3.0/src/Makefile.am ---- LHAPDF-6.3.0.orig/src/Makefile.am 2020-07-01 16:34:05.000000000 +0200 -+++ LHAPDF-6.3.0/src/Makefile.am 2020-07-17 14:22:47.194614043 +0200 -@@ -26,6 +26,7 @@ - libLHAPDFPaths_la_CPPFLAGS = $(AM_CPPFLAGS) -DLHAPDF_INSTALL_PREFIX=\"$(prefix)\" -DLHAPDF_DATA_PREFIX=\"$(datadir)\" - - libLHAPDF_la_LIBADD = libLHAPDFInfo.la libLHAPDFPaths.la -+libLHAPDF_la_LDFLAGS = -release ${PACKAGE_VERSION} - - if ENABLE_LHAGLUE - noinst_LTLIBRARIES += libLHAPDFGlue.la -Endast i LHAPDF-6.3.0/src/: Makefile.am~ -diff -ur LHAPDF-6.3.0.orig/src/Makefile.in LHAPDF-6.3.0/src/Makefile.in ---- LHAPDF-6.3.0.orig/src/Makefile.in 2020-07-17 14:26:10.714078898 +0200 -+++ LHAPDF-6.3.0/src/Makefile.in 2020-07-17 14:23:06.041656793 +0200 -@@ -150,6 +150,9 @@ - am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) - am__v_lt_0 = --silent - am__v_lt_1 = -+libLHAPDF_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ -+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ -+ $(CXXFLAGS) $(libLHAPDF_la_LDFLAGS) $(LDFLAGS) -o $@ - libLHAPDFGlue_la_LIBADD = - am__libLHAPDFGlue_la_SOURCES_DIST = LHAGlue.cc - @ENABLE_LHAGLUE_TRUE@am_libLHAPDFGlue_la_OBJECTS = \ -@@ -448,6 +451,7 @@ - libLHAPDFPaths_la_CPPFLAGS = $(AM_CPPFLAGS) -DLHAPDF_INSTALL_PREFIX=\"$(prefix)\" -DLHAPDF_DATA_PREFIX=\"$(datadir)\" - libLHAPDF_la_LIBADD = libLHAPDFInfo.la libLHAPDFPaths.la \ - $(am__append_3) -+libLHAPDF_la_LDFLAGS = -release ${PACKAGE_VERSION} - @ENABLE_LHAGLUE_TRUE@libLHAPDFGlue_la_SOURCES = LHAGlue.cc - @ENABLE_LHAGLUE_TRUE@libLHAPDFGlue_la_CPPFLAGS = $(AM_CPPFLAGS) -DENABLE_LHAGLUE_CXX - all: all-recursive -@@ -531,7 +535,7 @@ - } - - libLHAPDF.la: $(libLHAPDF_la_OBJECTS) $(libLHAPDF_la_DEPENDENCIES) $(EXTRA_libLHAPDF_la_DEPENDENCIES) -- $(AM_V_CXXLD)$(CXXLINK) -rpath $(libdir) $(libLHAPDF_la_OBJECTS) $(libLHAPDF_la_LIBADD) $(LIBS) -+ $(AM_V_CXXLD)$(libLHAPDF_la_LINK) -rpath $(libdir) $(libLHAPDF_la_OBJECTS) $(libLHAPDF_la_LIBADD) $(LIBS) - - libLHAPDFGlue.la: $(libLHAPDFGlue_la_OBJECTS) $(libLHAPDFGlue_la_DEPENDENCIES) $(EXTRA_libLHAPDFGlue_la_DEPENDENCIES) - $(AM_V_CXXLD)$(CXXLINK) $(am_libLHAPDFGlue_la_rpath) $(libLHAPDFGlue_la_OBJECTS) $(libLHAPDFGlue_la_LIBADD) $(LIBS) diff --git a/lhapdf.spec b/lhapdf.spec index b73cfc2..69013a3 100644 --- a/lhapdf.spec +++ b/lhapdf.spec @@ -1,24 +1,28 @@ Name: lhapdf -Version: 6.5.4 -Release: 1%{?dist} +Version: 6.5.6 +Release: 6%{?dist} Summary: Les Houches Accord PDF Interface License: GPL-3.0-only URL: https://lhapdf.hepforge.org/ Source0: https://www.hepforge.org/archive/lhapdf/LHAPDF-%{version}.tar.gz -# Add soname to the shared library, cf. SuSE's spec file. -Patch0: %{name}-soname.patch +# PDFs used during testing +Source1: https://lhapdfsets.web.cern.ch/current/CT10nlo.tar.gz +Source2: https://lhapdfsets.web.cern.ch/current/MSTW2008nlo68cl.tar.gz +Source3: https://lhapdfsets.web.cern.ch/current/NNPDF31_lo_as_0130.tar.gz +# Missing file in source tarfile +# See: https://gitlab.com/hepcedar/lhapdf/-/merge_requests/120 +Source4: testunc.py +# https://gitlab.com/hepcedar/lhapdf/-/merge_requests/123 +Patch0: 0001-Correct-the-lhapdf-config-help-message-to-use-includ.patch +# https://gitlab.com/hepcedar/lhapdf/-/merge_requests/124 +Patch1: 0001-Fix-double-I-in-lhapdf-config-cflags-output.patch BuildRequires: make BuildRequires: gcc-c++ -BuildRequires: python%{python3_pkgversion}-Cython -%if %{?rhel}%{!?rhel:0} == 7 -BuildRequires: python2-devel -%endif -BuildRequires: python%{python3_pkgversion}-devel -%if %{?rhel}%{!?rhel:0} == 7 -BuildRequires: python%{python3_other_pkgversion}-devel -%endif +BuildRequires: yaml-cpp-devel +BuildRequires: python3-Cython +BuildRequires: python3-devel BuildRequires: doxygen # Obsolete LHAPDF5 packages not provided by LHAPDF6 @@ -53,48 +57,22 @@ LHAPDF6 is documented in more detail in http://arxiv.org/abs/1412.7420 %package devel Summary: Les Houches Accord PDF Interface - development files Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: yaml-cpp-devel %description devel This package provides development files of LHAPDF, including C++ bindings. -%if %{?rhel}%{!?rhel:0} == 7 -%package -n python2-%{name} -Summary: Les Houches Accord PDF Interface - Python 2 module -%py_provides python2-%{name} +%package -n python3-%{name} +Summary: Les Houches Accord PDF Interface - Python 3 module +%py_provides python3-%{name} Requires: %{name}%{?_isa} = %{version}-%{release} -%description -n python2-%{name} -This package provides Python 2 bindings for LHAPDF. - +%description -n python3-%{name} +This package provides Python 3 bindings for LHAPDF. This package also provides a script called "lhapdf" which can be used to query the catalog of PDF sets and to install and update them from the command line. It accepts commands "list", "update", "install" and "upgrade". Please run "lhapdf help" for full usage instructions. -%endif - -%package -n python%{python3_pkgversion}-%{name} -Summary: Les Houches Accord PDF Interface - Python 3 module -%py_provides python%{python3_pkgversion}-%{name} -Requires: %{name}%{?_isa} = %{version}-%{release} - -%description -n python%{python3_pkgversion}-%{name} -This package provides Python 3 bindings for LHAPDF. -%if %{?rhel}%{!?rhel:0} != 7 -This package also provides a script called "lhapdf" which can be used -to query the catalog of PDF sets and to install and update them from -the command line. It accepts commands "list", "update", "install" and -"upgrade". Please run "lhapdf help" for full usage instructions. -%endif - -%if %{?rhel}%{!?rhel:0} == 7 -%package -n python%{?python3_other_pkgversion}-%{name} -Summary: Les Houches Accord PDF Interface - Python 3 module -%py_provides python%{python3_other_pkgversion}-%{name} -Requires: %{name}%{?_isa} = %{version}-%{release} - -%description -n python%{?python3_other_pkgversion}-%{name} -This package provides Python 3 bindings for LHAPDF. -%endif %package doc Summary: Les Houches Accord PDF Interface - documentation @@ -105,65 +83,67 @@ This package provides API documentation and examples for LHAPDF. %prep %setup -q -n LHAPDF-%{version} -%patch0 -p1 +%patch -P0 -p1 +%patch -P1 -p1 -# Remove cython generated file -rm wrappers/python/lhapdf.cpp +mkdir tests/SETS +tar -z -x -f %{SOURCE1} -C tests/SETS +tar -z -x -f %{SOURCE2} -C tests/SETS +tar -z -x -f %{SOURCE3} -C tests/SETS -%if %{?rhel}%{!?rhel:0} == 7 -sed 's!cython!cython%{python3_version}!' \ - -i wrappers/python/Makefile.am wrappers/python/Makefile.in -%endif +cp -p %{SOURCE4} tests + +# Remove bundled yaml-cpp +rm -rf src/yamlcpp/ # Fix shebangs -%if %{?rhel}%{!?rhel:0} != 7 -sed 's!/usr/bin/env python!%{__python3}!' -i bin/lhapdf examples/*.py -%else -sed 's!/usr/bin/env python!%{__python2}!' -i bin/lhapdf examples/*.py -%endif +sed 's!/usr/bin/env python3!%{__python3}!' -i bin/lhapdf +sed 's!/usr/bin/env python!%{__python3}!' -i examples/*.py sed 's!/usr/bin/env bash!/bin/bash!' -i bin/lhapdf-config.in %build -%configure --disable-static --disable-silent-rules PYTHON=%{__python3} --docdir=%{_pkgdocdir} -%make_build +%configure \ + --disable-static \ + --with-yaml-cpp \ + --enable-librelease \ + --docdir=%{_pkgdocdir} \ + PYTHON=%{__python3} -%if %{?rhel}%{!?rhel:0} == 7 -( cd wrappers/python ; %make_build PYTHON=%{__python2} ) -( cd wrappers/python ; %make_build PYTHON=%{__python3_other} ) +%if %{?rhel}%{!?rhel:0} == 8 +# cython version on RHEL 8 is too old and generates broken code. +# touch the pregenerated bundled source file to prevent regeneration. +# See: https://gitlab.com/hepcedar/lhapdf/-/merge_requests/122 +touch wrappers/python/lhapdf.cpp +%else +rm wrappers/python/lhapdf.cpp %endif +%make_build + # Build doxygen documentation %make_build doxy %install -%make_install PYTHON_PATH=%{python3_sitearch} +%make_install -cat << EOF > %{buildroot}%{python3_sitearch}/%{name}-%{version}.egg-info +mkdir %{buildroot}%{python3_sitearch}/%{name}-%{version}.dist-info +cat << EOF > %{buildroot}%{python3_sitearch}/%{name}-%{version}.dist-info/METADATA Name: %{name} Version: %{version} EOF -%if %{?rhel}%{!?rhel:0} == 7 -( cd wrappers/python ; %make_install PYTHON=%{__python2} PYTHON_PATH=%{python2_sitearch} ) -cat << EOF > %{buildroot}%{python2_sitearch}/%{name}-%{version}.egg-info -Name: %{name} -Version: %{version} -EOF -( cd wrappers/python ; %make_install PYTHON=%{__python3_other} PYTHON_PATH=%{python3_other_sitearch} ) -cat << EOF > %{buildroot}%{python3_other_sitearch}/%{name}-%{version}.egg-info -Name: %{name} -Version: %{version} -EOF -%endif - rm %{buildroot}%{_libdir}/libLHAPDF.la find %{buildroot}%{_pkgdocdir}/examples -type f -a '!' -name '*.*' -delete %check +# Workaround incomplete test environment +# See: https://gitlab.com/hepcedar/lhapdf/-/merge_requests/121 +cp -p pdfsets.index tests/SETS +cp -p lhapdf.conf tests/SETS +export PYTHONPATH=$PWD/wrappers/python/build +export LD_LIBRARY_PATH=$PWD/src/.libs %make_build check -%ldconfig_scriptlets - %files %{_libdir}/libLHAPDF-%{version}.so %{_datadir}/LHAPDF @@ -176,32 +156,85 @@ find %{buildroot}%{_pkgdocdir}/examples -type f -a '!' -name '*.*' -delete %{_libdir}/libLHAPDF.so %{_libdir}/pkgconfig/%{name}.pc -%if %{?rhel}%{!?rhel:0} == 7 -%files -n python2-%{name} +%files -n python3-%{name} %{_bindir}/%{name} -%{python2_sitearch}/%{name}-%{version}.egg-info -%{python2_sitearch}/%{name} -%endif - -%files -n python%{python3_pkgversion}-%{name} -%if %{?rhel}%{!?rhel:0} != 7 -%{_bindir}/%{name} -%endif -%{python3_sitearch}/%{name}-%{version}.egg-info +%{python3_sitearch}/%{name}-%{version}.dist-info %{python3_sitearch}/%{name} -%if %{?rhel}%{!?rhel:0} == 7 -%files -n python%{?python3_other_pkgversion}-%{name} -%{python3_other_sitearch}/%{name}-%{version}.egg-info -%{python3_other_sitearch}/%{name} -%endif - %files doc %doc %{_pkgdocdir}/doxygen %doc %{_pkgdocdir}/examples %license COPYING %changelog +* Wed Jul 22 2026 Python Maint - 6.5.6-6 +- Rebuilt for Python 3.15.0b4 ABI change + +* Thu Jul 16 2026 Fedora Release Engineering - 6.5.6-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + +* Wed Jun 03 2026 Python Maint - 6.5.6-4 +- Rebuilt for Python 3.15 + +* Fri Apr 03 2026 Mattias Ellert - 6.5.6-3 +- More fixes to lhapdf-config and lhapdf.pc + +* Sat Mar 28 2026 Mattias Ellert - 6.5.6-2 +- Correct the lhapdf-config output (backport from upstream git) + +* Thu Mar 05 2026 Mattias Ellert - 6.5.6-1 +- Update to version 6.5.6 +- Add PDFs used by new tests to the source RPM +- Add test file missing from the source tarfile to the source RPM + +* Fri Jan 16 2026 Fedora Release Engineering - 6.5.5-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Fri Dec 05 2025 Orion Poplawski - 6.5.5-2 +- Rebuild for yaml-cpp 0.8 (epel10) + +* Fri Sep 19 2025 Python Maint - 6.5.5-6 +- Rebuilt for Python 3.14.0rc3 bytecode + +* Fri Aug 15 2025 Python Maint - 6.5.5-5 +- Rebuilt for Python 3.14.0rc2 bytecode + +* Thu Jul 24 2025 Fedora Release Engineering - 6.5.5-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Mon Jun 02 2025 Python Maint - 6.5.5-3 +- Rebuilt for Python 3.14 + +* Fri Jan 17 2025 Fedora Release Engineering - 6.5.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Jan 01 2025 Mattias Ellert - 6.5.5-1 +- Update to version 6.5.5 +- Drop soname patch, use new configure option --enable-librelease instead +- Unbundle yaml-cpp, using new configure option --with-yaml-cpp +- EPEL 7 EOL specfile cleanup + +* Thu Jul 18 2024 Fedora Release Engineering - 6.5.4-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Fri Jun 07 2024 Python Maint - 6.5.4-7 +- Rebuilt for Python 3.13 + +* Mon Jun 03 2024 Mattias Ellert - 6.5.4-6 +- Eliminate use of obsolete patchN syntax + +* Thu Jan 25 2024 Fedora Release Engineering - 6.5.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 6.5.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Jul 20 2023 Fedora Release Engineering - 6.5.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jun 13 2023 Python Maint - 6.5.4-2 +- Rebuilt for Python 3.12 + * Mon Mar 13 2023 Mattias Ellert - 6.5.4-1 - Update to version 6.5.4 diff --git a/sources b/sources index 2954e5d..70e3f3b 100644 --- a/sources +++ b/sources @@ -1 +1,4 @@ -SHA512 (LHAPDF-6.5.4.tar.gz) = 0e39f7f298e8c72eece9c3d19f471f48b3ee045cd54ecd318e0b2d60ada4f01a2151e6b2b5f27fccdf10c1043352a673492f8792be1964df7eafbe931282a83b +SHA512 (LHAPDF-6.5.6.tar.gz) = 03cf1c848b127d76ab6f13b852743827c00ae9312721dcd1fd17a9d9d88fa50e5f004fcf2fa1b23d15a0b2c30515d5f2a5e2bee85e67be5c675864bdc364ca78 +SHA512 (CT10nlo.tar.gz) = 64c1ae32380a8e8ae647bdd79a63bdb252540777f802bebf003d20ec3e7532370601619a85f6fd872f7d0e39e1a1f66ea96fcd4b9179e1f23e27d533906af493 +SHA512 (MSTW2008nlo68cl.tar.gz) = 4bf44b96363c91cb85f298d139b356ed4111c842476f02b44efac18710e4ca168691d0cbb5222839b0d219ccb264e387fc8ac93a689f5d0981fed9478f45749b +SHA512 (NNPDF31_lo_as_0130.tar.gz) = 7f2ef921e8ddd938438978383778c5e7538105c78defe34abfe6212a480da9ccdfedbec30174f0aed18576a3c3fc03866bc22b329667b41f2896dfb3814d9d1a diff --git a/testunc.py b/testunc.py new file mode 100755 index 0000000..4d6b1d2 --- /dev/null +++ b/testunc.py @@ -0,0 +1,45 @@ +#! /usr/bin/env python3 + +import lhapdf +print("Version:", lhapdf.version()) +print() + +#pdfset = lhapdf.getPDFSet("CT10nlo") +pdfset = lhapdf.getPDFSet("NNPDF31_lo_as_0130") +print(pdfset) +print("m_t =", pdfset.get_entry("MTop", 123.4)) +print() + +pdfs = pdfset.mkPDFs() +print() + +xfs_g = [pdfs[k].xfxQ(21, 1e-4, 100.) for k in range(pdfset.size)] +print("Gluon PDFs at x = 0.001, Q = 100 GeV:", xfs_g) +print() + +for alt_ci_method in [True,False]: + print(f"Using alt (asymm) CI calculation = {alt_ci_method}") + u = pdfset.uncertainty(xfs_g, 95., alt_ci_method) + print(u) + print(u.central) + print(" + ", u.errplus) + print(" - ", u.errminus) + print(" +-", u.errsymm) + print() + +#import numpy as np +#for cl in np.linspace(0.0, 1.0, 20): +xfmin, xfmax = min(xfs_g), max(xfs_g) +print("Range =", xfmax - xfmin) +for i in range(11): + cl = i/10 + print(f"CL = {cl:0.2f} -> CI = {pdfset.uncertainty(xfs_g, 100*cl, True).errsymm:0.2f}") +print(f" ... last interval should equal half-range = {(xfmax - xfmin)/2:0.2f}") +print() + +e = pdfset.errorInfo +print(e) +print() + +# pdf = lhapdf.mkPDF("CT10/0") +# print(pdf)