Skip to content

jiangyi15/tf-pwa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Partial Wave Analysis program using Tensorflow

Documentation build status CI status Test coverage conda cloud pypi license
Binder pre-commit Prettier Code style: black Imports: isort

This is a package and application for partial wave analysis (PWA) using TensorFlow. By using simple configuration file (and some scripts), PWA can be done fast and automatically.

Install

You can go to http://tf-pwa.readthedocs.io/install for more informations. Get the packages using

git clone https://github.com/jiangyi15/tf-pwa.git

The dependencies can be installed by conda or pip.

conda (recommended)

When using conda, you don't need to install CUDA for TensorFlow specially.

  1. Get miniconda for python3 from miniconda3 and install it.

  2. Install requirements, we recommed Ampere card users to install with tensorflow_2_6_requirements.txt (see this technical FAQ).

You can install a tensorflow gpu version in anaconda as

conda install tensorflow[build="gpu*"]=2.8

and then install the rest dependences

conda install --file requirements-min.txt

Or

You can install a newer version in conda-forge as

conda install --file tensorflow_2_6_requirements.txt -c conda-forge
  1. The following command can be used to set environment variables of Python. (Use --no-deps to make sure that no PyPI package will be installed. Using -e, so it can be updated by git pull directly.)
python -m pip install -e . --no-deps
  1. (option) There are some option packages, such as uproot for reading root file. It can be installed as
conda install uproot -c conda-forge
### conda channel (experimental)

A pre-built conda package (Linux only) is also provided, just run following command to install it.

conda config --add channels jiangyi15
conda install tf-pwa

### pip

When using `pip`, you will need to install CUDA to use GPU. Just run the following command :

python3 -m pip install -e .

To contribute to the project, please also install additional developer tools with:

python3 -m pip install -e .[dev]

Scripts

fit.py

simple fit scripts, decay structure is described in config.yml, here [] means options.

python fit.py [--config config.yml]  [--init_params init_params.json]

fit parameters will save in final_params.json, figure can be found in figure/.

state_cache.sh

script for cache state, using the latest *_params.json file as parameters and cache newer files in path (the default is trash/).

./state_cache.sh [path]

Documents

See tf-pwa.rtfd.io for more information.

Autodoc using sphinx-doc, need sphinx-doc

python setup.py build_sphinx

Then, the documents can be found in build/sphinx/index.html.

Documents can also build with Makefile in docs as

cd docs && make html

Then, the documents can be found in docs/_build/html.

Other resources

面向 BESIII 用户的 TF-PWA 使用手册

HADRON 2023

PWA 12

Dependencies

tensorflow or tensorflow-gpu >= 2.0.0

cudatoolkit : CUDA library for GPU acceleration

sympy : symbolic expression

PyYAML : config.yml file

matplotlib : plot

scipy : fit