kinematics¶
Kinematic based calculations for the helicity formalism.
It’s responsibilities are defined by the interface
interfaces.Kinematics
.
Here, the main responsibility is the conversion of general kinematic information of a reaction to helicity formalism specific quantities
\((s, \theta, \phi)\)
The basic building blocks are the HelicityKinematics
and
SubSystem
.
-
class
HelicityKinematics
(reaction_info: tensorwaves.physics.helicity_formalism.kinematics.ParticleReactionKinematicsInfo)[source]¶ Bases:
tensorwaves.interfaces.Kinematics
Kinematics of the helicity formalism.
General usage is
Register kinematic variables via the three methods (
register_invariant_mass()
,register_helicity_angles()
,register_subsystem()
) first.Then convert events to these kinematic variables.
For additional functionality check
phase_space_volume()
andis_within_phase_space()
.-
convert
(events: numpy.ndarray) → dict[source]¶ Convert events to the registered kinematics variables.
- Parameters
events –
A three dimensional numpy array of the shape \((n_{\mathrm{part}}, n_{\mathrm{events}}, 4)\).
\(n_{\mathrm{part}}\) is the number of particles
\(n_{\mathrm{events}}\) is the number of events
The third dimension correspond to the four momentum info \((p_x, p_y, p_z, E)\).
- Returns
A
dict
containing the registered kinematic variables as keys and their corresponding values. This is also known as a dataset.
-
classmethod
from_model
(model: expertsystem.amplitude.model.AmplitudeModel) → tensorwaves.physics.helicity_formalism.kinematics.HelicityKinematics[source]¶
-
is_within_phase_space
(events: numpy.ndarray) → Tuple[bool][source]¶ Check whether events lie within the phase space definition.
-
property
phase_space_volume
¶ Compute volume of the phase space.
-
property
reaction_kinematics_info
¶
-
register_helicity_angles
(subsystem: tensorwaves.physics.helicity_formalism.kinematics.SubSystem) → Tuple[str, str][source]¶ Register helicity angles \((\theta, \phi)\) of a
SubSystem
.
-
register_subsystem
(subsystem: tensorwaves.physics.helicity_formalism.kinematics.SubSystem) → Tuple[str, …][source]¶ Register all kinematic variables of the
SubSystem
.
-
class
ParticleReactionKinematicsInfo
(initial_state_names: List[str], final_state_names: List[str], particles: expertsystem.particle.ParticleCollection, total_invariant_mass: Optional[float] = None, fs_id_event_pos_mapping: Optional[Dict[int, int]] = None)[source]¶ Bases:
object
Contains boundary condition information of a particle reaction.
- Parameters
initial_state_names – Defines the initial state
final_state_names – Defines the final state
particle_dict – Contains particle information
total_invariant_mass – Invariant mass \(\sqrt(s)\) of the initial or final state. Has to be specified for a multi particle initial state.
fs_id_event_pos_mapping – Mapping between particle IDs and their positions in an event collection.
-
property
final_state_masses
¶
-
classmethod
from_model
(model: expertsystem.amplitude.model.AmplitudeModel) → tensorwaves.physics.helicity_formalism.kinematics.ParticleReactionKinematicsInfo[source]¶ Initialize from a recipe dictionary.
-
property
fs_id_event_pos_mapping
¶
-
property
initial_state_masses
¶
-
property
total_invariant_mass
¶
-
class
SubSystem
(final_states: Sequence[Sequence[int]], recoil_state: Sequence[int], parent_recoil_state: Sequence[int])[source]¶ Bases:
collections.abc.Hashable
Represents a part of a decay chain.
A SubSystem resembles a decaying state and its ingoing and outgoing state. It is uniquely defined by:
-
property
final_states
¶ Get final state content of the decay products.
-
property
parent_recoil_state
¶ Get final state content of the recoil partner of the parent.
-
property
recoil_state
¶ Get final state content of the recoil partner.
-
property