Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/scikit-hep/pylhe
Lightweight Python interface to read Les Houches Event (LHE) files
https://github.com/scikit-hep/pylhe
hep lhe particle-physics scikit-hep
Last synced: 5 days ago
JSON representation
Lightweight Python interface to read Les Houches Event (LHE) files
- Host: GitHub
- URL: https://github.com/scikit-hep/pylhe
- Owner: scikit-hep
- License: apache-2.0
- Created: 2015-05-02T23:13:39.000Z (over 9 years ago)
- Default Branch: main
- Last Pushed: 2024-12-16T03:06:08.000Z (18 days ago)
- Last Synced: 2024-12-21T19:08:34.565Z (12 days ago)
- Topics: hep, lhe, particle-physics, scikit-hep
- Language: Python
- Homepage: https://pypi.org/project/pylhe/
- Size: 1.81 MB
- Stars: 41
- Watchers: 6
- Forks: 23
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Citation: CITATION.cff
Awesome Lists containing this project
README
# pylhe: Python LHE interface
[![GitHub Project](https://img.shields.io/badge/GitHub--blue?style=social&logo=GitHub)](https://github.com/scikit-hep/pylhe)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1217031.svg)](https://doi.org/10.5281/zenodo.1217031)
[![Scikit-HEP](https://scikit-hep.org/assets/images/Scikit--HEP-Project-blue.svg)](https://scikit-hep.org/)[![PyPI version](https://img.shields.io/pypi/v/pylhe.svg)](https://pypi.org/project/pylhe/)
[![Conda-forge version](https://img.shields.io/conda/vn/conda-forge/pylhe.svg)](https://github.com/conda-forge/pylhe-feedstock)
[![Supported Python versions](https://img.shields.io/pypi/pyversions/pylhe.svg)](https://pypi.org/project/pylhe/)[![GitHub Actions Status](https://github.com/scikit-hep/pylhe/actions/workflows/ci.yml/badge.svg)](https://github.com/scikit-hep/pylhe/actions/workflows/ci.yml?query=branch%3Amain)
[![Code Coverage](https://codecov.io/gh/scikit-hep/pylhe/graph/badge.svg?branch=main)](https://codecov.io/gh/scikit-hep/pylhe?branch=main)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/scikit-hep/pylhe/main.svg)](https://results.pre-commit.ci/latest/github/scikit-hep/pylhe/main)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)Small and thin Python interface to read [Les Houches Event (LHE)](https://inspirehep.net/record/725284) files
## Install
To install `pylhe` from PyPI you can just do
```
python -m pip install pylhe
```The visualization capabilities require the external dependency of [Graphviz](https://graphviz.org/).
## Get started
The example below provides a simple overview.
Full functionality can be inspected from the functions provided in the `pylhe` module.### Reading
```python
import itertools# You can use LHE files from scikit-hep-testdata
from skhep_testdata import data_pathimport pylhe
lhe_file = data_path("pylhe-testlhef3.lhe")
events = pylhe.read_lhe_with_attributes(lhe_file)
print(f"Number of events: {pylhe.read_num_events(lhe_file)}")# Get event 1
event = next(itertools.islice(events, 1, 2))# A DOT language graph of the event can be inspected as follows
print(event.graph.source)# The graph is nicely displayed as SVG in Jupyter notebooks
event# To save a DOT graph render the graph to a supported image format
# (refer to the Graphviz documentation for more)
event.graph.render(filename="test", format="png", cleanup=True)
event.graph.render(filename="test", format="pdf", cleanup=True)
```### Writing
For a full example see [write](examples/write_monte_carlo_example.ipynb) or [filter](examples/filter_events_example.ipynb).
The values in the sketch below are intentionally left empty since they depend on the use-case.
The data structure of `pylhe` is:```python
import pylhefile=pylhe.LHEFile(
init=pylhe.LHEInit(
initInfo=pylhe.LHEInitInfo(
beamA=,
beamB=,
energyA=,
energyB=,
PDFgroupA=,
PDFgroupB=,
PDFsetA=,
PDFsetB=,
weightinStrategy=,
numProcesses=,
),
procInfo=pylhe.LHEProcInfo(
xSection=,
error=,
unitWeight=,
procId=,
),
),
events=[
pylhe.LHEEvent(
eventinfo=pylhe.LHEEventInfo(
nparticles=,
pid=,
weight=,
scale=,
aqed=,
aqcd=,
),
particles=[
pylhe.LHEParticle(
id=,
status=,
mother1=,
mother2=,
color1=,
color2=,
px=,
py=,
pz=,
e=,
m=,
lifetime=,
spin=,
),
...
],
weights=None,
attributes=None,
optional=None,
),
...
]
)# write to file, compressed if gz/gzip suffix
write_lhe_file(file.init, file.events, "myevents.lhe.gz", rwgt=True, weights=False)```
## Citation
The preferred BibTeX entry for citation of `pylhe` is
```
@software{pylhe,
author = {Lukas Heinrich and Matthew Feickert and Eduardo Rodrigues and Alexander Puck Neuwirth},
title = "{pylhe: v0.9.1}",
version = {v0.9.1},
doi = {10.5281/zenodo.1217031},
url = {https://github.com/scikit-hep/pylhe},
}
```## Contributors
We hereby acknowledge the contributors that made this project possible ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
Matthew Feickert
🚧 🎨 💻 📖
Lukas
🚧 🎨 💻 📖
Eduardo Rodrigues
🚧 💻 📖
Johannes Schumann
💻
Henry Schreiner
💻
ariaradick
💻
Junghwan John Goh
💻
fuenfundachtzig
💻
Shantanu Gontia
💻
Tom Eichlersmith
💻
Alexander Puck Neuwirth
💻
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification.