angles#
import ampform.kinematics.angles
Angle computations for (boosted) lorentz
vectors.
- class Phi(momentum, *args, evaluate: bool = False, **kwargs)[source]#
Bases:
Expr
Azimuthal angle \(\phi\) of a
FourMomentumSymbol
.(1)#\[\begin{split} \begin{array}{rcl} \phi\left(p\right) &=& \operatorname{atan}_{2}{\left({p}_y,{p}_x \right)} \\ \end{array}\end{split}\]
- class Theta(momentum, *args, evaluate: bool = False, **kwargs)[source]#
Bases:
Expr
Polar (elevation) angle \(\theta\) of a
FourMomentumSymbol
.(2)#\[\begin{split} \begin{array}{rcl} \theta\left(p\right) &=& \operatorname{acos}{\left(\frac{{p}_z}{\left|\vec{p}\right|} \right)} \\ \end{array}\end{split}\]
- compute_helicity_angles(four_momenta: Mapping[int, Expr], topology: Topology) dict[Symbol, Expr] [source]#
Formulate expressions for all helicity angles in a topology.
Formulate expressions (
Expr
) for all helicity angles appearing in a givenTopology
. The expressions are given in terms ofFourMomenta
The expressions returned as values in adict
, where the keys are defined byget_helicity_angle_symbols()
.Example
>>> from qrules.topology import create_isobar_topologies >>> topologies = create_isobar_topologies(3) >>> topology = topologies[0] >>> from ampform.kinematics.lorentz import create_four_momentum_symbols >>> four_momenta = create_four_momentum_symbols(topology) >>> angles = compute_helicity_angles(four_momenta, topology) >>> theta_symbol = sp.Symbol("theta_0", real=True) >>> angles[theta_symbol] Theta(p1 + p2)
- compute_wigner_angles(topology: Topology, momenta: FourMomenta, state_id: int) dict[Symbol, Expr] [source]#
Create an
Expr
for each angle in a Wigner rotation.Implementation of (B.2-4) in [1], with \(x'_z\) etc. taken from the result of
compute_wigner_rotation_matrix()
. See also Wigner rotations.
- compute_wigner_rotation_matrix(topology: Topology, momenta: FourMomenta, state_id: int) MatrixMultiplication [source]#
Compute a Wigner rotation matrix.
Implementation of Eq. (36) in [1]. See also Wigner rotations.
- formulate_scattering_angle(state_id: int, sibling_id: int) tuple[Symbol, acos] [source]#
Formulate the scattering angle in the rest frame of the resonance.
Compute the \(\theta_{ij}\) scattering angle as formulated in Eq (A1) in the DPD paper [10]. The angle is that between particle \(i\) and spectator particle \(k\) in the rest frame of the isobar resonance \((ij)\).