Skip to content

Latest commit

 

History

History
33 lines (24 loc) · 2.85 KB

File metadata and controls

33 lines (24 loc) · 2.85 KB

Introduction

This repository contains Python bindings for AmpTools and interfaces with iftpwa repository for constructing non-parametric models for partial wave analysis under the numerical information field theory framework, NIFTy. Additional hooks into jax + numpyro allows for rapid and automated exploration of the partial wave optimization landscape under Frequentist and Bayesian lenses.

Information Field Theory for Partial Wave Analysis

  • iftpwa repository (currently private under development)
  • Partial wave analysis of large datasets using non-parametric (smooth Gaussian processes) and parametric models using NIFTy for fast variational inference over million to billion parameter spaces.
    • For general information on information theory, see these Notes

High Throughput Stress Testing of PWA Inference Pipelines

  • iftpwa prior model can act as a generator for diverse and complex amplitude models (smooth Gaussian processes + parametric models like a Breit-Wigner, Flatte, etc.)
  • Inference from multiple angles using likelihoods provided by JAX:
    • Inference with iftpwa increases identifiability of smooth amplitudes in the presence of ambiguities + crossing solutions + instabilities
    • Maximum Likelihood Estimation (MLE) of binned amplitudes using iminuit or scipy.optimize (lbfgs, etc.)
    • MCMC (Hamiltonian Monte Carlo) of binned amplitudes using NumPyro
    • SVGD (Stein Variational Gradient Descent) using NumPyro for "inversion" of binned projected moments back to amplitudes
  • Neural density ratio estimation (DRE) for amortized application of acceptance functions - trained using flax/optax
  • These core technologies can be used to increase the rate and effectiveness of Input/Output studies

Python Bindings for C++

AmpTools and FSRoot are included as submodules. Python bindings are created using PyROOT which uses cppyy.

Features:

  • Access to PyROOT ecosystem
  • Pythonization of c++ objects: simplify interactions with c++ source code
  • Dynamically load appropriate libraries / (re)compilation of high level scripts (like fits and plotters) are time consuming and distracting
  • Improved scripting, string parsing (regex), etc.

Documentation

Here is the Documentation for installation instructions and tutorials.