GlueX Amplitudes for Rustitude

GitHub Release GitHub last commit GitHub Actions Workflow Status GitHub License Crates.io Version docs.rs Codecov PyPI - Version Read the Docs

### Table of Contents - [Overview](#Overview) - [Installation](#Installation) - [Usage](#Usage) ## Overview This is a library of amplitudes which are commonly used in analyses of [GlueX](http://gluex.org/) data. ## Installation Cargo provides the usual command for including this crate in a project, but what you are probably looking for is an installation of this crate alongside [`rustitude-core`](https://github.com/denehoffman/rustitude/tree/main/crates/rustitude-core). These crates are bundled into the meta-crate [`rustitude`](https://github.com/denehoffman/rustitude), which has a `gluex` feature (currently on by default): ```shell cargo add rustitude ``` ## Usage See [`rustitude`](https://github.com/denehoffman/rustitude)'s documentation for more information on how to use this library. ## TODOs There are a few amplitudes from [halld_sim](https://github.com/JeffersonLab/halld_sim/tree/master/src/libraries/AMPTOOLS_AMPS) which have been implemented, several which need to be implemented, and a few which don't need to be implemented (like [Uniform.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/Uniform.cc)). Additionally, I see a few areas of improvement when it comes to providing a consistent interface across all amplitudes (selection of daughter particles varies a lot across amplitudes written by different people, for instance), and there are possibly a few amplitudes which will become more performant due to the abilities of `rustitude`. For example, the `Ylm`,`ZlmRe`, and `ZlmIm` implementations of [Ylm.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/Ylm.cc) and [Zlm.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/Zlm.cc) no longer calculate anything on the compute step, since the entire amplitude can be computed ahead of time. Here is a list of the identified `halld_sim` amplitudes: | `halld_sim` Amplitude | `rustitude` Equivalent | Priority | | ---------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | :----------------------: | | [BreitWigner.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/BreitWigner.cc) | `rustitude-gluex::resonances::BreitWigner` | :white_check_mark: | | [BreitWigner3body.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/BreitWigner3body.cc) | | :x: | | [ComplexCoeff.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/ComplexCoeff.cc) | `rustitude::amplitude::ComplexScalar` | :white_check_mark: | | [Compton.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/Compton.cc) | | :heavy_exclamation_mark: | | [DblRegge_FastEta.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/DblRegge_FastEta.cc) | | :heavy_exclamation_mark: | | [DblRegge_FastPi.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/DblRegge_FastPi.cc) | | :heavy_exclamation_mark: | | [EtaPb_tdist.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/EtaPb_tdist.cc) | | :heavy_exclamation_mark: | | [Flatte.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/Flatte.cc) | `rustitude-gluex::resonances::Flatte` | :white_check_mark: | | [Hist2D.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/Hist2D.cc) | | :x: | | [Lambda1520Angles.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/Lambda1520Angles.cc) | | :x: | | [Lambda1520tdist.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/Lambda1520tdist.cc) | | :x: | | [LowerVertexDelta.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/LowerVertexDelta.cc) | | :x: | | [OmegaDalitz.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/OmegaDalitz.cc) | `rustitude-gluex::dalitz::OmegaDalitz` | :white_check_mark: | | [PhaseOffset.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/PhaseOffset.cc) | `rustitude::amplitude::PCScalar` | :white_check_mark: | | [Pi0Regge.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/Pi0Regge.cc) | | :heavy_exclamation_mark: | | [Pi0ReggeModel.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/Pi0ReggeModel.cc) | | :x: | | [Pi0SAID.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/Pi0SAID.cc) | | :x: | | [PiPlusRegge.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/PiPlusRegge.cc) | | :x: | | [Piecewise.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/Piecewise.cc) | `rustitude::amplitude::PiecewiseM` | :white_check_mark: | | [SinglePS.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/SinglePS.cc) | `rustitude-gluex::harmonics::OnePS` | :white_check_mark: | | [ThreePiAngles.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/ThreePiAngles.cc) | `rustitude-gluex::polarization::ThreePiPolFrac` | :white_check_mark: | | [ThreePiAnglesSchilling.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/ThreePiAnglesSchilling.cc) | `rustitude-gluex::sdmes::ThreePiSDME` | :white_check_mark: | | [TwoLeptonAngles.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/TwoLeptonAngles.cc) | | :heavy_exclamation_mark: | | [TwoLeptonAnglesGJ.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/TwoLeptonAnglesGJ.cc) | | :heavy_exclamation_mark: | | [TwoPSAngles.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/TwoPSAngles.cc) | `rustitude-gluex::harmonics::TwoPS` | :white_check_mark: | | [TwoPSHelicity.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/TwoPSHelicity.cc) | `rustitude-gluex::harmonics::TwoPS` | :white_check_mark: | | [TwoPiAngles.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/TwoPiAngles.cc) | `rustitude-gluex::sdmes::TwoPiSDME` | :white_check_mark: | | [TwoPiAngles_amp.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/TwoPiAngles_amp.cc) | | :heavy_exclamation_mark: | | [TwoPiAngles_primakoff.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/TwoPiAngles_primakoff.cc) | `rustitude-gluex::harmonic::Zlm` | :white_check_mark: | | [TwoPiEtas_tdist.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/TwoPiEtas_tdist.cc) | | :x: | | [TwoPiNC_tdist.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/TwoPiNC_tdist.cc) | | :x: | | [TwoPiW_brokenetas.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/TwoPiW_brokenetas.cc) | | :x: | | [TwoPiWt_primakoff.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/TwoPiWt_primakoff.cc) | | :heavy_exclamation_mark: | | [TwoPiWt_sigma.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/TwoPiWt_sigma.cc) | | :x: | | [TwoPitdist.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/TwoPitdist.cc) | | :x: | | [Uniform.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/Uniform.cc) | N/A | :white_check_mark: | | [VecRadiative_SDME.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/VecRadiative_SDME.cc) | `rustitude-gluex::sdmes::VecRadiativeSDME` | :white_check_mark: | | [Vec_ps_refl.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/Vec_ps_refl.cc) | | :bangbang: | | [Ylm.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/Ylm.cc) | `rustitude-gluex::harmonics::Ylm` | :white_check_mark: | | [Zlm.cc](https://github.com/JeffersonLab/halld_sim/blob/master/src/libraries/AMPTOOLS_AMPS/Zlm.cc) | `rustitude-gluex::harmonics::{ZlmRe, ZlmIm}` | :white_check_mark: | | _not yet implemented_ | `rustitude-gluex::resonances::{KMatrixF0, KMatrixF2, KMatrixA0, KMatrixA2, KMatrixRho, KMatrixPi1}` | :white_check_mark: |