Images other than ATLAS releases
In general, it should be possible to install lhapdf onto a docker image following the installation instructions on the lhapdf webpage, then pdf sets can be downloaded from http://lhapdfsets.web.cern.ch/lhapdfsets/current/ using the lhapdf command-line tool.
Eg. to download the NNPDF30_lo_as_0130 dataset:
lhapdf --source=http://lhapdfsets.web.cern.ch/lhapdfsets/current/ get NNPDF30_lo_as_0130
ATLAS release images
However, this installation doesn’t seem to work in the atlas release images (eg. atlas/athanalysis
), giving the following error message:
Unable to execute '/cvmfs/sft.cern.ch/lcg/releases/gcc/8.2.0-3fa06/x86_64-centos7/bin/gcc': No such file or directory
The atlas release image does come with its own lhapdf installation, but currently a few (rather kludgy) modifications are needed to get it working.
- There seems to be a buggy line in the
lhapdf
executable python script, which can be fixed as follows: replace line 17 in the lhapdf executable /usr/AthAnalysisExternals/21.2.115/InstallArea/x86_64-centos7-gcc8-opt/bin/lhapdf
from
.replace('${datarootdir}', '${prefix}/share')\
to
configured_datadir = configured_datadir.replace('${datarootdir}', '${prefix}/share')\
- Install the
lhapdf
python client locally:
pip install --user lhapdf
- Make the lhapdf directory containing the pdf set list
pdfsets.index
, config file lhapdf.conf
and downloaded pdf sets writeable by all. Eg. for the atlas/athanalysis:21.2.115
container:
sudo chmod -R a+w /usr/AthAnalysisExternals/21.2.115/InstallArea/x86_64-centos7-gcc8-opt/share/LHAPDF
It should now be possible to download pdf sets with the source url specified (otherwise it tries to look for them in cvmfs
by default). Eg.
lhapdf --source=http://lhapdfsets.web.cern.ch/lhapdfsets/current/ get NNPDF30_lo_as_0130
1 Like
Thanks very much for this post, @damacdon! It was helpful in giving some instructions for this Docker image. 
Yippee!! Thanks for the feedback @feickert, I’m glad it could be of use to someone 
1 Like
So as brought to my attention by Silvia Auricchio, this is still a problem in modern AnalysisBase
images. I’ve learned that this is because LHAPDF_DATA_PATH
is being set to that it assumes the user is on CVMFS (which is a bad assumption).
$ docker run --rm -ti atlas/analysisbase:21.2.164
_ _____ _ _ ___
/_\_ _| | /_\ / __|
/ _ \| | | |__ / _ \\__ \
/_/ \_\_| |____/_/ \_\___/
This is a self-contained ATLAS AnalysisBase image.
To set up the analysis release of the image, please
execute:
source /release_setup.sh
[bash][atlas]:workdir > . /release_setup.sh
Configured GCC from: /opt/lcg/gcc/8.3.0-cebb0/x86_64-centos7/bin/gcc
Configured AnalysisBase from: /usr/AnalysisBase/21.2.164/InstallArea/x86_64-centos7-gcc8-opt
[bash][atlas AnalysisBase-21.2.164]:workdir > echo "${LHAPDF_DATA_PATH}"
/cvmfs/sft.cern.ch/lcg/external/lhapdfsets/current:/usr/AnalysisBase/21.2.164/InstallArea/x86_64-centos7-gcc8-opt/../../../../AnalysisBaseExternals/21.2.164/InstallArea/x86_64-centos7-gcc8-opt/share/LHAPDF
[bash][atlas AnalysisBase-21.2.164]:workdir > lhapdf ls
Could not open /cvmfs/sft.cern.ch/lcg/external/lhapdfsets/current/pdfsets.index
This can be avoided by removing the CVMFS component from the path
[bash][atlas AnalysisBase-21.2.164]:workdir > export LHAPDF_DATA_PATH="${LHAPDF_DATA_PATH#*:}"
[bash][atlas AnalysisBase-21.2.164]:workdir > echo "${LHAPDF_DATA_PATH}"
/usr/AnalysisBase/21.2.164/InstallArea/x86_64-centos7-gcc8-opt/../../../../AnalysisBaseExternals/21.2.164/InstallArea/x86_64-centos7-gcc8-opt/share/LHAPDF
[bash][atlas AnalysisBase-21.2.164]:workdir > lhapdf ls | grep NNPDF23_lo_as_0130_qed
NNPDF23_lo_as_0130_qed
but this is not a very good fix in general. This should probably be reported to the AnalysisBase Docker image maintainers.