kinematics¶
import expertsystem.amplitude.kinematics
Kinematics of an amplitude model in the helicity formalism.
-
class
HelicityAdapter
(reaction_info: expertsystem.amplitude.kinematics.ReactionInfo)[source]¶ Bases:
object
Converter for four-momenta to kinematic variable data.
The
transform
method forms the bridge between four-momentum data for the decay you are studying and the kinematic variables that are in theHelicityModel
. These are invariant mass and the \(\theta\) and \(\phi\) helicity angles.-
__eq__
(other)¶ Method generated by attrs for class HelicityAdapter.
-
reaction_info
: expertsystem.amplitude.kinematics.ReactionInfo¶
-
register_topology
(topology: expertsystem.reaction.topology.Topology) → None[source]¶
-
register_transition
(transition: expertsystem.reaction.topology.StateTransitionGraph[Tuple[expertsystem.particle.Particle, float]]) → None[source]¶
-
registered_topologies
: Set[expertsystem.reaction.topology.Topology]¶
-
transform
(events: expertsystem.amplitude.data.EventCollection) → expertsystem.amplitude.data.DataSet[source]¶
-
-
class
ReactionInfo
(initial_state, final_state)[source]¶ Bases:
object
-
__eq__
(other)¶ Method generated by attrs for class ReactionInfo.
-
static
from_graph
(graph: expertsystem.reaction.topology.StateTransitionGraph[Tuple[expertsystem.particle.Particle, float]]) → expertsystem.amplitude.kinematics.ReactionInfo[source]¶
-
initial_state
: expertsystem.reaction.topology.FrozenDict[int, expertsystem.particle.Particle]¶
-
-
get_helicity_angle_label
(topology: expertsystem.reaction.topology.Topology, edge_id: int) → Tuple[str, str][source]¶ Generate labels that can be used to identify helicity angles.
>>> from expertsystem.amplitude.kinematics import get_helicity_angle_label >>> from expertsystem.reaction import create_isobar_topologies >>> topologies = create_isobar_topologies(5) >>> topology = topologies[0] >>> for i in topology.intermediate_edge_ids | topology.outgoing_edge_ids: ... phi_label, theta_label = get_helicity_angle_label(topology, i) ... print(f"{i}: '{phi_label}'") 0: 'phi_0,0+3+4' 1: 'phi_1,1+2' 2: 'phi_2,1+2' 3: 'phi_3,3+4,0+3+4' 4: 'phi_4,3+4,0+3+4' 5: 'phi_0+3+4' 6: 'phi_1+2' 7: 'phi_3+4,0+3+4' >>> topology = topologies[1] >>> for i in topology.intermediate_edge_ids | topology.outgoing_edge_ids: ... phi_label, theta_label = get_helicity_angle_label(topology, i) ... print(f"{i}: '{phi_label}'") 0: 'phi_0,0+1' 1: 'phi_1,0+1' 2: 'phi_2,2+3+4' 3: 'phi_3,3+4,2+3+4' 4: 'phi_4,3+4,2+3+4' 5: 'phi_0+1' 6: 'phi_2+3+4' 7: 'phi_3+4,2+3+4'
topologies[0]
topologies[1]
-
get_invariant_mass_label
(topology: expertsystem.reaction.topology.Topology, edge_id: int) → str[source]¶