向ServiceX端点提交功能查询。
项目描述
func_adl_servicex
将func_adl表达式发送到ServiceX端点
简介
此包包含单个对象ServiceXSourceXAOD
和ServiceXSourceUpROOT
,可用作func_adl
表达式的根,以查询来自网络上活跃的ServiceX
实例的大型LHC数据集。
以下为简单示例。
更多信息
servicex
文档func_adl
文档
用法
要在servicex
上使用func_adl
,您只需要安装此包。所有其他要求都将作为此包的依赖项自动拉入。
使用xAOD后端
请参阅上述文档的更多信息以了解其工作原理。以下是一个快速示例,它将在servicex
中的ATLAS xAOD
后端中运行,以获取pt > 30
GeV的喷气机pt值。
from func_adl_servicex import ServiceXSourceXAOD
dataset_xaod = "mc15_13TeV:mc15_13TeV.361106.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zee.merge.DAOD_STDM3.e3601_s2576_s2132_r6630_r6264_p2363_tid05630052_00"
ds = ServiceXSourceXAOD(dataset_xaod)
data = (
ds
.SelectMany('lambda e: (e.Jets("AntiKt4EMTopoJets"))')
.Where('lambda j: (j.pt()/1000)>30')
.Select('lambda j: j.pt()')
.AsAwkwardArray(["JetPt"])
.value()
)
print(data['JetPt'])
使用CMS Run 1 AOD后端
请参阅上述文档的更多信息以了解其工作原理。以下是一个快速示例,它将在servicex
中的CMS Run 1 AOD
后端中运行。它将针对一个6TB的CMS Open Data数据集,选择具有大于30 GeV的pT的全局μ子。
from func_adl_servicex import ServiceXSourceCMSRun1AOD
dataset_xaod = "cernopendata://16"
ds = ServiceXSourceCMSRun1AOD(dataset_xaod)
data = (
ds
.SelectMany(lambda e: e.TrackMuons("globalMuons"))
.Where(lambda m: m.pt() > 30)
.Select(lambda m: m.pt())
.AsAwkwardArray(['mu_pt'])
.value()
)
print(data['mu_pt'])
使用uproot后端
请参阅上述文档的更多信息以了解其工作原理。以下是一个快速示例,它将在servicex
中的uproot后端的ROOT文件(TTree)中运行,以获取喷气机pt值。请注意,这里的图像名称标记可能是错误的。请参阅XXX以获取当前标记。
from servicex import ServiceXDataset
from func_adl_servicex import ServiceXSourceUpROOT
dataset_uproot = "user.kchoi:user.kchoi.ttHML_80fb_ttbar"
uproot_transformer_image = "sslhep/servicex_func_adl_uproot_transformer:issue6"
sx_dataset = ServiceXDataset(dataset_uproot, image=uproot_transformer_image)
ds = ServiceXSourceUpROOT(sx_dataset, "nominal")
data = (
ds.Select("lambda e: {
'lep_pt_1': e.lep_Pt_1,
'lep_pt_2': e.lep_Pt_2
}")
.value()
print(data)
在本地数据集上运行
可以在本地文件上运行。这在测试或构建代码时效果很好,但如果需要在大批文件上运行则非常糟糕。建议仅使用单个文件。在大多数情况下,它是ServiceX
后端版本的直接替换。
首先,必须安装func_adl_servicex
的local
变体。如果你使用pip
,可以执行以下操作
pip install func_adl_servicex[local]
安装完成后,以下操作将正常工作
from func_adl_servicex import SXLocalxAOD
dataset_xaod = "my_local_xaod.root"
ds = SXLocalxAOD(dataset_xaod)
data = (ds
.SelectMany('lambda e: (e.Jets("AntiKt4EMTopoJets"))')
.Where('lambda j: (j.pt()/1000)>30')
.Select('lambda j: j.pt()')
.AsAwkwardArray(["JetPt"])
.value()
)
print(data['JetPt'])
并将SXLocalxAOD
替换为SXLocalCMSRun1AOD
以使用CMS后端(当然,还需要更新查询)。
开发
欢迎PR。请随意添加问题以提出新功能或提问。
master
分支是最新的提交,这些提交都通过了所有测试,并计划用于下一个版本。版本带有标记。对任何发布版本的修改都是在这些标记之外进行的。
Qastle
这是针对在servicex
中运行的的后端工作的人员。
这是为xAOD数据集生成的qastle
(call EventDataset 'ServiceXDatasetSource')
(实际数据集名称通过servicex
网络API调用传入。)
这是为ROOT平面文件生成的qastle
(call EventDataset 'ServiceXDatasetSource' 'tree_name')
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。
源分布
构建分发版
func_adl_servicex-2.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | aa825a95bd7d9b83d1bf15a200d1ad40d434fbd4a83b732fcfe4ef9e6e4e8cdb |
|
MD5 | ce547acad46d9fdac39befa6277818e2 |
|
BLAKE2b-256 | 2b77d0bee3c061b2c733eb57e3aa8efe04f607cd319b98d999000d99ee8838f8 |
func_adl_servicex-2.2-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 225a60ddb4d7b2fd455c8e0221834a7d42b30e8406df71f0b738614d7a5f07c9 |
|
MD5 | 05d74bb07f9ec683d88af0ffc6bb050d |
|
BLAKE2b-256 | 6bbe6ba10fba76bdc49e626899b467f260b7927568b097937a636959146c630a |