diff --git a/tools/README.installation b/tools/README.installation index 1ec0eb2b31f1e2d9e8928edfeefb69714b1c2373..b367ee6102250d59872dfd95e0b75994e7b3f380 100644 --- a/tools/README.installation +++ b/tools/README.installation @@ -1,4 +1,4 @@ -05.05.2024, K. Rabbertz +13.06.2024, K. Rabbertz The script fnlosrc_install.csh allows the user to install all packages required to produce interpolation grids with NLOJet++ or NNLOJET and @@ -52,13 +52,13 @@ The following installation flavours are recommended: This requires the following archives to be installed and to be present in the same directory as the install script fnlosrc_install.csh: -fastjet-3.4.0.tar.gz +fastjet-3.4.2.tar.gz LHAPDF-6.5.4.tar.gz -fastnlo_toolkit-2.5.1-3022.tar.gz +fastnlo_toolkit-2.5.1-3034.tar.gz +fastnlo_interface_nlojet-2.5.1-3030.tar.gz nlojet++-4.1.3-patched2.tar.gz -fastnlo_interface_nlojet-2.5.0-2888.tar.gz -They are available in the package fastNLO_archives_minimal_202405.tar.gz. +They are available in the package fastNLO_archives_minimal_202406.tar.gz. The command line to be used is: ./fnlosrc_install.csh /prefix-path/where/to/install _ _ 0 1 0 0 0 1 0 8 0 @@ -69,14 +69,14 @@ The command line to be used is: In addition to the packages listed above this requires the packages: -HepMC3-3.2.2.tar.gz -fjcontrib-1.045.tar.gz -YODA-1.9.7.tar.gz -Rivet-3.1.7.tar.gz +HepMC3-3.2.7.tar.gz +fjcontrib-1.054.tar.gz +YODA-1.9.10.tar.gz +Rivet-3.1.10.tar.gz # hoppet-1.2.0.tar.gz, excluded for now -# qcdnum-17-01-14.tar.gz, excluded for now +# qcdnum-18-00-00.tar.gz, excluded for now -They are available in the package fastNLO_archives_additional_202405.tar.gz. +They are available in the package fastNLO_archives_additional_202406.tar.gz. The command line to be used is: ./fnlosrc_install.csh /prefix-path/where/to/install _ _ 0 1 0 0 1 1 0 8 0 @@ -89,10 +89,10 @@ RESTRICTED UNTIL NNLOJET becomes publically available. Please contact me. This requires the following archives to be installed and to be present in the same directory as the install script fnlosrc_install.csh: -fastjet-3.4.0.tar.gz +fastjet-3.4.2.tar.gz LHAPDF-6.5.4.tar.gz -fastnlo_toolkit-2.5.1-3022.tar.gz -nnlo-bridge-1.0.0.tar.gz +fastnlo_toolkit-2.5.1-3034.tar.gz +nnlo-bridge-1.0.1.tar.gz NNLOJET_modules2_rev6591_newcombine.tar.gz The command line to be used is: @@ -105,12 +105,14 @@ RESTRICTED UNTIL NNLOJET becomes publically available. Please contact me. In addition to the packages listed above this requires the packages: -fastnlo_interface_nlojet-2.5.1-2888.tar.gz +fastnlo_interface_nlojet-2.5.1-3030.tar.gz nlojet++-4.1.3-patched2.tar.gz -HepMC3-3.2.2.tar.gz -Rivet-3.1.7.tar.gz -YODA-1.9.7.tar.gz -fjcontrib-1.045.tar.gz +HepMC3-3.2.7.tar.gz +fjcontrib-1.054.tar.gz +YODA-1.9.10.tar.gz +Rivet-3.1.10.tar.gz +# hoppet-1.2.0.tar.gz, excluded for now +# qcdnum-18-00-00.tar.gz, excluded for now The command line to be used is: ./fnlosrc_install.csh /prefix-path/where/to/install _ _ 0 1 1 0 1 1 0 8 0 @@ -129,9 +131,10 @@ Remarks ======= It is also possible to use "views" of the LCG software stack, e.g. -lcg102_centos7-gcc11-opt_source has been tested successfully. In that -case these views, of course, have to be "source"d beforehand. +lcg102_centos7-gcc11-opt_source or lcg105_centos7-gcc11-opt_source have +been tested successfully. In that case these views, of course, +have to be "source"d beforehand. Some of the packages might also work with ROOT. Because of the large variety of ROOT versions and installation problems this is not described here. -However, the given LCG view seems to be a good choice. +However, the given LCG views seem to be working. diff --git a/tools/fnlosrc_install.csh b/tools/fnlosrc_install.csh index 84f51fc7deb5248d73a18d15b84836c4d17c3b1d..d9ba66dd2933029e854ebb3471c8d851d07e9be7 100755 --- a/tools/fnlosrc_install.csh +++ b/tools/fnlosrc_install.csh @@ -537,7 +537,8 @@ endif if ( ($withnlojetpp || $withsherpa) && ! $mpnnlo ) then # set arc="fastjet-3.3.0" # Last one ok; test 3.3.4 # set arc="fastjet-3.3.4" - set arc="fastjet-3.4.0" # Required for Rivet 3.1.7 +# set arc="fastjet-3.4.0" # Required for Rivet 3.1.7 + set arc="fastjet-3.4.2" if ( ! -e ${arc}_installed ) then tar xzf ${arc}.tar.gz cd ${arc} @@ -685,7 +686,8 @@ if ( $withoptional ) then # HepMC3 (needed by Rivet-3.x.x): # Python is enabled by default. Requires cmake version 3. #------------------------------------------------------------------------------ - set arc="HepMC3-3.2.2" +# set arc="HepMC3-3.2.2" + set arc="HepMC3-3.2.7" if ( ! -e ${arc}_installed ) then tar xzf ${arc}.tar.gz cd ${arc} @@ -703,7 +705,8 @@ if ( $withoptional ) then # fastjet contrib (fjcontrib; needed by Rivet-3.x.x): # #------------------------------------------------------------------------------ - set arc="fjcontrib-1.045" +# set arc="fjcontrib-1.045" + set arc="fjcontrib-1.054" if ( ! -e ${arc}_installed ) then tar xzf ${arc}.tar.gz cd ${arc} @@ -720,7 +723,9 @@ if ( $withoptional ) then # set arc="YODA-1.6.7" # set arc="YODA-1.8.3" # set arc="YODA-1.9.6" - set arc="YODA-1.9.7" +# set arc="YODA-1.9.7" + set arc="YODA-1.9.10" +# set arc="YODA-2.0.0" # Required by Rivet 4.0.0 if ( ! -e ${arc}_installed ) then tar xzf ${arc}.tar.gz cd ${arc} @@ -736,13 +741,22 @@ if ( $withoptional ) then # set arc="Rivet-2.5.4" # set arc="Rivet-3.1.4" # Needs HepMC3 and fastjet contrib # set arc="Rivet-3.1.6" # Needs HepMC3 and fastjet contrib - set arc="Rivet-3.1.7" # Needs HepMC3 and fastjet contrib and fastjet >= 3.4.0 +# set arc="Rivet-3.1.7" # Needs HepMC3 and fastjet contrib and fastjet >= 3.4.0 + set arc="Rivet-3.1.10" # Needs HepMC3 and fastjet contrib and fastjet >= 3.4.0 +# +# Rivet 4.0.0 configuration failing even when using --without-hdf5 +# configure: HDF5 include flags: ::: -I/usr/include -I/usr/include/hdf5/serial +# configure: HDF5 lib flags: -L/usr/lib/x86_64-linux-gnu/hdf5/serial ::: -lhdf5_hl -lhdf5 -lcrypto -lcurl -lpthread -lsz -lz -ldl -lm +# configure: WARNING: highfive header directory was not found +# configure: error: highfive (HDF5 for C++) is required +# Do not use yet! +# set arc="Rivet-4.0.0" if ( ! -e ${arc}_installed ) then tar xzf ${arc}.tar.gz cd ${arc} # ./configure --prefix=${base} ${pyextopt} CPPFLAGS="${MYCPPFLAGS}" -# ATTENTION: Remove analysis giving compile errors with gcc5 -# rm -f analyses/pluginATLAS/*1790439* +# ATTENTION: Remove analysis giving compile errors + rm -f analyses/pluginATLAS/*2663725* # rehash ./configure --prefix=${base} ${pyextopt} --with-hepmc3=`${base}/bin/HepMC3-config --prefix` CPPFLAGS="${MYCPPFLAGS}" make -j${cores} install @@ -752,19 +766,18 @@ if ( $withoptional ) then endif # # -# HOPPET (the latest, v1.1.5, needs to be patched for a perl issue on newer systems): -# (Problem with perl script in systems with gcc >= 5! Patch needed: hoppet-1.1.5-patched.) -# (Fortran link problem with gcc11 --> Do not install for now.) +# HOPPET (use latest, v1.2.0): +# Works with just the fastNLO Toolkit when -lgfortran is added to LDFLAGS. +# Leads to unresolved references with fastNLO interface to NLOJet++. +# Do not install for now. #------------------------------------------------------------------------------ # ==> This enables the option --with-hoppet of the fastNLO_toolkit to use # the alpha_s evolutions within HOPPET # fastNLO comes already with alpha_s evolutions from GRV or CRunDec, or # uses the one from the PDFs in LHAPDF # -# set arc="hoppet-1.1.5" # set arc="hoppet-1.2.0" # if ( ! -e ${arc}_installed ) then -# tar xzf ${arc}-patched.tar.gz # Need patched version on newer systems like Ubuntu 16.04 # tar xzf ${arc}.tar.gz # cd ${arc} # ./configure --prefix=${base} @@ -795,7 +808,7 @@ if ( $withoptional ) then # cd .. # touch ${arc}_installed # endif -endif +#endif # # #============================================================================== @@ -813,7 +826,8 @@ if ( ! $mpnnlo ) then # set arc="fastnlo_toolkit-2.5.0-2848" # set arc="fastnlo_toolkit-2.5.0-2856" # set arc="fastnlo_toolkit-2.5.1-2890" - set arc="fastnlo_toolkit-2.5.1-3022" +# set arc="fastnlo_toolkit-2.5.1-3022" + set arc="fastnlo_toolkit-2.5.1-3034" set rev="" if ( ! -e ${arc}_installed ) then tar xzf ${arc}${rev}.tar.gz @@ -824,10 +838,11 @@ if ( ! $mpnnlo ) then # ./configure --prefix=${base} --enable-pyext if ( $withoptional ) then # QCDNUM-17-xx-xx does not compile with gfortran 11.1.0; QCDNUM-18-xx-xx exits with error on execution in fastNLO Toolkit; +# HOPPET-1.2.0 leads to unresolved references with fastNLO interface to NLOJet++. +# ./configure --prefix=${base} --enable-fortranext --with-yoda --with-hoppet --with-qcdnum ${rootoptpath} ${pyextopt} ./configure --prefix=${base} --with-yoda ${rootoptpath} ${pyextopt} -# ./configure --prefix=${base} --with-yoda --with-hoppet --with-qcdnum ${rootoptpath} ${pyextopt} # Doxygen does not work giving TeX compile error and not producing refman.tex -# ./configure --prefix=${base} --with-yoda --with-hoppet ${rootoptpath} ${pyextopt} --disable-doxygen-doc +# ./configure --prefix=${base} --enable-fortranext --with-yoda --with-hoppet --with-qcdnum ${rootoptpath} ${pyextopt} --disable-doxygen-doc else ./configure --prefix=${base} ${rootoptpath} ${pyextopt} endif @@ -861,7 +876,8 @@ if ( ! $mpnnlo ) then # set arc="fastnlo_interface_nlojet-2.3.1pre-2771" # set arc="fastnlo_interface_nlojet-2.5.0-2819" # set arc="fastnlo_interface_nlojet-2.5.0-2858" - set arc="fastnlo_interface_nlojet-2.5.1-2888" +# set arc="fastnlo_interface_nlojet-2.5.1-2888" + set arc="fastnlo_interface_nlojet-2.5.1-3030" if ( ! -e ${arc}_installed ) then tar xzf ${arc}.tar.gz cd ${arc} @@ -904,7 +920,7 @@ if ( $withnnlojet ) then # NNLOJET modules1 production version # set arc="nnlo-bridge-0.0.46" # NNLOJET modules2 production candidate - set arc="nnlo-bridge-1.0.0" + set arc="nnlo-bridge-1.0.1" if ( ! -e ${arc}_installed ) then tar xzf ${arc}.tar.gz cd ${arc} diff --git a/tools/plotting/fastnnlo_pdfunc.py b/tools/plotting/fastnnlo_pdfunc.py index 363465d94b73fe0f4846ed6dd192ff02f1ff8180..526ed73debaaa041b3a98693f40e418bcc235cef 100755 --- a/tools/plotting/fastnnlo_pdfunc.py +++ b/tools/plotting/fastnnlo_pdfunc.py @@ -179,8 +179,10 @@ def plotting(x_axis, xmin, xmax, xs_all, rel_pdf_unc, abs_pdf_unc, dxsr_cn, nost # else: ax1.set_xscale('linear') # if logy: ax1.set_yscale('log', nonposy='clip') # else: ax1.set_yscale('linear') - ax1.set_xscale('log', nonposx='clip') # Will become nonpositive= in matplotlib 3.3.x - ax1.set_yscale('log', nonposy='clip') # Will become nonpositive= in matplotlib 3.3.x + # ax1.set_xscale('log', nonposx='clip') # Will become nonpositive= in matplotlib 3.3.x + # ax1.set_yscale('log', nonposy='clip') # Will become nonpositive= in matplotlib 3.3.x + ax1.set_xscale('log', nonpositive='clip') + ax1.set_yscale('log', nonpositive='clip') # Set label on x axis on coupled axis from lower plot # ax1.set_xlabel(r'%s' %xlabel, horizontalalignment='right', x=1.0, verticalalignment='top', y=1.0) ax1.set_ylabel(r'%s' % ylabel, horizontalalignment='right', x=1.0, @@ -620,8 +622,7 @@ def main(): xs_list_tmp.append(fnlo.GetCrossSection()) ### Get PDF uncertainties ### - rel_pdf_unc_item = np.array(fnlo.GetPDFUncertaintyVec( - fastnlo.kLHAPDF6)) # Now calculated for order n + rel_pdf_unc_item = np.array(fnlo.GetPDFUncertaintyVec(fastnlo.kLHAPDF6)) # Now calculated for order n rel_unc_list_tmp.append(rel_pdf_unc_item) if verb: print('[fastnnlo_pdfunc]: \n') diff --git a/tools/plotting/fastnnlo_scaleclosure.py b/tools/plotting/fastnnlo_scaleclosure.py index 82e80903c7c9330760327d662659095aff1725fe..deddd1711b870d1f9d4c0770c2d7b8ee7c6f81b9 100755 --- a/tools/plotting/fastnnlo_scaleclosure.py +++ b/tools/plotting/fastnnlo_scaleclosure.py @@ -394,8 +394,9 @@ a_fl2nn = np.divide(xs_fnll-xs_nnlo, xs_fnll+xs_nnlo, # Rel. stat. uncertainty from NNLOJET dst_nnlo = np.divide(dxs_nnlo, xs_nnlo, out=np.ones_like(dxs_nnlo), where=xs_nnlo != 0) -dr_fl2nn = dstat*np.multiply(r_fl2nn, dst_nnlo) -da_fl2nn = dstat*np.multiply(a_fl2nn, dst_nnlo) +# errorbar yerr needs to be always positive in the new matplotlib versions +dr_fl2nn = np.abs(dstat*np.multiply(r_fl2nn, dst_nnlo)) +da_fl2nn = np.abs(dstat*np.multiply(a_fl2nn, dst_nnlo)) # Prepare plotting titwgt = 'bold' diff --git a/tools/plotting/fastnnlo_scaleunc.py b/tools/plotting/fastnnlo_scaleunc.py index 693158e4bab6d49c87c4eb9f13d0ce75e01eed22..1f531276b88d5ea49b1d418ab074c8a15a2a689a 100755 --- a/tools/plotting/fastnnlo_scaleunc.py +++ b/tools/plotting/fastnnlo_scaleunc.py @@ -150,10 +150,10 @@ def plotting(x_axis, xmin, xmax, xs_all, rel_scale_unc, abs_scale_unc, dxsr_cn, # axfmt = LogFormatter(labelOnlyBase=False, minor_thresholds=(2, 0.4)) # ax1.get_xaxis().set_minor_formatter(axfmt) # ax1.get_xaxis().set_minor_formatter(NullFormatter()) - # ax1.set_xscale('log', nonposx='clip') - # ax1.set_yscale('log', nonposy='clip') - ax1.set_xscale('log', nonpositive='clip') # Will become nonpositive= in matplotlib 3.3.x - ax1.set_yscale('log', nonpositive='clip') # Will become nonpositive= in matplotlib 3.3.x + # ax1.set_xscale('log', nonposx='clip') # Will become nonpositive= in matplotlib 3.3.x + # ax1.set_yscale('log', nonposy='clip') # Will become nonpositive= in matplotlib 3.3.x + ax1.set_xscale('log', nonpositive='clip') + ax1.set_yscale('log', nonpositive='clip') # Set label on x axis on coupled axis from lower plot # ax1.set_xlabel(r'%s' %xlabel, horizontalalignment='right', x=1.0, verticalalignment='top', y=1.0) ax1.set_ylabel(r'%s' % ylabel, horizontalalignment='right', x=1.0, @@ -588,8 +588,7 @@ def main(): # Up to NLO, it is possible to use HOPPET with fixed-scale tables # fnlo.UseHoppetScaleVariations(True) # Calculate this already for all accessible orders in any case - rel_scale_unc_item = np.array( - fnlo.GetScaleUncertaintyVec(scale_var_type)) + rel_scale_unc_item = np.array(fnlo.GetScaleUncertaintyVec(scale_var_type)) rel_unc_list.append(rel_scale_unc_item) if verb: print('[fastnnlo_scaleunc]: \n') diff --git a/tools/plotting/fastnnlo_statunc.py b/tools/plotting/fastnnlo_statunc.py index 2b94f5dd8daa1979369f6e4fa7e88715a47de5a6..4b4bf3fa60d49f145a68db710f9aa4a33e771242 100755 --- a/tools/plotting/fastnnlo_statunc.py +++ b/tools/plotting/fastnnlo_statunc.py @@ -132,8 +132,10 @@ def plotting(x_axis, xmin, xmax, dxsr_ch, dxsr_or, xlabel, ylabel, title, tablen ax1 = plt.subplot(gs[0, :]) ax1.set_autoscalex_on(True) plt.setp(ax1.get_xticklabels(), visible=True) - ax1.set_xscale('log', nonposx='clip') - ax1.set_yscale('log', nonposy='clip') + # ax1.set_xscale('log', nonposx='clip') # Will become nonpositive= in matplotlib 3.3.x + # ax1.set_yscale('log', nonposy='clip') # Will become nonpositive= in matplotlib 3.3.x + ax1.set_xscale('log', nonpositive='clip') + ax1.set_yscale('log', nonpositive='clip') ax1.set_ylim(0.00001, 0.1) ax1.set_xlabel(r'%s' %xlabel, horizontalalignment='right', x=1.0, verticalalignment='top', y=1.0) ax1.set_ylabel(r'%s(%s)' % (ylabel, order), horizontalalignment='right', x=1.0, @@ -178,7 +180,8 @@ def plotting(x_axis, xmin, xmax, dxsr_ch, dxsr_or, xlabel, ylabel, title, tablen ax2 = plt.subplot(gs2[0, :]) ax2.set_autoscalex_on(True) plt.setp(ax2.get_xticklabels(), visible=True) - ax2.set_xscale('log', nonposx='clip') + # ax2.set_xscale('log', nonposx='clip') # Will become nonpositive= in matplotlib 3.3.x + ax2.set_xscale('log', nonpositive='clip') ax2.set_ylim(-1.0, 1.5) ax2.set_xlabel(r'%s' %xlabel, horizontalalignment='right', x=1.0, verticalalignment='top', y=1.0) ax2.set_ylabel(r'%s(%s)' % (ylabel2, order), horizontalalignment='right', x=1.0, diff --git a/v2.5/generators/nlojet++/ChangeLog b/v2.5/generators/nlojet++/ChangeLog index 36be2e03fac71975160e5c407e33a20289ea50a8..629b6a9af3a8bc7b6be9fafd3a6dccf309ed5192 100644 --- a/v2.5/generators/nlojet++/ChangeLog +++ b/v2.5/generators/nlojet++/ChangeLog @@ -1,6 +1,26 @@ +2024-06-12 Public release of fastNLO interface to NLOJet++ package version 2.5.1, tag 3030 + =============================================================================== + +2024-06-12 Klaus Rabbertz <klaus.rabbertz@cern.ch> + + Update NEWS, ChangeLog + + 2024-06-12 Klaus Rabbertz <klaus.rabbertz@cern.ch> + + * v2.5/generators/nlojet++/configure.ac: Require full C++17 + functionality also for nlojet++ interface + + 2023-07-12 Release of fastNLO interface to NLOJet++ package version 2.5.1, tag 2888 ======================================================================== +2023-07-12 Klaus Rabbertz <klaus.rabbertz@cern.ch> + + * v2.5/generators/nlojet++/ChangeLog, + v2.5/generators/nlojet++/NEWS, + v2.5/generators/nlojet++/configure.ac: Nlojet++ interface version + 2.5.1; update NEWS and CL + 2023-07-12 Klaus Rabbertz <klaus.rabbertz@cern.ch> * v2.5/generators/nlojet++/configure.ac, diff --git a/v2.5/generators/nlojet++/NEWS b/v2.5/generators/nlojet++/NEWS index 9d3391e2a25ef83a5a14d36e1527950b66cb75e9..4c41b451fb7cbc667e4ab56e19a694bd11975518 100644 --- a/v2.5/generators/nlojet++/NEWS +++ b/v2.5/generators/nlojet++/NEWS @@ -1,3 +1,8 @@ +Release Notes for fastnlo_interface_nlojet version 2.5.1 revision 3030 +======================================================================= +- Require full C++17 functionality also for nlojet++ interface + + Release Notes for fastnlo_interface_nlojet version 2.5.1 revision 2888 ======================================================================= Major improvement (Johannes Gäßler): diff --git a/v2.5/generators/nlojet++/configure.ac b/v2.5/generators/nlojet++/configure.ac index 67582390207e375633bc3576eb1359695bb713f1..6c6819506c0dc8fc77fe79bd8fbaef6b1b02416a 100644 --- a/v2.5/generators/nlojet++/configure.ac +++ b/v2.5/generators/nlojet++/configure.ac @@ -58,10 +58,10 @@ AM_CONDITIONAL([HAVE_LIBZ],[test "x$HAVE_LIBZ" == "xtrue"]) AC_HEADER_STDBOOL AC_C_INLINE -# Require full C++11 functionality, which has been supported by gcc since version 4.8.1 +# Require full C++17 functionality, which has been supported by gcc since version 11 # If the following macro is not found, you might want to install the autoconf-archive # package and repeat the 'autoreconf -i' step. -AX_CXX_COMPILE_STDCXX_11 +AX_CXX_COMPILE_STDCXX_17 # Checks for library functions. AC_FUNC_ERROR_AT_LINE diff --git a/v2.5/generators/nlojet++/m4/ax_cxx_compile_stdcxx_17.m4 b/v2.5/generators/nlojet++/m4/ax_cxx_compile_stdcxx_17.m4 new file mode 100644 index 0000000000000000000000000000000000000000..a6834171739bed1a8974fe48999a9c91104cab34 --- /dev/null +++ b/v2.5/generators/nlojet++/m4/ax_cxx_compile_stdcxx_17.m4 @@ -0,0 +1,35 @@ +# ============================================================================= +# https://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_17.html +# ============================================================================= +# +# SYNOPSIS +# +# AX_CXX_COMPILE_STDCXX_17([ext|noext], [mandatory|optional]) +# +# DESCRIPTION +# +# Check for baseline language coverage in the compiler for the C++17 +# standard; if necessary, add switches to CXX and CXXCPP to enable +# support. +# +# This macro is a convenience alias for calling the AX_CXX_COMPILE_STDCXX +# macro with the version set to C++17. The two optional arguments are +# forwarded literally as the second and third argument respectively. +# Please see the documentation for the AX_CXX_COMPILE_STDCXX macro for +# more information. If you want to use this macro, you also need to +# download the ax_cxx_compile_stdcxx.m4 file. +# +# LICENSE +# +# Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu> +# Copyright (c) 2016 Krzesimir Nowak <qdlacz@gmail.com> +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 2 + +AX_REQUIRE_DEFINED([AX_CXX_COMPILE_STDCXX]) +AC_DEFUN([AX_CXX_COMPILE_STDCXX_17], [AX_CXX_COMPILE_STDCXX([17], [$1], [$2])]) diff --git a/v2.5/toolkit/ChangeLog b/v2.5/toolkit/ChangeLog index 3fdaf3ac856af5a498265e04e4f8fc5a48ab7b58..3f5c18c77452bc99c065845e1259a0f17643418e 100644 --- a/v2.5/toolkit/ChangeLog +++ b/v2.5/toolkit/ChangeLog @@ -1,11 +1,82 @@ +2024-06-13 Public release of the fastNLO_toolkit package version 2.5.1, tag 3034 + ===================================================================== + +2024-06-13 Klaus Rabbertz <klaus.rabbertz@cern.ch> + + Fix a missing LDFLAGS setting in case of HOPPET use + Fix a few warnings for unused variables in conditional compiling of fnlo-tk-rootout + +2024-06-12 Klaus Rabbertz <klaus.rabbertz@cern.ch> + + Adapt hoppet test to new default a_s = 0.1180 instead of 0.1181 + +2024-06-12 Klaus Rabbertz <klaus.rabbertz@cern.ch> + + Update NEWS, ChangeLog + +2024-06-12 Klaus Rabbertz <klaus.rabbertz@cern.ch> + + * v2.5/toolkit/configure.ac: Require full C++17 functionality also + for nlojet++ interface + +2024-06-12 Public release of the fastNLO_toolkit package version 2.5.1, tag 3028 + ===================================================================== + +2024-06-12 Klaus Rabbertz <klaus.rabbertz@cern.ch> + + * v2.5/toolkit/ChangeLog, v2.5/toolkit/NEWS: Update NEWS, ChangeLog + +2024-05-31 Klaus Rabbertz <klaus.rabbertz@cern.ch> + + * v2.5/toolkit/fastnlotoolkit/fastNLOReader.cc, + v2.5/toolkit/fastnlotoolkit/include/fastnlotk/fastNLOConstants.h.in + , v2.5/toolkit/fastnlotoolkit/include/fastnlotk/fastNLOReader.h, + v2.5/toolkit/src/fnlo-tk-yodaout.cc: Implement 30 scale variations + for ratio + +2024-05-22 Johannes Gäßler <johannesg@5d6.de> + + * v2.5/toolkit/fastnlotoolkit/fastNLOInterpolBase.cc: Fix sqrtlog10 + being hardcoded for NodeDensity + +2024-05-10 Klaus Rabbertz <klaus.rabbertz@cern.ch> + + * v2.5/toolkit/src/fnlo-py-print.py: Remove requirement of recent + env executable to ensure C++/Python unbuffered output; add env. var. + to environment instead + +2024-05-10 Klaus Rabbertz <klaus.rabbertz@cern.ch> + + * v2.5/toolkit/data/check/fnl1014_I902309_2-2_cpptest1.log, + v2.5/toolkit/data/check/fnl1014_I902309_2-2_rundecastest1.log, + v2.5/toolkit/src/fnlo-tk-cppread.cc, + v2.5/toolkit/src/fnlo-tk-rootout.cc: Change default PDF evaluation + in cppread to LHAPDF; update to PDF2023 alpha_s(mz) + 2024-05-05 Public release of the fastNLO_toolkit package version 2.5.1, tag 3022 ===================================================================== -2024-05-05 Klaus Rabbertz <klaus.rabbertz@kit.edu> +2024-05-05 Klaus Rabbertz <klaus.rabbertz@cern.ch> - * : commit cd40a771ad9276b48480ea17a4e38a52796f6220 Author: Klaus - Rabbertz <klaus.rabbertz@cern.ch> Date: Sun May 5 21:47:12 2024 - +0200 + * v2.5/toolkit/ChangeLog, v2.5/toolkit/NEWS: Fix build Makefile and + adapt revision + +2024-05-05 Klaus Rabbertz <klaus.rabbertz@cern.ch> + + * v2.5/toolkit/src/Makefile.am: Fix build Makefile + +2024-05-05 Klaus Rabbertz <klaus.rabbertz@cern.ch> + + * v2.5/toolkit/ChangeLog, v2.5/toolkit/NEWS, v2.5/toolkit/TODO: + Update ChangeLog, NEWS, TODO + +2024-05-05 Klaus Rabbertz <klaus.rabbertz@cern.ch> + + * v2.5/toolkit/src/Makefile.am, v2.5/toolkit/src/fnlo-py-print.py, + v2.5/toolkit/src/fnlo-tk-cppread.cc, + v2.5/toolkit/src/fnlo-tk-rootout.cc, + v2.5/toolkit/src/fnlo-tk-yodaout.cc: Improve print-out verbosity; + add python script 2024-05-05 Klaus Rabbertz <klaus.rabbertz@cern.ch> diff --git a/v2.5/toolkit/NEWS b/v2.5/toolkit/NEWS index ae40bd5b7b4c3513874bc937a643607101aaa6f8..d5e4cf5e90a36911516fe9f9537928040a0db519 100644 --- a/v2.5/toolkit/NEWS +++ b/v2.5/toolkit/NEWS @@ -1,6 +1,22 @@ +Notes for public release of the fastNLO_toolkit package version 2.5.1, tag 3034 +=============================================================================== +- Fix a missing LDFLAGS setting in case of HOPPET use +- Fix a few warnings for unused variables in conditional compiling of fnlo-tk-rootout +- Adapt hoppet test to new default a_s = 0.1180 instead of 0.1181 +- Require full C++17 functionality + + +Notes for public release of the fastNLO_toolkit package version 2.5.1, tag 3028 +=============================================================================== +- Make LHAPDF alpha_s evolution default in cppread, too, to avoid confusion. +- Update default alpha_s(mZ) to PDG2023 +- Implement possibility of 30 scale variations (for normalised x sections only) +- Bug fix for use of NodeDensity + + Notes for public release of the fastNLO_toolkit package version 2.5.1, tag 3022 =============================================================================== -- Unify x section and uncertainty priint-outs. +- Unify x section and uncertainty print-outs. - Respect and modify fastNLO verbosity settings. - Add example python script for such print-outs. diff --git a/v2.5/toolkit/configure.ac b/v2.5/toolkit/configure.ac index c84e754c830c08cf3272f6ffbd62b7e1a37f7f24..70994ebaca2f8fa691b9cb513b86ff3af1a63526 100644 --- a/v2.5/toolkit/configure.ac +++ b/v2.5/toolkit/configure.ac @@ -57,7 +57,7 @@ AM_CONDITIONAL([HAVE_LIBZ],[test "x$HAVE_LIBZ" == "xtrue"]) AC_HEADER_STDBOOL AC_C_INLINE -# Require full C++11 functionality, which has been supported by gcc since version 4.8.1 +# Require full C++17 functionality, which has been supported by gcc since version 11 # If the following macro is not found, you might want to install the autoconf-archive # package and repeat the 'autoreconf -i' step. AX_CXX_COMPILE_STDCXX_17 diff --git a/v2.5/toolkit/data/check/fnl1014_I902309_2-2_hoppetastest1.log b/v2.5/toolkit/data/check/fnl1014_I902309_2-2_hoppetastest1.log index 891faefa83b56ffeb4c1562e516c8ca627d674f2..41baf0e574fa7ee6b72e30cfc63c1436a87de654 100644 --- a/v2.5/toolkit/data/check/fnl1014_I902309_2-2_hoppetastest1.log +++ b/v2.5/toolkit/data/check/fnl1014_I902309_2-2_hoppetastest1.log @@ -1,4 +1,4 @@ - 1 3.000 1 0.000 0.5000 1 18.00 21.00 19.34 1.56016887459E+07 1.64608712441E+07 1.05507 1.39331 1.40000 - 2 3.000 1 0.000 0.5000 2 21.00 24.00 22.37 8.34454474113E+06 8.81384220036E+06 1.05624 1.35830 1.38000 - 3 3.000 2 0.5000 1.000 1 18.00 21.00 19.32 1.51486835075E+07 1.61410660517E+07 1.06551 1.40726 1.40000 - 4 3.000 2 0.5000 1.000 2 21.00 24.00 22.35 8.08815475747E+06 8.57750170104E+06 1.06050 1.38335 1.32000 + 1 3.000 1 0.000 0.5000 1 18.00 21.00 19.34 1.55666620623E+07 1.64229571327E+07 1.05501 1.39245 1.40000 + 2 3.000 1 0.000 0.5000 2 21.00 24.00 22.37 8.32636995623E+06 8.79413797059E+06 1.05618 1.35754 1.38000 + 3 3.000 2 0.5000 1.000 1 18.00 21.00 19.32 1.51146737648E+07 1.61037089999E+07 1.06544 1.40638 1.40000 + 4 3.000 2 0.5000 1.000 2 21.00 24.00 22.35 8.07053823617E+06 8.55828702273E+06 1.06044 1.38254 1.32000 diff --git a/v2.5/toolkit/fastnlotoolkit/fastNLOLHAPDF.cc b/v2.5/toolkit/fastnlotoolkit/fastNLOLHAPDF.cc index 4e9329bc73dea4e2a4fa7040d4102237c6d39660..391ffe19492baa87f86186a6bedc8045186f9e56 100644 --- a/v2.5/toolkit/fastnlotoolkit/fastNLOLHAPDF.cc +++ b/v2.5/toolkit/fastnlotoolkit/fastNLOLHAPDF.cc @@ -413,7 +413,8 @@ XsUncertainty fastNLOLHAPDF::GetXsUncertainty(const fastNLO::EAsUncertaintyStyle //______________________________________________________________________________ -std::vector< std::vector<double> > fastNLOLHAPDF::GetXsUncertaintyVec(const fastNLO::EAsUncertaintyStyle eAsUnc, bool lNorm, int iprint) { +// std::vector< std::vector<double> > fastNLOLHAPDF::GetXsUncertaintyVec(const fastNLO::EAsUncertaintyStyle eAsUnc, bool lNorm, int iprint) { +std::vector< std::vector<double> > fastNLOLHAPDF::GetAsUncertaintyVec(const fastNLO::EAsUncertaintyStyle eAsUnc, bool lNorm, int iprint) { XsUncertainty xsUnc = fastNLOLHAPDF::GetXsUncertainty(eAsUnc, lNorm); if (iprint > 0) { string style{AsUncertaintyStyle_to_string(eAsUnc)}; @@ -431,7 +432,8 @@ std::vector< std::vector<double> > fastNLOLHAPDF::GetXsUncertaintyVec(const fast //______________________________________________________________________________ -void fastNLOLHAPDF::PrintXsUncertaintyVec(fastNLO::EAsUncertaintyStyle eAsUnc, std::string UncName, bool lNorm) { +// void fastNLOLHAPDF::PrintXsUncertaintyVec(fastNLO::EAsUncertaintyStyle eAsUnc, std::string UncName, bool lNorm) { +void fastNLOLHAPDF::PrintAsUncertaintyVec(fastNLO::EAsUncertaintyStyle eAsUnc, std::string UncName, bool lNorm) { XsUncertainty xsUnc = GetXsUncertainty(eAsUnc, lNorm); fastNLOTools::PrintXSUncertainty(xsUnc, UncName); } @@ -622,12 +624,12 @@ XsUncertainty fastNLOLHAPDF::GetXsUncertainty(const fastNLO::EPDFUncertaintyStyl //______________________________________________________________________________ -std::vector< std::vector<double> > fastNLOLHAPDF::GetXsUncertaintyVec(const fastNLO::EPDFUncertaintyStyle ePDFUnc, bool lNorm, int iprint) { +// std::vector< std::vector<double> > fastNLOLHAPDF::GetXsUncertaintyVec(const fastNLO::EPDFUncertaintyStyle ePDFUnc, bool lNorm, int iprint) { +std::vector< std::vector<double> > fastNLOLHAPDF::GetPDFUncertaintyVec(const fastNLO::EPDFUncertaintyStyle ePDFUnc, bool lNorm, int iprint) { XsUncertainty xsUnc = GetXsUncertainty(ePDFUnc, lNorm); if (iprint > 0) { string style{PDFUncertaintyStyle_to_string(ePDFUnc)}; string PDFFile = GetLHAPDFFilename(); - cout << "PPPPPPPPPPPPPPPPPPPP " << PDFFile << endl; string UncName = " # Relative PDF Uncertainties (" + style + " " + PDFFile + " " + "TODO" + ")"; fastNLOTools::PrintXSUncertainty(xsUnc, UncName); } @@ -641,7 +643,8 @@ std::vector< std::vector<double> > fastNLOLHAPDF::GetXsUncertaintyVec(const fast //______________________________________________________________________________ -void fastNLOLHAPDF::PrintXsUncertaintyVec(fastNLO::EPDFUncertaintyStyle ePDFUnc, std::string UncName, bool lNorm) { +// void fastNLOLHAPDF::PrintXsUncertaintyVec(fastNLO::EPDFUncertaintyStyle ePDFUnc, std::string UncName, bool lNorm) { +void fastNLOLHAPDF::PrintPDFUncertaintyVec(fastNLO::EPDFUncertaintyStyle ePDFUnc, std::string UncName, bool lNorm) { XsUncertainty xsUnc = GetXsUncertainty(ePDFUnc, lNorm); fastNLOTools::PrintXSUncertainty(xsUnc, UncName); } @@ -653,12 +656,16 @@ XsUncertainty fastNLOLHAPDF::GetXsUncertainty(const fastNLO::EScaleUncertaintySt return fastNLOReader::GetXsUncertainty(eScaleUnc, lNorm, sclfac); } //______________________________________________________________________________ -std::vector< std::vector<double> > fastNLOLHAPDF::GetXsUncertaintyVec(const fastNLO::EScaleUncertaintyStyle eScaleUnc, bool lNorm, int iprint, double sclfac) { - return fastNLOReader::GetXsUncertaintyVec(eScaleUnc, lNorm, iprint, sclfac); +// std::vector< std::vector<double> > fastNLOLHAPDF::GetXsUncertaintyVec(const fastNLO::EScaleUncertaintyStyle eScaleUnc, bool lNorm, int iprint, double sclfac) { +// return fastNLOReader::GetXsUncertaintyVec(eScaleUnc, lNorm, iprint, sclfac); +std::vector< std::vector<double> > fastNLOLHAPDF::GetScaleUncertaintyVec(const fastNLO::EScaleUncertaintyStyle eScaleUnc, bool lNorm, int iprint, double sclfac) { + return fastNLOReader::GetScaleUncertaintyVec(eScaleUnc, lNorm, iprint, sclfac); } //______________________________________________________________________________ -void fastNLOLHAPDF::PrintXsUncertaintyVec(fastNLO::EScaleUncertaintyStyle eScaleUnc, std::string UncName, bool lNorm, double sclfac) { - fastNLOReader::PrintXsUncertaintyVec(eScaleUnc, UncName, lNorm, sclfac); +// void fastNLOLHAPDF::PrintXsUncertaintyVec(fastNLO::EScaleUncertaintyStyle eScaleUnc, std::string UncName, bool lNorm, double sclfac) { +// fastNLOReader::PrintXsUncertaintyVec(eScaleUnc, UncName, lNorm, sclfac); +void fastNLOLHAPDF::PrintScaleUncertaintyVec(fastNLO::EScaleUncertaintyStyle eScaleUnc, std::string UncName, bool lNorm, double sclfac) { + fastNLOReader::PrintScaleUncertaintyVec(eScaleUnc, UncName, lNorm, sclfac); } @@ -668,10 +675,14 @@ XsUncertainty fastNLOLHAPDF::GetXsUncertainty(const fastNLO::EStatUncertaintySty return fastNLOReader::GetXsUncertainty(eStatUnc, lNorm); } //______________________________________________________________________________ -std::vector< std::vector<double> > fastNLOLHAPDF::GetXsUncertaintyVec(const fastNLO::EStatUncertaintyStyle eStatUnc, bool lNorm, int iprint) { - return fastNLOReader::GetXsUncertaintyVec(eStatUnc, lNorm, iprint); +// std::vector< std::vector<double> > fastNLOLHAPDF::GetXsUncertaintyVec(const fastNLO::EStatUncertaintyStyle eStatUnc, bool lNorm, int iprint) { +// return fastNLOReader::GetXsUncertaintyVec(eStatUnc, lNorm, iprint); +std::vector< std::vector<double> > fastNLOLHAPDF::GetStatUncertaintyVec(const fastNLO::EStatUncertaintyStyle eStatUnc, bool lNorm, int iprint) { + return fastNLOReader::GetStatUncertaintyVec(eStatUnc, lNorm, iprint); } //______________________________________________________________________________ -void fastNLOLHAPDF::PrintXsUncertaintyVec(fastNLO::EStatUncertaintyStyle eStatUnc, std::string UncName, bool lNorm) { - fastNLOReader::PrintXsUncertaintyVec(eStatUnc, UncName, lNorm); +// void fastNLOLHAPDF::PrintXsUncertaintyVec(fastNLO::EStatUncertaintyStyle eStatUnc, std::string UncName, bool lNorm) { +// fastNLOReader::PrintXsUncertaintyVec(eStatUnc, UncName, lNorm); +void fastNLOLHAPDF::PrintStatUncertaintyVec(fastNLO::EStatUncertaintyStyle eStatUnc, std::string UncName, bool lNorm) { + fastNLOReader::PrintStatUncertaintyVec(eStatUnc, UncName, lNorm); } diff --git a/v2.5/toolkit/fastnlotoolkit/fastNLOReader.cc b/v2.5/toolkit/fastnlotoolkit/fastNLOReader.cc index 816e515ba14257f50b79a8dd35325090fd68ba73..3045658185b19b57e5a4d7a67bdc7cc533766689 100644 --- a/v2.5/toolkit/fastnlotoolkit/fastNLOReader.cc +++ b/v2.5/toolkit/fastnlotoolkit/fastNLOReader.cc @@ -3473,10 +3473,14 @@ XsUncertainty fastNLOReader::GetXsUncertainty(const EScaleUncertaintyStyle eScal SetScaleFactorsMuRMuF(xmurn[iscl],xmufn[iscl]); CalcCrossSection(); bool lNormScale = false; - if (lNorm && eScaleUnc == kAsymmetricRatio) { - lNormScale = true; + if (lNorm) { + if (eScaleUnc == kAsymmetricRatio) { + lNormScale = true; + } + MyXSection = GetNormCrossSection(lNormScale,xmurd[iscl],xmufd[iscl]); + } else { + MyXSection = GetCrossSection(lNorm); } - MyXSection = GetNormCrossSection(lNormScale,xmurd[iscl],xmufd[iscl]); for (unsigned int iobs = 0; iobs < NObsBin; iobs++) { if (iscl == 0) { XsUnc.xs.push_back(MyXSection[iobs]); @@ -3510,7 +3514,8 @@ XsUncertainty fastNLOReader::GetXsUncertainty(const EScaleUncertaintyStyle eScal //______________________________________________________________________________ -std::vector< std::vector<double> > fastNLOReader::GetXsUncertaintyVec(const EScaleUncertaintyStyle eScaleUnc, bool lNorm, int iprint, double sclfac) { +// std::vector< std::vector<double> > fastNLOReader::GetXsUncertaintyVec(const EScaleUncertaintyStyle eScaleUnc, bool lNorm, int iprint, double sclfac) { +std::vector< std::vector<double> > fastNLOReader::GetScaleUncertaintyVec(const EScaleUncertaintyStyle eScaleUnc, bool lNorm, int iprint, double sclfac) { XsUncertainty xsUnc = fastNLOReader::GetXsUncertainty(eScaleUnc, lNorm, sclfac); if (iprint > 0) { string style{ScaleUncertaintyStyle_to_string(eScaleUnc)}; @@ -3528,7 +3533,8 @@ std::vector< std::vector<double> > fastNLOReader::GetXsUncertaintyVec(const ESca //______________________________________________________________________________ -void fastNLOReader::PrintXsUncertaintyVec(fastNLO::EScaleUncertaintyStyle eScaleUnc, std::string UncName, bool lNorm, double sclfac) { +// void fastNLOReader::PrintXsUncertaintyVec(fastNLO::EScaleUncertaintyStyle eScaleUnc, std::string UncName, bool lNorm, double sclfac) { +void fastNLOReader::PrintScaleUncertaintyVec(fastNLO::EScaleUncertaintyStyle eScaleUnc, std::string UncName, bool lNorm, double sclfac) { XsUncertainty xsUnc = GetXsUncertainty(eScaleUnc, lNorm, sclfac); fastNLOTools::PrintXSUncertainty(xsUnc, UncName); } @@ -3586,7 +3592,8 @@ XsUncertainty fastNLOReader::GetXsUncertainty(const EStatUncertaintyStyle eStatU //______________________________________________________________________________ -std::vector< std::vector<double> > fastNLOReader::GetXsUncertaintyVec(const EStatUncertaintyStyle eStatUnc, bool lNorm, int iprint) { +// std::vector< std::vector<double> > fastNLOReader::GetXsUncertaintyVec(const EStatUncertaintyStyle eStatUnc, bool lNorm, int iprint) { +std::vector< std::vector<double> > fastNLOReader::GetStatUncertaintyVec(const EStatUncertaintyStyle eStatUnc, bool lNorm, int iprint) { XsUncertainty xsUnc = fastNLOReader::GetXsUncertainty(eStatUnc, lNorm); if (iprint > 0) { string style{StatUncertaintyStyle_to_string(eStatUnc)}; @@ -3604,7 +3611,8 @@ std::vector< std::vector<double> > fastNLOReader::GetXsUncertaintyVec(const ESta //______________________________________________________________________________ -void fastNLOReader::PrintXsUncertaintyVec(fastNLO::EStatUncertaintyStyle eStatUnc, std::string UncName, bool lNorm) { +// void fastNLOReader::PrintXsUncertaintyVec(fastNLO::EStatUncertaintyStyle eStatUnc, std::string UncName, bool lNorm) { +void fastNLOReader::PrintStatUncertaintyVec(fastNLO::EStatUncertaintyStyle eStatUnc, std::string UncName, bool lNorm) { XsUncertainty xsUnc = GetXsUncertainty(eStatUnc, lNorm); fastNLOTools::PrintXSUncertainty(xsUnc, UncName); } diff --git a/v2.5/toolkit/fastnlotoolkit/include/fastnlotk/fastNLOLHAPDF.h b/v2.5/toolkit/fastnlotoolkit/include/fastnlotk/fastNLOLHAPDF.h index b6adee55fa7be149d5da4fdfb37989dc5bdfd1a3..af931c3f9bdad835d6f82328696cd0be0752d341 100644 --- a/v2.5/toolkit/fastnlotoolkit/include/fastnlotk/fastNLOLHAPDF.h +++ b/v2.5/toolkit/fastnlotoolkit/include/fastnlotk/fastNLOLHAPDF.h @@ -61,23 +61,31 @@ public: double GetAlphasMz() const; //! Return struct with vectors (for C++) or vector of vectors (for Python) containing the cross section values and the selected uncertainty - //! Enum of Uncertaintstyle decides on method to call + //! Enum of Uncertaintstyle decides on method to call, but does not work for Python extension --> switch back to use differently named UncertaintyVec methods // Use implementations in fastNLOReader for these XsUncertainty GetXsUncertainty(const fastNLO::EStatUncertaintyStyle eStatUnc, bool lNorm = false); - std::vector< std::vector<double> > GetXsUncertaintyVec(const fastNLO::EStatUncertaintyStyle eStatUnc, bool lNorm = false, int iprint = 0); - void PrintXsUncertaintyVec(fastNLO::EStatUncertaintyStyle, std::string UncName, bool lNorm = false); + // std::vector< std::vector<double> > GetXsUncertaintyVec(const fastNLO::EStatUncertaintyStyle eStatUnc, bool lNorm = false, int iprint = 0); + // void PrintXsUncertaintyVec(fastNLO::EStatUncertaintyStyle, std::string UncName, bool lNorm = false); + std::vector< std::vector<double> > GetStatUncertaintyVec(const fastNLO::EStatUncertaintyStyle eStatUnc, bool lNorm = false, int iprint = 0); + void PrintStatUncertaintyVec(fastNLO::EStatUncertaintyStyle, std::string UncName, bool lNorm = false); // XsUncertainty GetXsUncertainty(const fastNLO::EScaleUncertaintyStyle eScaleUnc, bool lNorm = false, double sclfac = 1.); - std::vector< std::vector<double> > GetXsUncertaintyVec(const fastNLO::EScaleUncertaintyStyle eScaleUnc, bool lNorm = false, int iprint = 0, double sclfac = 1.); - void PrintXsUncertaintyVec(fastNLO::EScaleUncertaintyStyle, std::string UncName, bool lNorm = false, double sclfac =1.); + // std::vector< std::vector<double> > GetXsUncertaintyVec(const fastNLO::EScaleUncertaintyStyle eScaleUnc, bool lNorm = false, int iprint = 0, double sclfac = 1.); + // void PrintXsUncertaintyVec(fastNLO::EScaleUncertaintyStyle, std::string UncName, bool lNorm = false, double sclfac =1.); + std::vector< std::vector<double> > GetScaleUncertaintyVec(const fastNLO::EScaleUncertaintyStyle eScaleUnc, bool lNorm = false, int iprint = 0, double sclfac = 1.); + void PrintScaleUncertaintyVec(fastNLO::EScaleUncertaintyStyle, std::string UncName, bool lNorm = false, double sclfac =1.); // Specific implementations in fastNLOLHAPDF XsUncertainty GetXsUncertainty(const fastNLO::EAsUncertaintyStyle eAsUnc, bool lNorm = false); - std::vector< std::vector<double> > GetXsUncertaintyVec(const fastNLO::EAsUncertaintyStyle eAsUnc, bool lNorm = false, int iprint = 0); - void PrintXsUncertaintyVec(fastNLO::EAsUncertaintyStyle, std::string UncName, bool lNorm = false); + // std::vector< std::vector<double> > GetXsUncertaintyVec(const fastNLO::EAsUncertaintyStyle eAsUnc, bool lNorm = false, int iprint = 0); + // void PrintXsUncertaintyVec(fastNLO::EAsUncertaintyStyle, std::string UncName, bool lNorm = false); + std::vector< std::vector<double> > GetAsUncertaintyVec(const fastNLO::EAsUncertaintyStyle eAsUnc, bool lNorm = false, int iprint = 0); + void PrintAsUncertaintyVec(fastNLO::EAsUncertaintyStyle, std::string UncName, bool lNorm = false); // XsUncertainty GetXsUncertainty(const fastNLO::EPDFUncertaintyStyle ePDFUnc, bool lNorm = false); - std::vector<std::vector<double> > GetXsUncertaintyVec(const fastNLO::EPDFUncertaintyStyle, bool lNorm = false, int iprint = 0); - void PrintXsUncertaintyVec(fastNLO::EPDFUncertaintyStyle, std::string UncName, bool lNorm = false); + // std::vector<std::vector<double> > GetXsUncertaintyVec(const fastNLO::EPDFUncertaintyStyle, bool lNorm = false, int iprint = 0); + // void PrintXsUncertaintyVec(fastNLO::EPDFUncertaintyStyle, std::string UncName, bool lNorm = false); + std::vector<std::vector<double> > GetPDFUncertaintyVec(const fastNLO::EPDFUncertaintyStyle, bool lNorm = false, int iprint = 0); + void PrintPDFUncertaintyVec(fastNLO::EPDFUncertaintyStyle, std::string UncName, bool lNorm = false); std::vector<LHAPDF::PDFUncertainty> GetPDFUncertaintyLHAPDF(double cl=100*erf(1/sqrt(2)), bool alternative=false); //!< return PDF uncertainty, formulae taken from LHAPDF6 std::vector<double> CalcPDFUncertaintyMinus(const std::vector<LHAPDF::PDFUncertainty>& ) const; //!<get vector<double> for PDF-minus uncertainty. Uncertainties are POSITIVE! diff --git a/v2.5/toolkit/fastnlotoolkit/include/fastnlotk/fastNLOReader.h b/v2.5/toolkit/fastnlotoolkit/include/fastnlotk/fastNLOReader.h index 23ac03c4c7ed8b787ff1df5d92f52e814afb1c2f..c491b5cea33fe77068c9549f6e426decfcb2b6a3 100644 --- a/v2.5/toolkit/fastnlotoolkit/include/fastnlotk/fastNLOReader.h +++ b/v2.5/toolkit/fastnlotoolkit/include/fastnlotk/fastNLOReader.h @@ -98,14 +98,18 @@ public: std::vector < std::vector < double > > GetCrossSection2Dim(); //! Return struct with vectors (for C++) or vector of vectors (for Python) containing the cross section values and the selected uncertainty - //! Enum of Uncertaintstyle decides on method to call + //! Enum of Uncertaintstyle decides on method to call, but does not work for Python extension --> switch back to use differently named UncertaintyVec methods XsUncertainty GetXsUncertainty(const fastNLO::EScaleUncertaintyStyle eScaleUnc, bool lNorm = false, double sclfac = 1.); - std::vector< std::vector<double> > GetXsUncertaintyVec(const fastNLO::EScaleUncertaintyStyle eScaleUnc, bool lNorm = false, int iprint = 0, double sclfac = 1.); - void PrintXsUncertaintyVec(fastNLO::EScaleUncertaintyStyle, std::string UncName, bool lNorm = false, double sclfac =1.); + // std::vector< std::vector<double> > GetXsUncertaintyVec(const fastNLO::EScaleUncertaintyStyle eScaleUnc, bool lNorm = false, int iprint = 0, double sclfac = 1.); + // void PrintXsUncertaintyVec(fastNLO::EScaleUncertaintyStyle, std::string UncName, bool lNorm = false, double sclfac =1.); + std::vector< std::vector<double> > GetScaleUncertaintyVec(const fastNLO::EScaleUncertaintyStyle eScaleUnc, bool lNorm = false, int iprint = 0, double sclfac = 1.); + void PrintScaleUncertaintyVec(fastNLO::EScaleUncertaintyStyle, std::string UncName, bool lNorm = false, double sclfac =1.); // XsUncertainty GetXsUncertainty(const fastNLO::EStatUncertaintyStyle eStatUnc, bool lNorm = false); - std::vector< std::vector<double> > GetXsUncertaintyVec(const fastNLO::EStatUncertaintyStyle eStatUnc, bool lNorm = false, int iprint = 0); - void PrintXsUncertaintyVec(fastNLO::EStatUncertaintyStyle, std::string UncName, bool lNorm = false); + // std::vector< std::vector<double> > GetXsUncertaintyVec(const fastNLO::EStatUncertaintyStyle eStatUnc, bool lNorm = false, int iprint = 0); + // void PrintXsUncertaintyVec(fastNLO::EStatUncertaintyStyle, std::string UncName, bool lNorm = false); + std::vector< std::vector<double> > GetStatUncertaintyVec(const fastNLO::EStatUncertaintyStyle eStatUnc, bool lNorm = false, int iprint = 0); + void PrintStatUncertaintyVec(fastNLO::EStatUncertaintyStyle, std::string UncName, bool lNorm = false); // ---- Getters for fastNLOReader member variables ---- // fastNLO::EScaleFunctionalForm GetMuRFunctionalForm() const { return fMuRFunc; }; diff --git a/v2.5/toolkit/src/Makefile.am b/v2.5/toolkit/src/Makefile.am index d456f2eb15e7fe6be158ea733dd27e1366c50d4d..75bc6a4180d00379dd951c00c18dee48f7a4bc6b 100644 --- a/v2.5/toolkit/src/Makefile.am +++ b/v2.5/toolkit/src/Makefile.am @@ -43,7 +43,7 @@ fnlo_tk_merge_SOURCES = fnlo-tk-merge.cc fnlo_tk_merge2_SOURCES = fnlo-tk-merge2.cc fnlo_tk_append_SOURCES = fnlo-tk-append.cc fnlo_tk_modify_SOURCES = fnlo-tk-modify.cc -fnlo_tk_cat_SOURCES = fnlo-tk-cat.cc +fnlo_tk_cat_SOURCES = fnlo-tk-cat.cc # # Preprocessor flags @@ -57,14 +57,11 @@ if HAVE_LHAPDF endif # Individual targets -fnlo_tk_cppread_CPPFLAGS = $(my_include_dirs) -I${includedir} $(LHAPDFCPPFLAGS) $(AM_CPPFLAGS) -fnlo_tk_example_CPPFLAGS = $(my_include_dirs) -I${includedir} $(ROOTCPPFLAGS) $(AM_CPPFLAGS) -if HAVE_ROOT - fnlo_tk_example_CPPFLAGS += $(ROOTCPPFLAGS) -endif -fnlo_tk_yodaout_CPPFLAGS = $(my_include_dirs) -I${includedir} $(YODACPPFLAGS) $(AM_CPPFLAGS) -fnlo_tk_statunc_CPPFLAGS = $(my_include_dirs) -I${includedir} $(YODACPPFLAGS) $(AM_CPPFLAGS) -fnlo_tk_rootout_CPPFLAGS = $(my_include_dirs) -I${includedir} $(ROOTCPPFLAGS) $(AM_CPPFLAGS) +fnlo_tk_cppread_CPPFLAGS = $(my_include_dirs) -I${includedir} $(AM_CPPFLAGS) $(LHAPDFCPPFLAGS) +fnlo_tk_example_CPPFLAGS = $(my_include_dirs) -I${includedir} $(AM_CPPFLAGS) $(ROOTCPPFLAGS) +fnlo_tk_yodaout_CPPFLAGS = $(my_include_dirs) -I${includedir} $(AM_CPPFLAGS) $(YODACPPFLAGS) +fnlo_tk_statunc_CPPFLAGS = $(my_include_dirs) -I${includedir} $(AM_CPPFLAGS) $(YODACPPFLAGS) +fnlo_tk_rootout_CPPFLAGS = $(my_include_dirs) -I${includedir} $(AM_CPPFLAGS) $(ROOTCPPFLAGS) fnlo_tk_merge_CPPFLAGS = $(my_include_dirs) -I${includedir} $(AM_CPPFLAGS) fnlo_tk_merge2_CPPFLAGS = $(my_include_dirs) -I${includedir} $(AM_CPPFLAGS) fnlo_tk_append_CPPFLAGS = $(my_include_dirs) -I${includedir} $(AM_CPPFLAGS) @@ -74,18 +71,15 @@ fnlo_tk_cat_CPPFLAGS = $(my_include_dirs) -I${includedir} $(AM_CPPFLAGS) # # C++ compiler flags # -# Recall: -std=c++11 is requested by default through configure.ac macro AX_CXX_COMPILE_STDCXX_11 +# Recall: -std=c++17 is requested by default through configure.ac macro AX_CXX_COMPILE_STDCXX_17 # and works with g++, clang etc.! -# -std=gnu++11 is restricted to g++ only and not the best option +# -std=gnu++17 is restricted to g++ only and not the best option # All targets AM_CXXFLAGS = -g -O2 -Wall -Wdeprecated-declarations # Debug flags # AM_CXXFLAGS = -g -ftrapping-math -fsignaling-nans -O0 -Wall -fnlo_tk_cppread_CXXFLAGS = $(AM_CXXFLAGS) -fnlo_tk_example_CXXFLAGS = $(AM_CXXFLAGS) -if HAVE_ROOT - fnlo_tk_example_CXXFLAGS += $(ROOTCXXFLAGS) -endif +fnlo_tk_cppread_CXXFLAGS = $(AM_CXXFLAGS) $(HOPPETCXXFLAGS) +fnlo_tk_example_CXXFLAGS = $(AM_CXXFLAGS) $(ROOTCXXFLAGS) fnlo_tk_yodaout_CXXFLAGS = $(AM_CXXFLAGS) fnlo_tk_statunc_CXXFLAGS = $(AM_CXXFLAGS) fnlo_tk_rootout_CXXFLAGS = $(AM_CXXFLAGS) $(ROOTCXXFLAGS) @@ -101,13 +95,13 @@ fnlo_tk_cat_CXXFLAGS = $(AM_CXXFLAGS) # Require lhapdf, use lhapdf-config if possible # All targets AM_LDFLAGS = -L${pkglibdir} -lfastnlotoolkit +if HAVE_HOPPET + AM_LDFLAGS += -lgfortran +endif my_lib_dirs = -L${srcdir}/../fastnlotoolkit -lfastnlotoolkit -L${top_builddir}/fastnlotoolkit -lfastnlotoolkit -L${top_srcdir}/fastnlotoolkit -lfastnlotoolkit # Individual targets -fnlo_tk_cppread_LDFLAGS = $(my_lib_dirs) $(AM_LDFLAGS) $(LHAPDFLDFLAGS) -fnlo_tk_example_LDFLAGS = $(my_lib_dirs) $(AM_LDFLAGS) $(LHAPDFLDFLAGS) -if HAVE_ROOT - fnlo_tk_example_LDFLAGS += $(ROOTLDFLAGS) -endif +fnlo_tk_cppread_LDFLAGS = $(my_lib_dirs) $(AM_LDFLAGS) $(LHAPDFLDFLAGS) $(HOPPETLDFLAGS) +fnlo_tk_example_LDFLAGS = $(my_lib_dirs) $(AM_LDFLAGS) $(LHAPDFLDFLAGS) $(ROOTLDFLAGS) fnlo_tk_yodaout_LDFLAGS = $(my_lib_dirs) $(AM_LDFLAGS) $(LHAPDFLDFLAGS) $(YODALDFLAGS) fnlo_tk_statunc_LDFLAGS = $(my_lib_dirs) $(AM_LDFLAGS) $(LHAPDFLDFLAGS) $(YODALDFLAGS) fnlo_tk_rootout_LDFLAGS = $(my_lib_dirs) $(AM_LDFLAGS) $(LHAPDFLDFLAGS) $(ROOTLDFLAGS) diff --git a/v2.5/toolkit/src/fnlo-tk-rootout.cc b/v2.5/toolkit/src/fnlo-tk-rootout.cc index fe1c78986b0eb034b7391c3fd7d6a3b9bcac37f8..a6a29cc7fa084f32487840c06b1c1cbe7ce917e7 100644 --- a/v2.5/toolkit/src/fnlo-tk-rootout.cc +++ b/v2.5/toolkit/src/fnlo-tk-rootout.cc @@ -61,9 +61,11 @@ int main(int argc, char** argv) { } //! --- Parse commmand line +#ifdef WITH_ROOT char buffer[1024]; char titlel[1024]; char titleu[1024]; +#endif string tablename; if (argc <= 1) { yell << "" << endl; @@ -165,7 +167,7 @@ int main(int argc, char** argv) { //! --- Uncertainty choice EScaleUncertaintyStyle eScaleUnc = kScaleNone; EPDFUncertaintyStyle ePDFUnc = kPDFNone; - EAsUncertaintyStyle eAsUnc = kAsNone; + // EAsUncertaintyStyle eAsUnc = kAsNone; EStatUncertaintyStyle eStatUnc = kStatNone; string chunc; if (argc > 3) { @@ -423,9 +425,11 @@ int main(int argc, char** argv) { #endif // Define histogram multiplicity and initialise histogram counter +#ifdef WITH_ROOT const unsigned int nMult = 3; - unsigned int nHist = 0; unsigned int nHistAll = 0; +#endif + unsigned int nHist = 0; //! --- Now loop over PDF sets for (unsigned int iPDF=0; iPDF<PDFFiles.size(); iPDF++) { @@ -470,7 +474,9 @@ int main(int argc, char** argv) { fnlo->CalcCrossSection(); //! Do PDF, statistical/numerical, and scale uncertainties +#ifdef WITH_ROOT unsigned int iOffs[4] = {1,3,6,8}; +#endif for (unsigned int iUnc = 0; iUnc<4; iUnc++) { //! Get cross section & uncertainties (only for additive perturbative contributions) @@ -561,7 +567,6 @@ int main(int argc, char** argv) { #ifdef WITH_ROOT //! --- Book ROOT histos TH1D *histo[nMult*nHist]; -#endif //! Loop over no. of histograms unsigned int iobs = 0; @@ -593,7 +598,6 @@ int main(int argc, char** argv) { exit(1); } -#ifdef WITH_ROOT // Arrays to fill ROOT histos // N+1 bin borders double xbins[nHistBins+1]; @@ -656,7 +660,6 @@ int main(int argc, char** argv) { histo[ih+iUnc]->GetXaxis()->SetTitle(fnlo->GetDimLabels()[NDim-1].c_str()); histo[ih+iUnc]->GetYaxis()->SetTitle(titleu); nHistAll++; -#endif if (NDim == 1 ) { iobs = 0; @@ -677,6 +680,7 @@ int main(int argc, char** argv) { } } } +#endif } } }