Skip to main content

GooFit fitting package

Project description

GooFit is a highly parallel fitting framework originally designed for High Energy Physics.

Installation basics

This package can be installed with pip, but uses SciKit-Build, and is build, fully optimized, on your system. Because of this, there are a few caveats when running a pip install. Make sure you have SciKit-Build (pip install scikit-build) before you attempt an install. Also, if you don’t have a recent version of CMake (3.8 or better recommended), also run pip install cmake. When you build, you should also use pip’s -v flag, so that you can see it build (and observe the configuration options). Otherwise, you might wait a very long time without output (especially if CUDA was found).

Installation: pip

Using pip 10+:

pip install -v goofit

Using pip < 10:

pip install scikit-build
pip install -v goofit

GooFit will automatically look for CUDA, and build in GPU mode if it finds CUDA. You can pick a specific version by passing through a CMake option (see below), or by setting an environment variable, GOOFIT_DEVICE before building. You may want to build with OpenMP as a backend to avoid using your GPU, or you might want the CPP version if you are using Anaconda on macOS. Here are the three common backends:

GOOFIT_DEVICE=CUDA pip install -v goofit
GOOFIT_DEVICE=OMP pip install -v goofit
GOOFIT_DEVICE=CPP pip install -v goofit

If you want to send arbitrary commands to CMake through PIP, you will need to pass each option through, starting with a -- option. Pip will try to reuse the built version if you do not pass options, but will rebuild if you pass options, so this works for a rebuild, unlike the lines above. This is how you would do this to set OMP as the backend:

pip install -v goofit –install-option=”–” –install-option=”-DGOOFIT_DEVICE=OMP”

Installation: local

If you want to add PDFs to GooFit, or use GooFit pacakges, you should be working in a local directory using git. In the following example, I’m assuming you’ve set up SSH keys with GitHub; you can use https instead if you prefer by changing the URL to

git clone --recursive
cd goofit


You can set up a quick environment using pipenv:

pipenv install --dev

Then activate that environment:

pipenv shell

Local pip

The normal install here works, though as usual you should include verbose output:

pip install -v .

You can pass through options to the build command, for example:

pip install -v . --install-options="--" --install-options="-DGOOFIT_PACKAGES=OFF"

Building a source package from git

For developers only:

To make a source package, start with a clean (such as new) git GooFit package with all submodules checked out:

git clone --branch=master --recursive --depth=10
cd goofit
python sdist
python -m twine upload dist/*

To make a binary package, use instead:

python bdist_wheel -- -DGOOFIT_OPTI="-march=core2"

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
goofit-2.2.2.tar.gz (8.4 MB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page