decay#

Data structures that describe a three-body decay.

InitialStateID#

ID for the initial state particle in a three-body decay.

alias of Literal[0]

FinalStateID#

ID for a particle in the final state of a three-body decay.

alias of Literal[1, 2, 3]

StateID#

ID for any of the initial state or final state particles in a three-body decay.

alias of Literal[0, 1, 2, 3]

class StateIDTemplate#

Generic template for the ID of a particle in a three-body decay.

alias of TypeVar(‘StateIDTemplate’, ~typing.Literal[0], ~typing.Literal[1, 2, 3], ~typing.Literal[0, 1, 2, 3])

class Particle(name: str, latex: str, spin: SupportsFloat, parity: Literal[-1, 1], mass: float, width: float)[source]#

Bases: object

name: str[source]#
latex: str[source]#
spin: Rational[source]#
parity: Literal[-1, 1][source]#
mass: float[source]#
width: float[source]#
class State(name: str, latex: str, spin: SupportsFloat, parity: Literal[-1, 1], mass: float, width: float, index: StateIDTemplate)[source]#

Bases: Particle, Generic[StateIDTemplate]

Initial or final state Particle in a ThreeBodyDecay, carrying an index.

index: StateIDTemplate[source]#
InitialState#

The initial state particle.

alias of State[Literal[0]]

FinalState#

One of the final state particles.

alias of State[Literal[1, 2, 3]]

class ParentType#

Type of the parent of an IsobarNode.

alias of TypeVar(‘ParentType’, ~ampform_dpd.decay.Particle, ~ampform_dpd.decay.State[~typing.Literal[0]])

class IsobarNode(parent: ParentType, child1: IsobarNode[Particle] | FinalState, child2: IsobarNode[Particle] | FinalState, interaction: LSCoupling | tuple[int, SupportsFloat] | None = None)[source]#

Bases: Generic[ParentType]

parent: ParentType[source]#
child1: IsobarNode[Particle] | FinalState[source]#
child2: IsobarNode[Particle] | FinalState[source]#
interaction: LSCoupling | None[source]#
property children: tuple[DecayNode | FinalState, DecayNode | FinalState][source]#
ProductionNode#

The first IsobarNode in a ThreeBodyDecayChain.

alias of IsobarNode[State[Literal[0]]]

DecayNode#

The second IsobarNode in a ThreeBodyDecayChain.

alias of IsobarNode[Particle]

class ThreeBodyDecay(states: dict[StateID, State[StateID]], chains: Iterable[ThreeBodyDecayChain])[source]#

Bases: object

states: dict[Literal[0, 1, 2, 3], State[Literal[0, 1, 2, 3]]][source]#
chains: tuple[ThreeBodyDecayChain, ...][source]#
property initial_state: State[Literal[0]][source]#
property final_state: dict[Literal[1, 2, 3], State[Literal[1, 2, 3]]][source]#
find_chain(resonance_name: str) ThreeBodyDecayChain[source]#
get_subsystem(subsystem_id: Literal[1, 2, 3]) ThreeBodyDecay[source]#
get_decay_product_ids(spectator_id: Literal[1, 2, 3]) tuple[Literal[1, 2, 3], Literal[1, 2, 3]][source]#
class ThreeBodyDecayChain(decay: IsobarNode[State[Literal[0]]])[source]#

Bases: object

decay: IsobarNode[State[Literal[0]]][source]#
property initial_state: State[Literal[0]][source]#
property final_state: tuple[State[Literal[1, 2, 3]], State[Literal[1, 2, 3]], State[Literal[1, 2, 3]]][source]#
property parent: State[Literal[0]][source]#
property resonance: Particle[source]#
property production_node: IsobarNode[State[Literal[0]]][source]#
property decay_node: IsobarNode[Particle][source]#
property decay_products: tuple[State[Literal[1, 2, 3]], State[Literal[1, 2, 3]]][source]#
property spectator: State[Literal[1, 2, 3]][source]#
property incoming_ls: LSCoupling | None[source]#
property outgoing_ls: LSCoupling | None[source]#
class LSCoupling(L: int, S: SupportsFloat)[source]#

Bases: object

L: int[source]#
S: Rational[source]#
to_particle(isobar: IsobarNode[ParentType]) ParentType[source]#
to_particle(isobar: State[StateIDTemplate]) State[StateIDTemplate]
to_particle(isobar: Particle) Particle