11 unstable releases (5 breaking)
0.6.0 | Jul 18, 2023 |
---|---|
0.4.0 | Sep 17, 2021 |
0.3.4 | Mar 11, 2021 |
0.3.2 | Aug 29, 2020 |
0.2.1 | Nov 4, 2018 |
#101 in #xml-parser
Used in 2 crates
215KB
986 lines
lhef
A library for interacting with files in the Les Houches Event File (LHEF) format.
Lhef supports both reading and writing via the Reader
and Writer
structs. Information about the generator run is provided in a HEPRUP
object and each event is stored in a HEPEUP
object. These structs
correspond to the Fortran common blocks of the same names in the
original proposal, but contain
extra info
fields corresponding to the "optional information"
specified in the LHEF standard.
As of now, only version 1.0 of
the LHEF format is fully supported. Files in version
2.0
and 3.0 are
parsed exactly like for version 1.0. This means that the additional XML
tags have to be extracted manually from the info
fields of the
HEPRUP
and HEPEUP
objects.
Examples
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);
}
License: GPL-3.0-or-later
Dependencies
~1–1.6MB
~35K SLoC