lhapdf公司由托管赫普福吉,IPPP达勒姆
LHAPDF公司 6.5.4
 全部 课程 命名空间 文件夹 功能 变量 类型定义 枚举  页码
LHAPDF文件

介绍

LHAPDF公司是高能物理中评估部分子分布函数(PDF)的标准工具。PDF编码质子、π和原子核等复合粒子的味道和动量结构;大多数横截面计算都基于部分级矩阵元素,这些元素必须与真实的相互作用粒子相连接,因此,PDF是强子和重离子对撞机(例如LHC、HERA、Tevatron、EIC、FCC)和宇宙射线物理中现象学和实验研究的重要组成部分。

PDF本身通过各种协作适应一系列数据。LHAPDF公司以标准数据格式提供了此类匹配的权威社区库,以及用于评估它们的C++和Python接口。作为一个通用的C++内插器,用于从离散数据文件中估计PDF,它还发现了更通用的用途,例如用于分段函数(本质上是PDF的逆函数)。

历史和兼容性

的早期版本LHAPDF公司是用Fortran 77/90编写的,记录在http://lhapdf.hepforge.org/lhapdf5/.LHAPDF6大大减少了Fortran的内存开销LHAPDF公司(从千兆字节到兆字节!),完全取消了对并发PDF数量的限制,允许访问单个PDF成员而无需加载整个集合,并将新的标准化PDF数据格式从代码库中分离出来,以便可以更轻松、更快地创建和发布新的PDF集合。C++LHAPDF6还允许通过标准PDG ID代码方案实现任意部分子内容,计算效率更高(尤其是在每个相空间点只需要一种或两种风格的情况下,如PDF重加权),并使用灵活的元数据系统修复了LHAPDF5中的许多基本元数据和并发错误。

兼容例程是使用LHAPDF5和PDFLIB遗留接口为现有C++和Fortran代码提供的标准,因此您可以继续使用现有代码。但新的界面功能更强大,使用起来也更愉快,所以我们认为一旦你使用了它,你就会想切换了!

LHAPDF6详细记录在http://arxiv.org/abs/11412.7420

安装

源文件可以从下载https://lhapdf.hepforge.org/下载/

有关完整的安装和故障排除详细信息,请访问安装说明.

官方PDF集

以下链接将带您访问当前可用且官方支持的PDF集:

PDF集合数据文件可以从以下位置下载http://lhapdfsets.web.cern.ch/lhapdfset/当前/也可通过CERN CVMFS获得,网址为/cvmfs/sft.cern.ch/lcg/external/lhapdfsets/current公司/。许多用户会发现只需设置左APDF_DATA_PATH指向此分布式文件系统区域并在其中使用预安装的最新集合的环境变量。

我们还提供了一个名为lhapdf公司可用于查询PDF集合的目录,并从命令行安装和更新它们。该脚本的用户界面受到Debian Linux的启发恰当的包管理系统–它接受命令列表,更新,安装升级.请运行lhapdf帮助获取完整的使用说明。请注意,此脚本当前需要LHAPDF公司库的构建和安装都支持Python。

将LHAPDF5中每个主要PDF管件组的最新PDF集合族移植到统一的LHAPDF6格式。除了一些特别重要的较旧PDF集例外,这意味着迁移集的有效年龄截止值为2005年左右。

如果您需要较旧的集合,建议您将LHAPDF5版本转换为LHAPDF6的数据格式:请参阅构建和运行迁移脚本/程序的说明第页了解此过程的详细信息。我们不支持LHAPDF5,除了LHAPDF6中已有的许多迁移之外,还需要一个非常强大的案例来进行进一步的“官方”集合迁移。

提交新的PDF集

如果要将新的PDF集(或碎片函数等)添加到标准集合,或更新现有数据文件,请在以下位置创建新的GitLab问题:https://gitlab.com/hepsedar/lhapdf/-/issues网站,带有“PDF数据”标签。

请注意,您需要自己创建和验证这些数据文件,并在公共文件中出现用户报告的错误时修复和更新它们。我们将分配适当的ID代码(需要添加到您的新集合中).info(信息)文件),并管理新文件的索引和分发。我们保留不加入不适合公众使用的PDF文件的权利。

