Metadata-Version: 2.1
Name: TFPWA
Version: 0.1.1a0
Summary: Partial Wave Analysis program using Tensorflow
Home-page: https://github.com/jiangyi15/tf-pwa
Author: Yi Jiang
Author-email: jiangyi15@mails.ucas.ac.cn
License: MIT
Project-URL: Documentation, https://tf-pwa.readthedocs.io/en/latest
Project-URL: Source, https://github.com/jiangyi15/tf-pwa
Project-URL: Tracker, https://github.com/jiangyi15/tf-pwa/issues
Keywords: HEP,PWA,particle physics,physics
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: matplotlib
Requires-Dist: numpy
Requires-Dist: opt-einsum
Requires-Dist: PyYAML
Requires-Dist: scipy
Requires-Dist: sympy
Requires-Dist: tensorflow (<=2.2,>=2.0)
Provides-Extra: all
Requires-Dist: graphviz ; extra == 'all'
Requires-Dist: iminuit ; extra == 'all'
Requires-Dist: uproot3 ; extra == 'all'
Requires-Dist: Sphinx ; extra == 'all'
Requires-Dist: sphinx-rtd-theme ; extra == 'all'
Requires-Dist: sphinx-gallery ; extra == 'all'
Requires-Dist: pysnooper ; extra == 'all'
Requires-Dist: pytest ; extra == 'all'
Requires-Dist: pytest-benchmark ; extra == 'all'
Requires-Dist: pytest-cov ; extra == 'all'
Requires-Dist: black (==20.8b1) ; extra == 'all'
Requires-Dist: doc8 ; extra == 'all'
Requires-Dist: isort ; extra == 'all'
Requires-Dist: pre-commit ; extra == 'all'
Requires-Dist: pylint ; extra == 'all'
Requires-Dist: rstcheck ; extra == 'all'
Provides-Extra: dev
Requires-Dist: graphviz ; extra == 'dev'
Requires-Dist: iminuit ; extra == 'dev'
Requires-Dist: uproot3 ; extra == 'dev'
Requires-Dist: Sphinx ; extra == 'dev'
Requires-Dist: sphinx-rtd-theme ; extra == 'dev'
Requires-Dist: sphinx-gallery ; extra == 'dev'
Requires-Dist: pysnooper ; extra == 'dev'
Requires-Dist: pytest ; extra == 'dev'
Requires-Dist: pytest-benchmark ; extra == 'dev'
Requires-Dist: pytest-cov ; extra == 'dev'
Requires-Dist: black (==20.8b1) ; extra == 'dev'
Requires-Dist: doc8 ; extra == 'dev'
Requires-Dist: isort ; extra == 'dev'
Requires-Dist: pre-commit ; extra == 'dev'
Requires-Dist: pylint ; extra == 'dev'
Requires-Dist: rstcheck ; extra == 'dev'
Provides-Extra: doc
Requires-Dist: uproot3 ; extra == 'doc'
Requires-Dist: Sphinx ; extra == 'doc'
Requires-Dist: sphinx-rtd-theme ; extra == 'doc'
Requires-Dist: sphinx-gallery ; extra == 'doc'
Provides-Extra: gpu
Requires-Dist: tensorflow-gpu (<=2.2,>=2.0) ; extra == 'gpu'
Provides-Extra: minuit
Requires-Dist: iminuit ; extra == 'minuit'
Provides-Extra: root
Requires-Dist: uproot3 ; extra == 'root'
Provides-Extra: test
Requires-Dist: uproot3 ; extra == 'test'
Requires-Dist: pysnooper ; extra == 'test'
Requires-Dist: pytest ; extra == 'test'
Requires-Dist: pytest-benchmark ; extra == 'test'
Requires-Dist: pytest-cov ; extra == 'test'
Provides-Extra: vis
Requires-Dist: graphviz ; extra == 'vis'

# A Partial Wave Analysis program using Tensorflow

[![Documentation build status](https://readthedocs.org/projects/tf-pwa/badge/?version=latest)](https://tf-pwa.readthedocs.io)
[![CI status](https://github.com/jiangyi15/tf-pwa/workflows/CI/badge.svg)](https://github.com/jiangyi15/tf-pwa/actions?query=branch%3Adev+workflow%3ACI)
[![Test coverage](https://codecov.io/gh/jiangyi15/tf-pwa/branch/dev/graph/badge.svg)](https://codecov.io/gh/jiangyi15/tf-pwa)
[![conda cloud](https://anaconda.org/jiangyi15/tf-pwa/badges/version.svg)](https://anaconda.org/jiangyi15/tf-pwa)
[![license](https://anaconda.org/jiangyi15/tf-pwa/badges/license.svg)](https://choosealicense.com/licenses/mit/)
<br>
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen)](https://github.com/pre-commit/pre-commit)
[![Prettier](https://camo.githubusercontent.com/687a8ae8d15f9409617d2cc5a30292a884f6813a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f64655f7374796c652d70726574746965722d6666363962342e7376673f7374796c653d666c61742d737175617265)](https://prettier.io/)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/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

Get the packages using

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

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](https://docs.conda.io/en/latest/miniconda.html) and install it.

2. Install requirements

```
conda install --file requirements-min.txt
```

3. 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
```

4. (option) There are some option packages, such as `uproot` for reading root
   file. It can be installed as

```
conda install uproot -c conda-forge
```

<details><summary>
### conda channel (experimental)
</summary><p>

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
```

</p></details>

<details><summary>
### pip
</summary><p>
When using `pip`, you will need to install CUDA to use GPU. Just run the
following command :

```bash
python3 -m pip install -e .
```

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

```bash
python3 -m pip install -e .[dev]
```

</p></details>

## 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](http://tf-pwa.readthedocs.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 cna also build with `Makefile` in `docs` as

```
cd docs && make html
```

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

## Dependencies

tensorflow or tensorflow-gpu >= 2.0.0

sympy : symbolic expression

PyYAML : config.yml file

matplotlib : plot

scipy : fit


