kinematics¶
import ampform.kinematics
Kinematics of an amplitude model in the helicity formalism.
-
class
HelicityAdapter
(reaction_info: 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
: ReactionInfo¶
-
transform
(events: EventCollection) → DataSet[source]¶
-
-
class
ReactionInfo
(initial_state, final_state)[source]¶ Bases:
object
-
__eq__
(other)¶ Method generated by attrs for class ReactionInfo.
-
final_state
: FrozenDict[int, Particle]¶
-
static
from_graph
(graph: StateTransitionGraph[Tuple[Particle, float]]) → ReactionInfo[source]¶
-
initial_state
: FrozenDict[int, Particle]¶
-
-
get_helicity_angle_label
(topology: Topology, edge_id: int) → Tuple[str, str][source]¶ Generate labels that can be used to identify helicity angles.
>>> from ampform.kinematics import get_helicity_angle_label >>> from qrules.topology 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]