请遵循此过程以使提交尽可能顺利:

  • 对于新的集合,首先请描述要添加的PDF,包括每个集合的成员数量:然后我们将提出LHAPDF公司每组的ID代码。不要将设置的tarball附加到问题上,因为它们在使用之前肯定需要更新。

    对于更新,您可以直接进入下一步。

  • 为集成准备柏油球:
    • 为每个PDF集分配这些ID代码设置索引其中的标志.info(信息)文件,并设置数据版本标记为1如果是新版本,则增加一个。
    • 确保Unix文件权限对于set目录为755,对于其中的数据文件为644。
    • 确保没有无关文件(例如Mac.DS_存储隐藏目录)。
    • 用一个.塔尔.gz扩展,以便仅扩展到设置的目录(及其内容):tar czf MySet.tar.gz MySet(我的设置)/.
    • 将tarball放在可直接下载的Web位置–避免使用需要浏览器身份验证或将使用损坏的文件名下载的服务:同步将使用命令行检索工具执行,如wget公司卷曲.
  • 通知GitLab问题的下载URL集。

如果您遇到任何问题或对某些方面有疑问,请在合并请求单上讨论,或联系LHAPDF公司作者位于利哈普德.nosp@米。f-su(f-su).nosp@米。支持.nosp@米。@cer(证书).nosp@米。不适用于中国.

用法

与以前的版本一样,LHAPDF6是一个程序库。它可以通过用C++编写的用户代码进行访问,也可以从Python和Fortran程序进行更有限的访问。

PDF集(每个都存储在一个唯一的文件系统目录中)通常应安装在$前缀/份额/LHAPDF/目录(即PDF目录与全局目录处于同一级别lhapdf-conf公司文件)。要使用安装在其他地方的PDF集,这些搜索路径应列在左APDF_DATA_PATH环境变量。[左APDF_DATA_PATH是旧的延伸拉帕斯支持由冒号分隔的多个搜索路径的变量(:)字符,参见标准系统路径,如路径,LD_LIBRARY_PATH(本地_远程_路径)等]

以下是一些关于库设计和PDF/set/config元数据标志系统的参考文档:

这里收集了许多代码使用示例:

警告
请注意,从6.5.x发行版系列开始,LHAPDF公司是完全螺纹安全的。为了确保这一点,以前可能存在于线程之间共享内存中的几个元素(有时会产生争用条件,并且通常有跨线程损坏的风险)现在显式地使用了线程长度。特别要注意的是,在Fortran接口中,现在必须在每个线程(而不仅仅是一个线程)上调用PDF集合的初始化例程。

针对LHAPDF建设

使用LHAPDF公司通过Python只需要LHAPDF公司安装库和模块后,就可以使用它了:只要正确设置了Python和dynamic-library搜索路径,就没有编译或链接的复杂性。

然而,对于C++和Fortran,您需要根据LHAPDF公司,这带来了一些额外的技术障碍。

使用LHAPDF6构建您自己的程序有助于lhapdf-配置脚本,其中可以生成需要使用的编译器标志LHAPDF公司。其中包括-I/路径/到/包含指示安装位置的标志LHAPDF公司头文件,以及-L/path/to/lib-lLHAPDF库链接器的标志。该脚本用于编译/链接命令,如下所示:

g++mycode.cc-o myexe`lhapdf-config--cflags--ldflags`

如果您正在编译Fortran程序LHAPDF公司,头文件不相关,但库详细信息相关。您还需要显式链接到C++标准库,这是由C++编译器隐式完成的:

gfortran mycode.f90-o myexe `lhapdf-config--ldflags`-lstdc++

运行时符号解析

最后,请注意LHAPDF公司主要作为“动态”共享库提供,即.所以.dylib公司(Mac)而不是静态.a个库。动态库需要在运行时以及编译/链接时找到。

如果代码编译得很好,但在尝试运行程序时出现“缺少符号”的错误,则可能需要添加LHAPDF公司lib目录路径LD_LIBRARY_PATH(本地_远程_路径)环境变量(或DYLD_ IBRARY_路径在Mac上):

导出LD_LIBRARY_PATH=/PATH/to/lib:$LD_LIBARY_PATH

删除不需要的PDF成员的技巧

带有错误成员的典型LHAPDF6 PDF集的大小在20到100 MB之间。如果您只打算使用其中的一个子集(例如,在MC生产中,您将只使用中心成员),则只需删除不需要的.dat日期PDF集合目录中的文件。当然,只要你不尝试加载其中一个丢失的成员,它就会很好地工作!在网格作业提交中,这可以大幅度减少随作业发送的数据的tarball,因为PDF集通常占主导地位。

