dalitz¶
analysis_helpers.dalitz
¶
DalitzKinematics(mother_mass, daughters_masses)
¶
A class to calculate the kinematics of a decay
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
mother_mass
|
float
|
the mass of the mother particle |
required |
daughters_masses
|
list
|
the masses of the daughters particles |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
Less than two daughters are provided |
Source code in src/analysis_helpers/dalitz.py
otherDaughter(daughters_indices)
¶
Get the index of the daughter that is not in the list
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
daughters_indices
|
list
|
list of indices of the daughters of interest |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
list of daughters indices is not of length 2 |
Returns:
| Name | Type | Description |
|---|---|---|
int |
the index of the daughter that is not in the list |
Source code in src/analysis_helpers/dalitz.py
mSqMin(daughters_indices)
¶
Calculate the minimum invariant mass squared of a combination of daughters
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
daughters_indices
|
list
|
the indices of the daughters of interest |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
no daughters indices are provided |
Returns:
| Name | Type | Description |
|---|---|---|
float |
the minimum invariant mass squared of the combination |
Source code in src/analysis_helpers/dalitz.py
mSqMax(daughters_indices)
¶
Calculate the maximum invariant mass squared of a combination of daughters
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
daughters_indices
|
list
|
the indices of the daughters of interest |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
no daughters indices are provided |
Returns:
| Name | Type | Description |
|---|---|---|
float |
the maximum invariant mass squared of the combination |
Source code in src/analysis_helpers/dalitz.py
EStar2(inv_mass, daughters_indices)
¶
Calculates the energy squared of a combination of daughters
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
inv_mass
|
float
|
the invariant mass of the combination |
required |
daughters_indices
|
list
|
the list of indices of the daughters of interest |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
two daughters indices are required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
the energy squared of the combination to calculate the Dalitz plot range |
Source code in src/analysis_helpers/dalitz.py
EStar3(inv_mass, daughters_indices)
¶
Calculates the energy squared of a combination of daughters
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
inv_mass
|
float
|
the invariant mass of the combination |
required |
daughters_indices
|
list
|
the list of indices of the daughters of interest |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
two daughters indices are required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
the energy squared of the decay remnants to calculate the Dalitz plot range |
Source code in src/analysis_helpers/dalitz.py
OtherMassSq(s1, s2)
¶
Calculate the invariant mass squared of the remaining combination of daughters
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
s1
|
float
|
the invariant mass of the first combination |
required |
s2
|
float
|
the invariant mass of the second combination |
required |
Source code in src/analysis_helpers/dalitz.py
Contour(daughters_indices, num_points=1000)
¶
Calculate the Dalitz plot contour as mSq23 vs mSq12
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
daughters_indices
|
list
|
the list of indices of the daughters on the interest |
required |
Npoints
|
int
|
the number of points for the contour |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
two daughters indices are required |
Returns:
| Name | Type | Description |
|---|---|---|
tuple |
the x and y_low,high coordinates of the contour |
Source code in src/analysis_helpers/dalitz.py
DalitzPhaseSpace(ma, mb, mc, md, mabrange=None, mbcrange=None, macrange=None, symmetric=False)
¶
Class for Dalitz plot (2D) phase space for the 3-body decay D->ABC
Constructor ma - A mass mb - B mass mc - C mass md - D (mother) mass
Source code in src/analysis_helpers/dalitz.py
inside(x)
¶
Check if the point x=(m2ab, m2bc) is inside the phase space
Source code in src/analysis_helpers/dalitz.py
unfiltered_sample(size, maximum=None)
¶
Return TF graph for uniform sample of point within phase space.
size : number of initial points to generate. Not all of them will fall into phase space,
so the number of points in the output will be
Source code in src/analysis_helpers/dalitz.py
uniform_sample(size, maximum=None)
¶
Generate uniform sample of point within phase space.
size : number of initial points to generate. Not all of them will fall into phase space,
so the number of points in the output will be
Source code in src/analysis_helpers/dalitz.py
rectangular_grid_sample(size_ab, size_bc, space_to_sample='DP')
¶
Create a data sample in the form of rectangular grid of points within the phase space. Useful for normalisation. size_ab : number of grid nodes in m2ab range size_bc : number of grid nodes in m2bc range space_to_sample: Sampling is done according to cases below but all of them return DP vars (m^2_{ab}, m^2_{bc}). -if 'DP': Unifrom sampling is in (m^2_{ab}, m^2_{bc}) -if 'linDP': Samples in (m_{ab}, m_{bc}) -if 'sqDP': Samples in (mPrimeAC, thPrimeAC).
Source code in src/analysis_helpers/dalitz.py
m2ab(sample)
¶
m2bc(sample)
¶
m2ac(sample)
¶
Return m2ac variable (vector) for the input sample. It is calculated from m2ab and m2bc
cos_helicity_ab(sample)
¶
Calculate cos(helicity angle) of the AB resonance
cos_helicity_bc(sample)
¶
Calculate cos(helicity angle) of the BC resonance
cos_helicity_ac(sample)
¶
Calculate cos(helicity angle) of the AC resonance
m_prime_ac(sample)
¶
Square Dalitz plot variable m'
Source code in src/analysis_helpers/dalitz.py
theta_prime_ac(sample)
¶
m_prime_ab(sample)
¶
Square Dalitz plot variable m'
Source code in src/analysis_helpers/dalitz.py
from_square_dalitz_plot(mprimeac, thprimeac)
¶
sample: Given mprimeac and thprimeac, returns 2D tensor for (m2ab, m2bc). Make sure you don't pass in sqDP corner points as they lie outside phsp.
Source code in src/analysis_helpers/dalitz.py
square_dalitz_plot_jacobian(sample)
¶
sample: [mAB^2, mBC^2] Return the jacobian determinant (|J|) of tranformation from dmAB^2dmBC^2 -> |J|dMpr*dThpr where Mpr, Thpr are defined in (AC) frame.
Source code in src/analysis_helpers/dalitz.py
invariant_mass_jacobian(sample)
¶
sample: [mAB^2, mBC^2] Return the jacobian determinant (|J|) of tranformation from dmAB^2dmBC^2 -> |J|dmABdmBC. |J| = 4mAB*mBC
Source code in src/analysis_helpers/dalitz.py
theta_prime_ab(sample)
¶
m_prime_bc(sample)
¶
Square Dalitz plot variable m'
Source code in src/analysis_helpers/dalitz.py
theta_prime_bc(sample)
¶
from_vectors(m2ab, m2bc)
¶
final_state_momenta(m2ab, m2bc)
¶
Calculate 4-momenta of final state tracks in a certain reference frame (decay is in x-z plane, particle A moves along z axis) m2ab, m2bc : invariant masses of AB and BC combinations
Source code in src/analysis_helpers/dalitz.py
cos_helicity_angle_dalitz(m2ab, m2bc, md, ma, mb, mc)
¶
Calculate cosine of helicity angle for a set of two Dalitz plot variables
:param m2ab: 1st Dalitz plot variable (squared invariant mass of the AB combination) :param m2bc: 2nd Dalitz plot variable (squared invariant mass of the BC combination) :param md: Mass of the decaying particle D :param ma: Mass of the decay product A :param mb: Mass of the decay product B :param mc: Mass of the decay product C :returns: Cosine of the helicity angle of the AB combination (of the angle between AB direction in D rest frame and A direction in AB rest frame).
Source code in src/analysis_helpers/dalitz.py
two_body_momentum_squared(md, ma, mb)
¶
Squared momentum of two-body decay products D->AB in the D rest frame
:param md: :param ma: :param mb:
Source code in src/analysis_helpers/dalitz.py
two_body_momentum(md, ma, mb)
¶
Momentum of two-body decay products D->AB in the D rest frame
:param md: :param ma: :param mb:
vector(x, y, z)
¶
Make a 3-vector from components. Components are stacked along the last index.
:param x: x-component of the vector :param y: y-component of the vector :param z: z-component of the vector :returns: 3-vector
Source code in src/analysis_helpers/dalitz.py
lorentz_vector(space, time)
¶
Make a Lorentz vector from spatial and time components
:param space: 3-vector of spatial components :param time: time component :returns: Lorentz vector