Skip to content
Next generation Python bindings for HepMC3
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
pyhepmc_ng
src
tests
.gitignore
.gitmodules
.travis.yml
LICENSE
MANIFEST.in
Makefile
README.md
requirements.txt
setup.py

README.md

pyhepmc-ng

A Python wrapper for the HepMC3 C++ library.

PyPI version Build Status

Another wrapper is pyhepmc. Why should you use this one?

pyhepmc-ng is easy to install

The command pip install pyhepmc-ng just works! You only need a compiler that supports C++14, everything else is handled by pip.

Under the hood, the bindings are build with the excellent pybind11 library. pybind11 is automatically installed as a requirement by pip. You don't need an external installation of the HepMC3 library, either. A copy of this light-weight library is included.

pyhepmc-ng is actively developed

pyhepmc-ng is part of the Scikit-HEP project, which aims to provide all tools needed by particle physicists to do data analysis in Python.

pyhepmc-ng is unit tested

Everything in pyhepmc-ng is unit tested.

pyhepmc-ng supports Pythonic code

pyhepmc-ng is a hand-crafted mapping of C++ code to Python. It supports Python idioms where appropriate.

  • C++ methods which act like properties are represented as properties, e.g. GenParticle::set_status and GenParticle::status are mapped to a single GenParticle.status field in Python
  • Tuples and lists are implicitly convertible to FourVectors
  • ReaderAscii and WriterAscii support the context manager protocol

For developers

If you want to play with the source code, clone this repository and start hacking.

Local installation for testing

python setup.py build_ext -i

If you are on Linux or OSX, you can alternatively do (and save a bit of typing)

make

User-wide installation

python setup.py install --user

Running the tests requires pytest. Do

pytest tests

or simply

make test

License

pyhepmc-ng is covered by the BSD 3-clause license, but the license only applies to the binding code. The HepMC3 code is covered by the GPL-v3 license.

The BSD 3-clause license text can be found in the LICENSE file.

The HepMC3 code is covered by the GPL-v3 license, which can be found in src/HepMC3/LICENSE.

You can’t perform that action at this time.