ROOT图形的LHCb样式
项目描述
LHCbStyle
包含python包装器和工具的lhcbStyle.C宏的打包版本。
只寻找宏本身? 点击这里
安装
注意:如果使用lb-conda default,此包已经可用。
通过包管理器
可以使用pip安装python模块
pip install lhcbstyle
或conda(通过conda-forge)
conda install -c conda-forge lhcbstyle
安装宏
注意:conda用户可以忽略此步骤。它是自动完成的。
使用pip或从源安装包后,还需要进行最后一步,将lhcbStyle.C宏安装到ROOT宏路径。这可以通过控制台命令完成
lhcbstyle install
默认目录通过PyROOT函数gROOT.GetMacroDir()找到,通常位于如/usr/share/root/macros或$ROOTSYS/macros这样的位置。如果您没有权限写入此目录,或者您想将宏安装到不同的ROOT安装中,您可以使用环境变量设置目标。
ROOT_MACRO_DIR=/path/to/macros lhcbstyle install
或者使用命令行选项--macro-dir
lhcbstyle install --macro-dir /path/to/macros
如果您选择的路径不对应于$ROOTSYS/macros,则您可以使用~/.rootrc文件将其添加到ROOT的宏路径中。例如,如果您将lhcbStyle.C安装到~/.local/share/root/macros,则将此行添加到~/.rootrc
Unix.*.Root.MacroPath: .:$(HOME)/.local/share/root/macros:$(ROOTSYS)/macros
使用方法
在C++中
宏成功安装后,您可以用通常的方式调用它
gROOT->ProcessLine(".L lhcbStyle.C");
lhcbStyle();
函数lhcbStyle()接受一个布尔参数print_msg,该参数控制是否在设置样式时将消息打印到stdout。
TPaveText(lhcbName)、TText(lhcbLabel)和TLatex(lhcbLatex)对象现在位于LHCbStyle命名空间中。
例如,要使用默认位置在图表上绘制“LHCb”注释
LHCbStyle::lhcbName->Draw("same");
在同一个命名空间中也有可用的TStyle对象(lhcbStyle)。
例如,在调用lhcbStyle()之前调整样式
LHCbStyle::lhcbStyle->SetPadLeftMargin(0.16);
或者在调用lhcbStyle()之后
gStyle->SetPadLeftMargin(0.16);
在Python中
当然,在PyROOT中,您可以像在C++中一样执行宏
ROOT.gROOT.ProcessLine(".L lhcbStyle.C")
ROOT.lhcbStyle()
但是,该包包含一个名为LHCbStyle的Python类,它添加了上下文管理,允许使用with关键字,例如
from lhcbstyle import LHCbStyle
with LHCbStyle() as lbs:
can = ROOT.TCanvas()
hist = make_plot()
hist.Draw("E1")
lbs.lhcbName.Draw("same")
can.SaveAs("hist_lhcb.png")
从命令行
还有一个控制台命令lhcbstyle plot,可以绘制保存在ROOT文件中的可绘制对象。
位置参数是
- 要打开的ROOT文件
- 要绘制的
TObject的名称 - 输出文件名,不带扩展名(可选,默认为"plot")
可选参数是
--draw-style,-D:传递给Draw()函数的选项字符串--formats,-F:保存图表的文件扩展名
还可以使用以下选项之一添加到图表的标签
--official:绘制“LHCb”标签--preliminary:绘制“LHCb Preliminary”标签--simulation:绘制“LHCb Simulation”标签--unofficial:绘制“LHCb Unofficial”标签--no-label:不绘制任何标签(默认)
例如,要打开plot.root,提取名为hist的TH1D并带有错误条绘制它,并保存为Fig1.pdf、Fig1.eps和Fig1.png
lhcbstyle plot plot.root hist Fig1 --formats pdf eps png
使用以下命令查看完整的用法说明
lhcbstyle plot -h
贡献
创建开发环境
ssh://git@gitlab.cern.ch:7999/lhcb-docs/lhcbstyle.git
cd lhcbstyle
mamba create --name test-env root pytest pip setuptools_scm
pip install -e .[testing]
pre-commit install
curl -o lb-check-copyright "https://gitlab.cern.ch/lhcb-core/LbDevTools/raw/master/LbDevTools/SourceTools.py?inline=false"
chmod +x lb-check-copyright
运行测试
pre-commit run --all-files
pytest
项目详情
下载文件
下载适用于您的平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。