#physics #events #read-write #parser #file-format #xml-parser #generator

lhef

读取和写入 Les Houches 事件文件格式 (LHEF) 的文件

11 个不稳定版本 (5 个破坏性版本)

0.6.0 2023 年 7 月 18 日
0.4.0 2021 年 9 月 17 日
0.3.4 2021 年 3 月 11 日
0.3.2 2020 年 8 月 29 日
0.2.1 2018 年 11 月 4 日

#2755 in 解析器实现

每月 24 次下载
用于 2 crate

GPL-3.0 或更高版本

215KB
986

lhef

LHEF 文件格式 (LHEF) 文件的交互库。

Lhef 支持通过 ReaderWriter 结构体进行读写。生成运行信息通过 HEPRUP 对象提供,每个事件存储在一个 HEPEUP 对象中。这些结构体对应于原始提案中同名 Fortran 公共块,但包含额外的 info 字段,对应于 LHEF 标准中指定的“可选信息”。

目前,完全支持 LHEF 格式的 1.0 版本。2.0 和 3.0 版本的文件与 1.0 版本完全相同地进行解析。这意味着需要从 HEPRUPHEPEUP 对象的 info 字段中手动提取额外的 XML 标签。

示例

use lhef::Reader;
use std::fs::File;
use std::io::BufReader;

let input = BufReader::new(File::open("events.lhe")?);

let mut reader = Reader::new(input)?;

println!("Information in comment header:\n{}", reader.header());
println!("Information in xml header:\n{:?}", reader.xml_header());
println!("Generator run information:\n{:?}", reader.heprup());

let event = reader.hepeup()?;
if let Some(event) = event {
    println!("Found an event: {:?}", event);
}

许可证:GPL-3.0 或更高版本

依赖项

~1.1–1.7MB
~35K SLoC