使用压缩数据文件的技巧

对于PDF初始化速度或磁盘空间非常至关重要的是,您可能希望使用压缩的PDF数据文件。由于数据文件是纯文本,因此它们的压缩效果很好,大约为4倍,但对于大多数应用程序来说,这在很大程度上无关紧要,因为您通常不需要安装超过100 MB的数据文件来使用主要的现代PDF集,并且集初始化时间不到1秒。。。每次跑步只会发生一次。

实际上,读取压缩数据文件会LHAPDF公司的代码和(更重要的)构建过程更为尴尬,所以我们还没有这样做。然而,如果你真的需要从有限的空间和时间中挤出最大的空间和时间,那么至少在Linux系统上,你可以使用LD_重新加载。此环境变量指定在启动进程之前要加载的库,是一种用修改的版本替换系统库函数的机制。

在这种情况下,我们可以覆盖打开(“foo”)函数的版本将尝试透明读取食品.gz,解压缩到/临时管理计划目录,通过设置LD_PRELOAD=/lib/uncompress.so在你的工作中。请参阅兹利布文档以获取更多详细信息。LHAPDF6本身无需修改,但您需要光盘在PDF集合中运行对于*.dat中的i;执行gzip$i;完成在每个你想要压缩的地方。

这是一个相当破解,可能无法在Mac上运行。。。但它在特殊情况下可能有用。如果您使用它,请告诉我们您的体验!

作者

LHAPDF6作者
===============
首席开发人员:
安迪·巴克利
代码贡献者:
詹姆斯·费兰多
大卫·霍尔
马克斯·诺布
史蒂夫·劳埃德
卡尔·诺德斯特罗姆
马丁·鲁费纳赫特
格雷姆·瓦特
测试、建议、数据管理等:
理查德·鲍尔
路易吉·德尔·德比奥
内森·哈特兰
德米特里·康斯坦蒂诺夫
本·佩奇
胡安·罗霍
马雷克·肖恩海尔
迈克·威利
引用
========
请务必引用以下文件如果您使用LHAPDF6:
“LHAPDF6:LHC精确时代的部分子密度存取”
欧洲物理学会。J.C75(2015)3,132
网址://arxiv.org/abs/1412.7420
Les Houches研讨会记录中出现了LHAPDF6的早期进展情况:
“通过LHAPDF6新访问PDF数据”作者:A.Buckley
在里面“Les Houches 2013:TeV对撞机物理:标准模型工作组报告”
网址://arxiv.org/abs/1405.1067
网址://inspirehep.net/search?p=查找+eprint+140.5.1067

支持和错误报告

如果您需要以下方面的帮助LHAPDF公司,请联系作者利哈普德.nosp@米。f-su(f-su).nosp@米。支持.nosp@米。@cer(证书).nosp@米。不适用于中国。请将功能建议发送到此地址:如果可以避免,请不要联系个别开发人员。我们也接受称赞;-)

你是非常强烈建议您确保运行的是最新版本的LHAPDF公司库,因为问题通常在以后的版本中得到修复。请提供有关您使用的版本、使用的系统类型和编译器的信息,以及LHAPDF公司config.log文件,一个相当完整的错误副本,以及下载和运行此脚本的输出:https://users.hepforg.org/~buckley/sysdebug.sh.

请不要将您的终端截图发送给我们!要捕获命令的输出,请使用如下shell重定向:make&>makelog.txtbash sysdebug.sh&>sysdebag.txt(您可能更喜欢使用重定向,如|&发球台傻瓜.txt但如果您有这样的偏好,可能不需要我们的建议。)

最后,请尝试阅读configure/compiler/runtime错误消息:一旦解码,它可能会告诉您一些简单的信息,例如您没有所需的编译器,您正在64位系统上针对32位库进行编译,或者您尚未安装PDF数据文件。如果您无法解析错误消息,那么在寻求直接帮助之前,请尝试在谷歌上搜索消息的一般性部分:通常在线上都有很好的解释和解决方案。

对于开发人员

要从git查看LHAPDF6,请访问下面的GitLab页面,并通过SSH或HTTPS遵循克隆说明。

请参阅以下页面:

托多(Todo):
添加一些开发人员构建指南,包括autotools、Cython等。