Metadata-Version: 2.1
Name: hep-ml-lab
Version: 0.4.0
Summary: An end-to-end framework used for research combining high-energy physics phenomenology with machine learning.
Home-page: https://github.com/Star9daisy/hep-ml-lab
License: MIT
Keywords: high energy physics,machine learning,framework
Author: Star9daisy
Author-email: star9daisy@outlook.com
Requires-Python: >=3.9,<3.12
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: awkward (>=2.5.1,<3.0.0)
Requires-Dist: beautifulsoup4 (>=4.12.2,<5.0.0)
Requires-Dist: dill (>=0.3.7,<0.4.0)
Requires-Dist: fastjet (>=3.4.1.3,<4.0.0.0)
Requires-Dist: keras (>=3.0.4)
Requires-Dist: matplotlib (>=3.8.2,<4.0.0)
Requires-Dist: numba (>=0.59.0,<0.60.0)
Requires-Dist: numpy (>=1.22,<2.0)
Requires-Dist: pandas (==2.0.3)
Requires-Dist: pexpect (>=4.9.0,<5.0.0)
Requires-Dist: rich (>=13.4.2,<14.0.0)
Requires-Dist: scikit-learn (>=1.2.2,<2.0.0)
Requires-Dist: tensorflow (>=2.14.0,<3.0.0)
Requires-Dist: vector (>=1.3.0,<2.0.0)
Project-URL: Documentation, https://star9daisy.github.io/hep-ml-lab/
Project-URL: Repository, https://github.com/Star9daisy/hep-ml-lab
Description-Content-Type: text/markdown

# HEP ML Lab (HML)
[![PyPI - Version](https://img.shields.io/pypi/v/hep-ml-lab)](https://pypi.org/project/hep-ml-lab/)
[![Downloads](https://static.pepy.tech/badge/hep-ml-lab)](https://pepy.tech/project/hep-ml-lab)
[![codecov](https://codecov.io/gh/Star9daisy/hep-ml-lab/branch/main/graph/badge.svg?token=6VWJi5ct6c)](https://app.codecov.io/gh/Star9daisy/hep-ml-lab)
[![GitHub](https://img.shields.io/github/license/star9daisy/hep-ml-lab)](https://github.com/Star9daisy/hep-ml-lab/blob/main/LICENSE)

## Introduction
HEP-ML-Lab is an end-to-end framework used for research combining high-energy
physics phenomenology with machine learning. It covers three main parts: the
generation of simulated data, the conversion of data representation, and the
application of analysis approaches.

With HML, researchers can easily compare the performance between traditional
methods and modern machine learning algorithms, and obtain robust and
reproducible results.

To get started, please check out the [documents](https://star9daisy.github.io/hep-ml-lab/).

## Installation
```python
pip install hep-ml-lab
```

## Module overview

![module_overview](docs/images/module_overview.svg)

- `hml.generators`: API of Madgraph5 for simulating colliding events;
- `hml.physics_objects`: Physics objects classfied by their counts;
- `hml.observables`: General observables in jet physics;
- `hml.representations`: Different data structure used to represent an event;
- `hml.datasets`: Existing datasets and helper classes for creating new datasets;
- `hml.approaches`: Cuts, trees and networks for classification;
- `hml.metrics`: Metrics used in classical signal vs background analysis;

## Updates

### v0.4.0
This version refactors most of the codebase to make it compatible with the array
(from `awkward` and `uproot`) representation of the data.

### v0.3.0.1
- Fix a bug that Madgraph5 may run into an infinite loop caused by HML keeping
  removing py.py file during initialization.
- Fix nan value not implemented in Fileter.
- Fix the wrong order of runs when using `hml.generators.Madgraph5.runs` and
  `hml.generators.Madgraph5.summary`.
- Fix the typo "g1" in quickstart.

### v0.3.0
- New Madgraph5 API now is closer to the original Madgraph5 CLI.
- New Observable parsing system makes it easier to use and define new observables.
- New CutAndCout and BoostedDecisionTree in Keras style.

### v0.2.2
- Change output structure of `hml.generators.Madgraph5` to ensure reproducibility.
- Refactor `hml.generators.Madgraph5` and `hml.generators.MG5Run` to make
  them more robust.
### v0.2.1
- Add `summary` to `hml.generators.Madgraph5` to print a summary of all run.
- Add `remove` to `hml.generators.Madgraph5` to remove a run.
- Add `clean` to `hml.generators.Madgraph5` to remove the output directory.

