decayamplitude package

Submodules

decayamplitude.arguments module

class decayamplitude.arguments.AmplitudeParameters(function_arguments: list[str], couplings: dict[tuple[int], str])

Bases: object

decode(couplings=None)

decayamplitude.backend module

decayamplitude.chain module

decayamplitude.combiner module

decayamplitude.kinematics_helpers module

decayamplitude.resonance module

decayamplitude.rotation module

class decayamplitude.rotation.Angular(angular_momentum: int)

Bases: object

couple(other)

Couple two angular momenta

classmethod generate_helicities(*angular_momenta: list[Angular]) list[tuple[int]]

Generate all possible helicities for a given set of angular momenta

index()
property parity
projections(return_int=False)

Returns the possible projections of the angular momentum

property value
property value2
class decayamplitude.rotation.QN(angular_momentum: int | Angular, parity: int)

Bases: object

couple(other)

Couple two quantum numbers

classmethod generate_L_states(state0: QN, state1: QN, state2: QN) Generator[tuple[QN, QN], None, None]

state0 -> state1 + state2 S = coupled spins of state 1 and state 2 L = angular momentum of the 1-2 system L can be covered by coupling J with state0, since the possible L values arise from coupling J with a series of L values and looking which one can in turn couple to state0 spin. This is in pricinple due to detailed balance.

params: state0 : QN

Quantum numbers of the initial state

state1QN

Quantum numbers of the first final state

state2QN

Quantum numbers of the second final state

returns: Generator[tuple[QN, QN]]

Generator of possible (L, S) states Partity is not given, since it is defined by state0

projections(return_int=False)
decayamplitude.rotation.clebsch_gordan(j1, m1, j2, m2, J, M)

Return clebsch-Gordan coefficient. Note that all arguments should be multiplied by 2 (e.g. 1 for spin 1/2, 2 for spin 1 etc.). Needs sympy.

decayamplitude.rotation.convert_angular(f)

Wrapper to convert all passed values of type Angular to type int

decayamplitude.rotation.get_wigner_function(j: int, m1: int, m2: int)

Return Wigner small-d function. Note that all arguments should be multiplied by 2 (e.g. 1 for spin 1/2, 2 for spin 1 etc.). Needs sympy.

decayamplitude.rotation.wigner_capital_d(*args, **kwargs)
decayamplitude.rotation.wigner_small_d(theta, j, m1, m2)
Calculate Wigner small-d function. Needs sympy.

theta : angle j : spin (in units of 1/2, e.g. 1 for spin=1/2) m1 and m2 : spin projections (in units of 1/2)

Parameters:
  • theta

  • j

  • m1 – before rotation

  • m2 – after rotation

decayamplitude.utils module

decayamplitude.utils.sanitize(name: str) str

Sanitize a name for use in python code

Module contents