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
项目详情
下载文件
下载适用于您的平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。