helicity¶
import ampform.helicity
Generate an amplitude model with the helicity formalism.
-
class
CanonicalAmplitudeBuilder
(reaction_result: ReactionInfo)[source]¶ Bases:
ampform.helicity.HelicityAmplitudeBuilder
Amplitude model generator for the canonical helicity formalism.
This class defines a full amplitude in the canonical formalism, using the helicity formalism as a foundation. The key here is that we take the full helicity intensity as a template, and just exchange the helicity amplitudes \(F\) as a sum of canonical amplitudes \(A\):
\[F^J_{\lambda_1,\lambda_2} = \sum_{LS} \mathrm{norm}(A^J_{LS})C^2.\]Here, \(C\) stands for Clebsch-Gordan factor.
-
class
HelicityAmplitudeBuilder
(reaction: ReactionInfo)[source]¶ Bases:
object
Amplitude model generator for the helicity formalism.
-
formulate
() → HelicityModel[source]¶
-
set_dynamics
(particle_name: str, dynamics_builder: ResonanceDynamicsBuilder) → None[source]¶
-
-
class
HelicityModel
(expression: Expr, parameter_defaults: Dict[Symbol, Union[float, complex, int]], components: Dict[str, Expr], adapter: HelicityAdapter, particles: ParticleCollection)[source]¶ Bases:
object
-
__eq__
(other)¶ Method generated by attrs for class HelicityModel.
-
property
adapter
¶
-
property
components
¶
-
property
expression
¶
-
property
parameter_defaults
¶
-
particles
: ParticleCollection¶
-
-
extract_particle_collection
(transitions: Iterable[StateTransition]) → ParticleCollection[source]¶ Collect all particles from a collection of state transitions.
-
formulate_clebsch_gordan_coefficients
(transition: StateTransition, node_id: int) → Expr[source]¶ Compute two Clebsch-Gordan coefficients for a state transition node.
>>> import qrules >>> reaction = qrules.generate_transitions( ... initial_state=[("J/psi(1S)", [+1])], ... final_state=[("gamma", [+1]), "f(0)(980)"], ... ) >>> transition = reaction.transitions[0] >>> formulate_clebsch_gordan_coefficients(transition, node_id=0) CG(0, 0, 1, 1, 1, 1)*CG(1, 1, 0, 0, 1, 1)
See also
-
formulate_wigner_d
(transition: StateTransition, node_id: int) → Expr[source]¶ Compute
WignerD
for a state transition node.>>> import qrules >>> reaction = qrules.generate_transitions( ... initial_state=[("J/psi(1S)", [+1])], ... final_state=[("gamma", [+1]), "f(0)(980)"], ... ) >>> transition = reaction.transitions[0] >>> formulate_wigner_d(transition, node_id=0) WignerD(1, 1, 1, -phi_0, theta_0, 0)
-
get_prefactor
(transition: StateTransition) → float[source]¶ Calculate the product of all prefactors defined in this transition.
-
group_transitions
(transitions: Iterable[StateTransition]) → List[List[StateTransition]][source]¶ Match final and initial states in groups.
Each
StateTransition
corresponds to a specific state transition amplitude. This function groups together transitions, which have the same initial and final state (including spin). This is needed to determine the coherency of the individual amplitude parts.
Submodules and Subpackages