naming

naming

Generate descriptions used in the helicity formalism.

class HelicityAmplitudeNameGenerator[source]

Bases: object

register_amplitude_coefficient_name(transition: StateTransition) None[source]
generate_amplitude_name(transition: StateTransition, node_id: Optional[int] = None) str[source]

Generates a unique name for the amplitude corresponding.

That is, corresponging to the given StateTransition. If node_id is given, it generates a unique name for the partial amplitude corresponding to the interaction node of the given StateTransition.

generate_coefficient_name(transition: StateTransition, node_id: int) str[source]

Generate partial amplitude coefficient name suffix.

generate_sequential_amplitude_suffix(transition: StateTransition) str[source]

Generate unique suffix for a sequential amplitude transition.

class CanonicalAmplitudeNameGenerator[source]

Bases: HelicityAmplitudeNameGenerator

generate_amplitude_name(transition: StateTransition, node_id: Optional[int] = None) str[source]

Generates a unique name for the amplitude corresponding.

That is, corresponging to the given StateTransition. If node_id is given, it generates a unique name for the partial amplitude corresponding to the interaction node of the given StateTransition.

generate_coefficient_name(transition: StateTransition, node_id: int) str[source]

Generate partial amplitude coefficient name suffix.

generate_transition_label(transition: StateTransition) str[source]

Generate a label for a coherent intensity, including spin projection.

>>> import qrules
>>> reaction = qrules.generate_transitions(
...     initial_state="J/psi(1S)",
...     final_state=["gamma", "pi0", "pi0"],
...     allowed_intermediate_particles=["f(0)(980)"],
... )
>>> print(generate_transition_label(reaction.transitions[0]))
J/\psi(1S)_{-1} \to \gamma_{-1} \pi^{0}_{0} \pi^{0}_{0}
>>> print(generate_transition_label(reaction.transitions[-1]))
J/\psi(1S)_{+1} \to \gamma_{+1} \pi^{0}_{0} \pi^{0}_{0}