23 releases (5 breaking)

0.6.2 Aug 18, 2024
0.5.0 Jul 30, 2024

#861 in Math

Download history 58/week @ 2024-07-16 134/week @ 2024-07-23 639/week @ 2024-07-30 14/week @ 2024-08-06 154/week @ 2024-08-13 15/week @ 2024-08-20 6/week @ 2024-08-27 38/week @ 2024-09-10 10/week @ 2024-09-17 26/week @ 2024-09-24 61/week @ 2024-10-01

1,871 downloads per month
Used in 2 crates

Custom license

285KB
5K SLoC

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

This is a library of amplitudes which are commonly used in analyses of GlueX 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. These crates are bundled into the meta-crate rustitude, which has a gluex feature (currently on by default):

cargo add rustitude

Usage

See rustitude's documentation for more information on how to use this library.

TODOs

There are a few amplitudes from halld_sim which have been implemented, several which need to be implemented, and a few which don't need to be implemented (like 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 and 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 rustitude-gluex::resonances::BreitWigner
BreitWigner3body.cc
ComplexCoeff.cc rustitude::amplitude::ComplexScalar
Compton.cc
DblRegge_FastEta.cc
DblRegge_FastPi.cc
EtaPb_tdist.cc
Flatte.cc rustitude-gluex::resonances::Flatte
Hist2D.cc
Lambda1520Angles.cc
Lambda1520tdist.cc
LowerVertexDelta.cc
OmegaDalitz.cc rustitude-gluex::dalitz::OmegaDalitz
PhaseOffset.cc rustitude::amplitude::PCScalar
Pi0Regge.cc
Pi0ReggeModel.cc
Pi0SAID.cc
PiPlusRegge.cc
Piecewise.cc rustitude::amplitude::PiecewiseM
SinglePS.cc rustitude-gluex::harmonics::OnePS
ThreePiAngles.cc rustitude-gluex::polarization::ThreePiPolFrac
ThreePiAnglesSchilling.cc rustitude-gluex::sdmes::ThreePiSDME
TwoLeptonAngles.cc
TwoLeptonAnglesGJ.cc
TwoPSAngles.cc rustitude-gluex::harmonics::TwoPS
TwoPSHelicity.cc rustitude-gluex::harmonics::TwoPS
TwoPiAngles.cc rustitude-gluex::sdmes::TwoPiSDME
TwoPiAngles_amp.cc
TwoPiAngles_primakoff.cc rustitude-gluex::harmonic::Zlm
TwoPiEtas_tdist.cc
TwoPiNC_tdist.cc
TwoPiW_brokenetas.cc
TwoPiWt_primakoff.cc
TwoPiWt_sigma.cc
TwoPitdist.cc
Uniform.cc N/A
VecRadiative_SDME.cc rustitude-gluex::sdmes::VecRadiativeSDME
Vec_ps_refl.cc ‼️
Ylm.cc rustitude-gluex::harmonics::Ylm
Zlm.cc rustitude-gluex::harmonics::{ZlmRe, ZlmIm}
not yet implemented rustitude-gluex::resonances::{KMatrixF0, KMatrixF2, KMatrixA0, KMatrixA2, KMatrixRho, KMatrixPi1}

Dependencies

~40MB
~794K SLoC