amplitude#

formulate(model: ModelDefinition, cleanup_summations: bool = False, to_latex: Callable[[str], str] = <function identity_function>, additional_builders: dict[str, PropagatorDynamicsBuilder] | None = None) AmplitudeModel[source]#
formulate_chain_amplitude(λ0: sp.Rational, λ1: sp.Rational, λ2: sp.Rational, λ3: sp.Rational, model: ModelDefinition, chain_idx: int, to_latex: Callable[[str], str] = <function identity_function>, additional_builders: dict[str, PropagatorDynamicsBuilder] | None = None) dict[Basic, complex | float | Expr][source]#

Formulate the amplitude for one decay chain of a serialized model.

This is the serialization counterpart of DalitzPlotDecompositionBuilder.formulate_subsystem_amplitude: the couplings and dynamics are read from the model definition instead of being generated, but the phase conventions, the Kronecker delta over the production helicities, and the sum over the resonance helicity \(\lambda_R\) are the same. The two implementations have to be kept in sync.

formulate_aligned_amplitude(model: ModelDefinition, λ0: Rational | Symbol, λ1: Rational | Symbol, λ2: Rational | Symbol, λ3: Rational | Symbol) tuple[PoolSum, dict[Symbol, Expr]][source]#
formulate_recoupling(model: ModelDefinition, chain_idx: int, vertex_idx: int) Expr[source]#
get_existing_subsystem_ids(model: ModelDefinition) list[FinalStateID][source]#
class HelicityRecoupling(*args)[source]#

Bases: Expr

λa: Rational | Symbol[source]#
λb: Rational | Symbol[source]#
λa0: Rational | Symbol[source]#
λb0: Rational | Symbol[source]#
class ParityRecoupling(*args)[source]#

Bases: Expr

λa: Any[source]#
λb: Any[source]#
λa0: Any[source]#
λb0: Any[source]#
f: Any[source]#
class LSRecoupling(*args)[source]#

Bases: Expr

λa: Any[source]#
λb: Any[source]#
l: Any[source]#
s: Any[source]#
ja: Any[source]#
jb: Any[source]#
j: Any[source]#