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

  1. Register kinematic variables via the three methods (register_invariant_mass(), register_helicity_angles(), register_subsystem()) first.

  2. Then convert events to these kinematic variables.

For additional functionality check phase_space_volume() and is_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.

Parameters

subsystem – SubSystem to which the registered angles correspond.

Returns

A pair of str keys representing the angles. They can be used to retrieve the angles from the dataset returned by convert().

register_invariant_mass(final_state: Sequence)str[source]

Register an invariant mass \(s\).

Parameters

final_state – collection of particle unique id’s

Returns

A str key representing the invariant mass. It can be used to retrieve this invariant mass from the dataset returned by convert().

register_subsystem(subsystem: tensorwaves.physics.helicity_formalism.kinematics.SubSystem) → Tuple[str, ][source]

Register all kinematic variables of the SubSystem.

Parameters

subsystem – SubSystem to which the registered kinematic variables correspond.

Returns

A tuple of str keys representing the \((s, \theta, \phi)\). They can be used to retrieve the kinematic data from the dataset returned by convert().

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:

__eq__(other: object)bool[source]

Equal testing operator.

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.