laura is hosted by Hepforge, IPPP Durham
Laura++  3.6.0
A maximum likelihood fitting package for performing Dalitz-plot analysis.

Class for calculating 3-body kinematic quantities. More...

#include <LauKinematics.hh>

Public Member Functions

 LauKinematics (const Double_t m1, const Double_t m2, const Double_t m3, const Double_t mParent, const Bool_t calcSquareDPCoords=kFALSE, const Bool_t symmetricalDP=kFALSE, const Bool_t fullySymmetricDP=kFALSE)
 Constructor. More...
 
virtual ~LauKinematics ()
 Destructor.
 
void squareDP (const Bool_t calcSquareDPCoords)
 Enable/disable the calculation of square Dalitz plot co-ordinates. More...
 
Bool_t squareDP () const
 Are the square Dalitz plot co-ordinates being calculated? More...
 
Bool_t gotSymmetricalDP () const
 Is the DP symmetric? More...
 
Bool_t gotFullySymmetricDP () const
 Is the DP fully symmetric? More...
 
void warningMessages (const Bool_t boolean)
 Enable/disable warning messages.
 
void updateKinematics (const Double_t m13Sq, const Double_t m23Sq)
 Update all kinematic quantities based on the DP co-ordinates m13Sq and m23Sq. More...
 
void updateSqDPKinematics (const Double_t mPrime, const Double_t thetaPrime)
 Update all kinematic quantities based on the square DP co-ordinates m' and theta'. More...
 
void updateKinematicsFrom23 (const Double_t m23, const Double_t c23)
 Update all kinematic quantities based on m23 and cos(theta23) More...
 
void updateKinematicsFrom13 (const Double_t m13, const Double_t c13)
 Update all kinematic quantities based on m13 and cos(theta13) More...
 
void updateKinematicsFrom12 (const Double_t m12, const Double_t c12)
 Update all kinematic quantities based on m12 and cos(theta12) More...
 
Double_t calcSqDPJacobian (const Double_t mPrime, const Double_t thPrime) const
 Calculate the Jacobian for the transformation m23^2, m13^2 -> m', theta' (square DP) at the given point in the square DP. More...
 
Double_t calcSqDPJacobian () const
 Calculate the Jacobian for the transformation m23^2, m13^2 -> m', theta' (square DP) at the currently stored point in the square DP. More...
 
void genFlatPhaseSpace (Double_t &m13Sq, Double_t &m23Sq) const
 Routine to generate events flat in phase-space. More...
 
void genFlatSqDP (Double_t &mPrime, Double_t &thetaPrime) const
 Routine to generate events flat in the square Dalitz plot. More...
 
Bool_t withinDPLimits (const Double_t m13Sq, const Double_t m23Sq) const
 Check whether a given (m13Sq,m23Sq) point is within the kinematic limits of the Dalitz plot. More...
 
Bool_t withinDPLimits2 (const Double_t m13Sq, const Double_t m23Sq) const
 Check whether a given (m13Sq,m23Sq) point is within the kinematic limits of the Dalitz plot (alternate method) More...
 
Bool_t withinSqDPLimits (const Double_t mPrime, const Double_t thetaPrime) const
 Check whether a given (m',theta') point is within the kinematic limits of the Dalitz plot. More...
 
Double_t calcThirdMassSq (const Double_t firstMassSq, const Double_t secondMassSq) const
 Calculate the third invariant mass square from the two provided (e.g. mjkSq from mijSq and mikSq) More...
 
Double_t distanceFromDPCentre () const
 Calculate the distance from the currently set (m13Sq, m23Sq) point to the centre of the Dalitz plot (which is defined as the point where m12=m13=m23) More...
 
Double_t distanceFromDPCentre (const Double_t m13Sq, const Double_t m23Sq) const
 Calculate the distance from a given (m13Sq, m23Sq) point to the centre of the Dalitz plot (which is defined as the point where m12=m13=m23) More...
 
Double_t getm12 () const
 Get the m12 invariant mass. More...
 
Double_t getm23 () const
 Get the m23 invariant mass. More...
 
Double_t getm13 () const
 Get the m13 invariant mass. More...
 
Double_t getm12Sq () const
 Get the m12 invariant mass square. More...
 
Double_t getm23Sq () const
 Get the m23 invariant mass square. More...
 
Double_t getm13Sq () const
 Get the m13 invariant mass square. More...
 
Double_t getc12 () const
 Get the cosine of the helicity angle theta12. More...
 
Double_t getc23 () const
 Get the cosine of the helicity angle theta23. More...
 
Double_t getc13 () const
 Get the cosine of the helicity angle theta13. More...
 
Double_t getmPrime () const
 Get m' value. More...
 
Double_t getThetaPrime () const
 Get theta' value. More...
 
Double_t getmParent () const
 Get parent mass. More...
 
Double_t getmParentSq () const
 Get parent mass squared. More...
 
Double_t getDPBoxArea () const
 Get the box area defined from the kinematic bounds. More...
 
void flipAndUpdateKinematics ()
 Flips the DP variables m13^2 <-> m23^2 and recalculates all kinematic quantities. More...
 
void rotateAndUpdateKinematics ()
 Cyclically rotates the DP variables (m12 -> m23, m23 -> m13, m13 -> m12) and recalculates all kinematic quantities. More...
 
Double_t getm1 () const
 Get the m1 mass. More...
 
Double_t getm2 () const
 Get the m2 mass. More...
 
Double_t getm3 () const
 Get the m3 mass. More...
 
Double_t getm23Min () const
 Get the m23 minimum defined as (m2 + m3) More...
 
Double_t getm13Min () const
 Get the m13 minimum defined as (m1 + m3) More...
 
Double_t getm12Min () const
 Get the m12 minimum defined as (m1 + m2) More...
 
Double_t getm23Max () const
 Get the m23 maximum defined as (mParent - m1) More...
 
Double_t getm13Max () const
 Get the m13 maximum defined as (mParent - m2) More...
 
Double_t getm12Max () const
 Get the m12 maximum defined as (mParent - m3) More...
 
Double_t getm23SqMin () const
 Get the m23Sq minimum, (m2 + m3)^2. More...
 
Double_t getm13SqMin () const
 Get the m13Sq minimum, (m1 + m3)^2. More...
 
Double_t getm12SqMin () const
 Get the m12Sq minimum, (m1 + m2)^2. More...
 
Double_t getm23SqMax () const
 Get the m23Sq maximum, (mParent - m1)^2. More...
 
Double_t getm13SqMax () const
 Get the m13Sq maximum, (mParent - m2)^2. More...
 
Double_t getm12SqMax () const
 Get the m12Sq maximum, (mParent - m3)^2. More...
 
Double_t getp1_12 () const
 Get the momentum of the track 1 in 12 rest frame. More...
 
Double_t getp3_12 () const
 Get the momentum of the track 3 in 12 rest frame. More...
 
Double_t getp2_23 () const
 Get the momentum of the track 2 in 23 rest frame. More...
 
Double_t getp1_23 () const
 Get the momentum of the track 1 in 23 rest frame. More...
 
Double_t getp1_13 () const
 Get the momentum of the track 1 in 13 rest frame. More...
 
Double_t getp2_13 () const
 Get the momentum of the track 2 in 13 rest frame. More...
 
Double_t getp1_Parent () const
 Get the momentum of the track 1 in parent rest frame. More...
 
Double_t getp2_Parent () const
 Get the momentum of the track 2 in parent rest frame. More...
 
Double_t getp3_Parent () const
 Get the momentum of the track 3 in parent rest frame. More...
 
void drawDPContour (const Int_t orientation=1323, const Int_t nbins=100)
 Method to draw the Dalitz plot contours on the top of the histo previously drawn. More...
 
Double_t getcov12 () const
 Get covariant factor in 12 axis. More...
 
Double_t getcov13 () const
 Get covariant factor in 13 axis. More...
 
Double_t getcov23 () const
 Get covariant factor in 23 axis. More...
 

Protected Member Functions

void updateMassSq_m12 (const Double_t m12, const Double_t c12)
 Update the variables m23Sq_ and m13Sq_ given the invariant mass m12 and the cosine of the helicity angle c12. More...
 
void updateMassSq_m23 (const Double_t m23, const Double_t c23)
 Update the variables m12Sq_ and m13Sq_ given the invariant mass m23 and the cosine of the helicity angle c23. More...
 
void updateMassSq_m13 (const Double_t m13, const Double_t c13)
 Update the variables m12Sq_ and m23Sq_ given the invariant mass m13 and the cosine of the helicity angle c13. More...
 
void updateMassSquares (const Double_t m13Sq, const Double_t m23Sq)
 Update some kinematic quantities based on the DP co-ordinates m13Sq and m23Sq. More...
 
void updateSqDPMassSquares (const Double_t mPrime, const Double_t thetaPrime)
 Update some kinematic quantities based on the square DP co-ordinates m' and theta'. More...
 
Double_t cFromM (const Double_t mijSq, const Double_t mikSq, const Double_t mij, const Int_t i, const Int_t j, const Int_t k) const
 General method to calculate the cos(helicity) variables from the masses of the particles. More...
 
Double_t mFromC (const Double_t mijSq, const Double_t cij, const Double_t mij, const Int_t i, const Int_t j, const Int_t k) const
 General method to calculate mikSq given mijSq and cosHel_ij. More...
 
Double_t pCalc (const Double_t energy, const Double_t massSq) const
 General method to calculate the momentum of a particle, given its energy and invariant mass squared. More...
 
Double_t genm13Sq () const
 Randomly generate the invariant mass squared m13Sq. More...
 
Double_t genm23Sq () const
 Randomly generate the invariant mass squared m23Sq. More...
 
Double_t genm12Sq () const
 Randomly generate the invariant mass squared m12Sq. More...
 
void calcm12Sq ()
 Calculate m12Sq from m13Sq and m23Sq.
 
void calcHelicities ()
 Calculate cosines of the helicity angles, momenta of daughters and bachelor in various ij rest frames.
 
void calcSqDPVars ()
 Calculate the m' and theta' variables for the square Dalitz plot.
 
void calcParentFrameMomenta ()
 Calculate the momenta of each daughter in the parent rest frame.
 

Private Member Functions

 LauKinematics (const LauKinematics &rhs)
 Copy constructor (not implemented)
 
LauKinematicsoperator= (const LauKinematics &rhs)
 Copy assignment operator (not implemented)
 

Private Attributes

const Bool_t symmetricalDP_
 Symmetrical DP.
 
const Bool_t fullySymmetricDP_
 Fully-symmetrical DP.
 
const Double_t m1_
 Mass of particle 1.
 
const Double_t m2_
 Mass of particle 2.
 
const Double_t m3_
 Mass of particle 3.
 
const Double_t mParent_
 Mass of parent particle.
 
const Double_t m1Sq_
 Mass of particle 1 squared.
 
const Double_t m2Sq_
 Mass of particle 2 squared.
 
const Double_t m3Sq_
 Mass of particle 3 squared.
 
const Double_t mParentSq_
 Mass of parent particle squared.
 
std::vector< Double_t > mass_
 Vector of daughter particles masses.
 
std::vector< Double_t > mMin_
 Vector of the minimum mij values.
 
std::vector< Double_t > mMax_
 Vector of the maximum mij values.
 
std::vector< Double_t > mDiff_
 Vector of the difference between the mMax and mMin.
 
std::vector< Double_t > mSq_
 Vector of daughter particles masses squared.
 
std::vector< Double_t > mSqMin_
 Vector of the minimum mijSq values.
 
std::vector< Double_t > mSqMax_
 Vector of the maximum mijSq values.
 
std::vector< Double_t > mSqDiff_
 Vector of the difference between the mSqMax and mSqMin.
 
const Double_t mDTot_
 Sum of the daughter masses.
 
const Double_t massInt_
 Mass difference between the parent particle and the sum of the daughter particles.
 
const Double_t mSqDTot_
 Sum of the squares of the daughter masses.
 
Double_t m12_
 Invariant mass m12.
 
Double_t m23_
 Invariant mass m23.
 
Double_t m13_
 Invariant mass m13.
 
Double_t m12Sq_
 Invariant mass m12 squared.
 
Double_t m23Sq_
 Invariant mass m23 squared.
 
Double_t m13Sq_
 Invariant mass m13 squared.
 
Double_t c12_
 Cosine of the helicity angle theta12, which is defined as the angle between 1&3 in the rest frame of 1&2.
 
Double_t c23_
 Cosine of the helicity angle theta23, which is defined as the angle between 1&2 in the rest frame of 2&3.
 
Double_t c13_
 Cosine of the helicity angle theta13, which is defined as the angle between 1&2 in the rest frame of 1&3.
 
Double_t mPrime_
 m' co-ordinate
 
Double_t thetaPrime_
 theta' co-ordinate
 
Double_t qi_
 Momentum q of particle i.
 
Double_t qk_
 Momentum q of particle k.
 
Double_t p1_12_
 Momentum of track 1 in 1-2 rest frame.
 
Double_t p3_12_
 Momentum of track 3 in 1-2 rest frame.
 
Double_t p2_23_
 Momentum of track 2 in 2-3 rest frame.
 
Double_t p1_23_
 Momentum of track 1 in 2-3 rest frame.
 
Double_t p1_13_
 Momentum of track 1 in 1-3 rest frame.
 
Double_t p2_13_
 Momentum of track 2 in 1-3 rest frame.
 
Double_t p1_Parent_
 Momentum of track 1 in parent rest frame.
 
Double_t p2_Parent_
 Momentum of track 2 in parent rest frame.
 
Double_t p3_Parent_
 Momentum of track 3 in parent rest frame.
 
Bool_t squareDP_
 Should we calculate the square DP co-ordinates or not?
 
Bool_t warnings_
 Enable/disable warning messages.
 

Detailed Description

Class for calculating 3-body kinematic quantities.

Class for defining the many routines related to the three body kinematics. Given the two DP co-ordinates, all other useful quantities e.g. the helicity angles are calculated. Optionally, the so-called `‘square Dalitz plot’' quantities can also be calculated.

Definition at line 45 of file LauKinematics.hh.

Constructor & Destructor Documentation

◆ LauKinematics()

LauKinematics::LauKinematics ( const Double_t  m1,
const Double_t  m2,
const Double_t  m3,
const Double_t  mParent,
const Bool_t  calcSquareDPCoords = kFALSE,
const Bool_t  symmetricalDP = kFALSE,
const Bool_t  fullySymmetricDP = kFALSE 
)

Constructor.

Parameters
[in]m1the first daughter mass
[in]m2the second daughter mass
[in]m3the third daughter mass
[in]mParentthe parent particle mass
[in]calcSquareDPCoordsboolean flag to enable/disable calculation of the square Dalitz plot co-ordinates
[in]symmetricalDPboolean flag to indicate whether the DP is symmetric (i.e. two identical particle in final state)
[in]fullySymmetricDPboolean flag to indicate whether the DP is fully symmetric (i.e. all three final-state particles are identical)

Definition at line 40 of file LauKinematics.cc.

Member Function Documentation

◆ calcSqDPJacobian() [1/2]

Double_t LauKinematics::calcSqDPJacobian ( ) const

Calculate the Jacobian for the transformation m23^2, m13^2 -> m', theta' (square DP) at the currently stored point in the square DP.

Returns
the jacobian of the transformation

Definition at line 171 of file LauKinematics.cc.

◆ calcSqDPJacobian() [2/2]

Double_t LauKinematics::calcSqDPJacobian ( const Double_t  mPrime,
const Double_t  thPrime 
) const

Calculate the Jacobian for the transformation m23^2, m13^2 -> m', theta' (square DP) at the given point in the square DP.

Parameters
[in]mPrimethe m' co-ordinate
[in]thPrimethe theta' co-ordinate
Returns
the jacobian of the transformation

Definition at line 176 of file LauKinematics.cc.

◆ calcThirdMassSq()

Double_t LauKinematics::calcThirdMassSq ( const Double_t  firstMassSq,
const Double_t  secondMassSq 
) const

Calculate the third invariant mass square from the two provided (e.g. mjkSq from mijSq and mikSq)

Parameters
[in]firstMassSqthe first invariant mass squared
[in]secondMassSqthe second invariant mass squared
Returns
the third invariant mass square

Definition at line 522 of file LauKinematics.cc.

◆ cFromM()

Double_t LauKinematics::cFromM ( const Double_t  mijSq,
const Double_t  mikSq,
const Double_t  mij,
const Int_t  i,
const Int_t  j,
const Int_t  k 
) const
protected

General method to calculate the cos(helicity) variables from the masses of the particles.

Parameters
[in]mijSqthe mij invariant mass square
[in]mikSqthe mik invariant mass square
[in]mijthe mij invariant mass
[in]ithe index for the first track
[in]jthe index for the second track
[in]kthe index for the third track
Returns
helicity angle in the ij rest frame

Definition at line 301 of file LauKinematics.cc.

◆ distanceFromDPCentre() [1/2]

Double_t LauKinematics::distanceFromDPCentre ( ) const

Calculate the distance from the currently set (m13Sq, m23Sq) point to the centre of the Dalitz plot (which is defined as the point where m12=m13=m23)

Returns
the distance to the DP centre

Definition at line 528 of file LauKinematics.cc.

◆ distanceFromDPCentre() [2/2]

Double_t LauKinematics::distanceFromDPCentre ( const Double_t  m13Sq,
const Double_t  m23Sq 
) const

Calculate the distance from a given (m13Sq, m23Sq) point to the centre of the Dalitz plot (which is defined as the point where m12=m13=m23)

Returns
the distance to the DP centre

Definition at line 533 of file LauKinematics.cc.

◆ drawDPContour()

void LauKinematics::drawDPContour ( const Int_t  orientation = 1323,
const Int_t  nbins = 100 
)

Method to draw the Dalitz plot contours on the top of the histo previously drawn.

Parameters
[in]orientationorientation used for the draw, with default set to 1323 that corresponds x = m13, y = m23
[in]nbinsnumber of bins for the contour to be sampled over (default = 100)

Definition at line 722 of file LauKinematics.cc.

◆ flipAndUpdateKinematics()

void LauKinematics::flipAndUpdateKinematics ( )

Flips the DP variables m13^2 <-> m23^2 and recalculates all kinematic quantities.

Useful in the case of symmetrical Dalitz plots, i.e. when two final state particles are identical

Definition at line 565 of file LauKinematics.cc.

◆ genFlatPhaseSpace()

void LauKinematics::genFlatPhaseSpace ( Double_t &  m13Sq,
Double_t &  m23Sq 
) const

Routine to generate events flat in phase-space.

Parameters
[out]m13Sqthe invariant mass squared of daughters 1 and 3
[out]m23Sqthe invariant mass squared of daughters 2 and 3

Definition at line 412 of file LauKinematics.cc.

◆ genFlatSqDP()

void LauKinematics::genFlatSqDP ( Double_t &  mPrime,
Double_t &  thetaPrime 
) const

Routine to generate events flat in the square Dalitz plot.

Parameters
[out]mPrimethe m' variable
[out]thetaPrimethe theta' variable

Definition at line 432 of file LauKinematics.cc.

◆ genm12Sq()

Double_t LauKinematics::genm12Sq ( ) const
protected

Randomly generate the invariant mass squared m12Sq.

Returns
the invariant mass squared m12Sq

Definition at line 690 of file LauKinematics.cc.

◆ genm13Sq()

Double_t LauKinematics::genm13Sq ( ) const
protected

Randomly generate the invariant mass squared m13Sq.

Returns
the invariant mass squared m13Sq

Definition at line 678 of file LauKinematics.cc.

◆ genm23Sq()

Double_t LauKinematics::genm23Sq ( ) const
protected

Randomly generate the invariant mass squared m23Sq.

Returns
the invariant mass squared m23Sq

Definition at line 684 of file LauKinematics.cc.

◆ getc12()

Double_t LauKinematics::getc12 ( ) const
inline

Get the cosine of the helicity angle theta12.

theta12 is defined as the angle between 1&3 in the rest frame of 1&2

Returns
the cosine of the helicity angle theta12

Definition at line 259 of file LauKinematics.hh.

◆ getc13()

Double_t LauKinematics::getc13 ( ) const
inline

Get the cosine of the helicity angle theta13.

theta13 is defined as the angle between 3&2 in the rest frame of 1&3

Returns
the cosine of the helicity angle theta13

Definition at line 275 of file LauKinematics.hh.

◆ getc23()

Double_t LauKinematics::getc23 ( ) const
inline

Get the cosine of the helicity angle theta23.

theta23 is defined as the angle between 3&1 in the rest frame of 2&3

Returns
the cosine of the helicity angle theta23

Definition at line 267 of file LauKinematics.hh.

◆ getcov12()

Double_t LauKinematics::getcov12 ( ) const
inline

Get covariant factor in 12 axis.

Returns
covariant factor in 12 axis

Definition at line 480 of file LauKinematics.hh.

◆ getcov13()

Double_t LauKinematics::getcov13 ( ) const
inline

Get covariant factor in 13 axis.

Returns
covariant factor in 13 axis

Definition at line 489 of file LauKinematics.hh.

◆ getcov23()

Double_t LauKinematics::getcov23 ( ) const
inline

Get covariant factor in 23 axis.

Returns
covariant factor in 23 axis

Definition at line 498 of file LauKinematics.hh.

◆ getDPBoxArea()

Double_t LauKinematics::getDPBoxArea ( ) const
inline

Get the box area defined from the kinematic bounds.

The box area is defined as:
[(M-m3)^2 - (m1+m2)^2]*[(M-m2)^2 - (m1+m3)^2] .:. (m13SqMax - m13SqMin)*(m23SqMax - m23SqMin)

Returns
the Dalitz plot box area

Definition at line 308 of file LauKinematics.hh.

◆ getm1()

Double_t LauKinematics::getm1 ( ) const
inline

Get the m1 mass.

Returns
the m1 mass

Definition at line 329 of file LauKinematics.hh.

◆ getm12()

Double_t LauKinematics::getm12 ( ) const
inline

Get the m12 invariant mass.

Returns
the m12 invariant mass

Definition at line 221 of file LauKinematics.hh.

◆ getm12Max()

Double_t LauKinematics::getm12Max ( ) const
inline

Get the m12 maximum defined as (mParent - m3)

Returns
the maximum value for m12

Definition at line 377 of file LauKinematics.hh.

◆ getm12Min()

Double_t LauKinematics::getm12Min ( ) const
inline

Get the m12 minimum defined as (m1 + m2)

Returns
the minimum value for m12

Definition at line 359 of file LauKinematics.hh.

◆ getm12Sq()

Double_t LauKinematics::getm12Sq ( ) const
inline

Get the m12 invariant mass square.

Returns
the m12 invariant mass square

Definition at line 239 of file LauKinematics.hh.

◆ getm12SqMax()

Double_t LauKinematics::getm12SqMax ( ) const
inline

Get the m12Sq maximum, (mParent - m3)^2.

Returns
the maximum value for m12Sq

Definition at line 413 of file LauKinematics.hh.

◆ getm12SqMin()

Double_t LauKinematics::getm12SqMin ( ) const
inline

Get the m12Sq minimum, (m1 + m2)^2.

Returns
the minimum value for m12Sq

Definition at line 395 of file LauKinematics.hh.

◆ getm13()

Double_t LauKinematics::getm13 ( ) const
inline

Get the m13 invariant mass.

Returns
the m13 invariant mass

Definition at line 233 of file LauKinematics.hh.

◆ getm13Max()

Double_t LauKinematics::getm13Max ( ) const
inline

Get the m13 maximum defined as (mParent - m2)

Returns
the maximum value for m13

Definition at line 371 of file LauKinematics.hh.

◆ getm13Min()

Double_t LauKinematics::getm13Min ( ) const
inline

Get the m13 minimum defined as (m1 + m3)

Returns
the minimum value for m13

Definition at line 353 of file LauKinematics.hh.

◆ getm13Sq()

Double_t LauKinematics::getm13Sq ( ) const
inline

Get the m13 invariant mass square.

Returns
the m13 invariant mass square

Definition at line 251 of file LauKinematics.hh.

◆ getm13SqMax()

Double_t LauKinematics::getm13SqMax ( ) const
inline

Get the m13Sq maximum, (mParent - m2)^2.

Returns
the maximum value for m13Sq

Definition at line 407 of file LauKinematics.hh.

◆ getm13SqMin()

Double_t LauKinematics::getm13SqMin ( ) const
inline

Get the m13Sq minimum, (m1 + m3)^2.

Returns
the minimum value for m13Sq

Definition at line 389 of file LauKinematics.hh.

◆ getm2()

Double_t LauKinematics::getm2 ( ) const
inline

Get the m2 mass.

Returns
the m2 mass

Definition at line 335 of file LauKinematics.hh.

◆ getm23()

Double_t LauKinematics::getm23 ( ) const
inline

Get the m23 invariant mass.

Returns
the m23 invariant mass

Definition at line 227 of file LauKinematics.hh.

◆ getm23Max()

Double_t LauKinematics::getm23Max ( ) const
inline

Get the m23 maximum defined as (mParent - m1)

Returns
the maximum value for m23

Definition at line 365 of file LauKinematics.hh.

◆ getm23Min()

Double_t LauKinematics::getm23Min ( ) const
inline

Get the m23 minimum defined as (m2 + m3)

Returns
the minimum value for m23

Definition at line 347 of file LauKinematics.hh.

◆ getm23Sq()

Double_t LauKinematics::getm23Sq ( ) const
inline

Get the m23 invariant mass square.

Returns
the m23 invariant mass square

Definition at line 245 of file LauKinematics.hh.

◆ getm23SqMax()

Double_t LauKinematics::getm23SqMax ( ) const
inline

Get the m23Sq maximum, (mParent - m1)^2.

Returns
the maximum value for m23Sq

Definition at line 401 of file LauKinematics.hh.

◆ getm23SqMin()

Double_t LauKinematics::getm23SqMin ( ) const
inline

Get the m23Sq minimum, (m2 + m3)^2.

Returns
the minimum value for m23Sq

Definition at line 383 of file LauKinematics.hh.

◆ getm3()

Double_t LauKinematics::getm3 ( ) const
inline

Get the m3 mass.

Returns
the m3 mass

Definition at line 341 of file LauKinematics.hh.

◆ getmParent()

Double_t LauKinematics::getmParent ( ) const
inline

Get parent mass.

Returns
parent mass

Definition at line 293 of file LauKinematics.hh.

◆ getmParentSq()

Double_t LauKinematics::getmParentSq ( ) const
inline

Get parent mass squared.

Returns
parent mass squared

Definition at line 299 of file LauKinematics.hh.

◆ getmPrime()

Double_t LauKinematics::getmPrime ( ) const
inline

Get m' value.

Returns
m' value

Definition at line 281 of file LauKinematics.hh.

◆ getp1_12()

Double_t LauKinematics::getp1_12 ( ) const
inline

Get the momentum of the track 1 in 12 rest frame.

Returns
the momentum of track 1 in 12 rest frame

Definition at line 419 of file LauKinematics.hh.

◆ getp1_13()

Double_t LauKinematics::getp1_13 ( ) const
inline

Get the momentum of the track 1 in 13 rest frame.

Returns
the momentum of track 1 in 13 rest frame

Definition at line 443 of file LauKinematics.hh.

◆ getp1_23()

Double_t LauKinematics::getp1_23 ( ) const
inline

Get the momentum of the track 1 in 23 rest frame.

Returns
the momentum of track 1 in 23 rest frame

Definition at line 437 of file LauKinematics.hh.

◆ getp1_Parent()

Double_t LauKinematics::getp1_Parent ( ) const
inline

Get the momentum of the track 1 in parent rest frame.

Returns
the momentum of track 1 in parent rest frame

Definition at line 455 of file LauKinematics.hh.

◆ getp2_13()

Double_t LauKinematics::getp2_13 ( ) const
inline

Get the momentum of the track 2 in 13 rest frame.

Returns
the momentum of track 2 in 13 rest frame

Definition at line 449 of file LauKinematics.hh.

◆ getp2_23()

Double_t LauKinematics::getp2_23 ( ) const
inline

Get the momentum of the track 2 in 23 rest frame.

Returns
the momentum of track 2 in 23 rest frame

Definition at line 431 of file LauKinematics.hh.

◆ getp2_Parent()

Double_t LauKinematics::getp2_Parent ( ) const
inline

Get the momentum of the track 2 in parent rest frame.

Returns
the momentum of track 2 in parent rest frame

Definition at line 461 of file LauKinematics.hh.

◆ getp3_12()

Double_t LauKinematics::getp3_12 ( ) const
inline

Get the momentum of the track 3 in 12 rest frame.

Returns
the momentum of track 3 in 12 rest frame

Definition at line 425 of file LauKinematics.hh.

◆ getp3_Parent()

Double_t LauKinematics::getp3_Parent ( ) const
inline

Get the momentum of the track 3 in parent rest frame.

Returns
the momentum of track 3 in parent rest frame

Definition at line 467 of file LauKinematics.hh.

◆ getThetaPrime()

Double_t LauKinematics::getThetaPrime ( ) const
inline

Get theta' value.

Returns
theta' value

Definition at line 287 of file LauKinematics.hh.

◆ gotFullySymmetricDP()

Bool_t LauKinematics::gotFullySymmetricDP ( ) const
inline

Is the DP fully symmetric?

Returns
kTRUE if the DP is fully symmetric (i.e. daughters 1, 2 and 3 are identical), kFALSE otherwise

Definition at line 91 of file LauKinematics.hh.

◆ gotSymmetricalDP()

Bool_t LauKinematics::gotSymmetricalDP ( ) const
inline

Is the DP symmetric?

Returns
kTRUE if the DP is symmetric (i.e. daughters 1 and 2 are identical), kFALSE otherwise

Definition at line 85 of file LauKinematics.hh.

◆ mFromC()

Double_t LauKinematics::mFromC ( const Double_t  mijSq,
const Double_t  cij,
const Double_t  mij,
const Int_t  i,
const Int_t  j,
const Int_t  k 
) const
protected

General method to calculate mikSq given mijSq and cosHel_ij.

Parameters
[in]mijSqthe mij invariant mass square
[in]cijthe helicity angle for the pair which is made from tracks i and j
[in]mijthe mij invariant mass
[in]ithe index for the first track
[in]jthe index for the second track
[in]kthe index for the third track
Returns
the invariant mass square mikSq

Definition at line 357 of file LauKinematics.cc.

◆ pCalc()

Double_t LauKinematics::pCalc ( const Double_t  energy,
const Double_t  massSq 
) const
protected

General method to calculate the momentum of a particle, given its energy and invariant mass squared.

Parameters
[in]energythe energy of the particle
[in]massSqthe invariant mass squared of the particle
Returns
the momentum of the particle

Definition at line 549 of file LauKinematics.cc.

◆ rotateAndUpdateKinematics()

void LauKinematics::rotateAndUpdateKinematics ( )

Cyclically rotates the DP variables (m12 -> m23, m23 -> m13, m13 -> m12) and recalculates all kinematic quantities.

Useful in the case of a fully symmetric Dalitz plot, i.e. when all three final state particles are identical

Definition at line 574 of file LauKinematics.cc.

◆ squareDP() [1/2]

Bool_t LauKinematics::squareDP ( ) const
inline

Are the square Dalitz plot co-ordinates being calculated?

Returns
kTRUE if the square Dalitz plot co-ordinates are being calculated, kFALSE otherwise

Definition at line 79 of file LauKinematics.hh.

◆ squareDP() [2/2]

void LauKinematics::squareDP ( const Bool_t  calcSquareDPCoords)
inline

Enable/disable the calculation of square Dalitz plot co-ordinates.

Parameters
[in]calcSquareDPCoordskTRUE/kFALSE to enable/disable calculation of the square DP co-ordinates

Definition at line 73 of file LauKinematics.hh.

◆ updateKinematics()

void LauKinematics::updateKinematics ( const Double_t  m13Sq,
const Double_t  m23Sq 
)

Update all kinematic quantities based on the DP co-ordinates m13Sq and m23Sq.

It can be useful to first check that the point is within the kinematic boundary (using LauKinematics::withinDPLimits) before calling this method.

Parameters
[in]m13Sqthe invariant mass squared of daughters 1 and 3
[in]m23Sqthe invariant mass squared of daughters 2 and 3

Definition at line 128 of file LauKinematics.cc.

◆ updateKinematicsFrom12()

void LauKinematics::updateKinematicsFrom12 ( const Double_t  m12,
const Double_t  c12 
)

Update all kinematic quantities based on m12 and cos(theta12)

Parameters
[in]m12the invariant mass of daughters 1 and 2
[in]c12the cosine of the helicity angle theta12,
See also
getc12

Definition at line 661 of file LauKinematics.cc.

◆ updateKinematicsFrom13()

void LauKinematics::updateKinematicsFrom13 ( const Double_t  m13,
const Double_t  c13 
)

Update all kinematic quantities based on m13 and cos(theta13)

Parameters
[in]m13the invariant mass of daughters 1 and 3
[in]c13the cosine of the helicity angle theta13,
See also
getc13

Definition at line 644 of file LauKinematics.cc.

◆ updateKinematicsFrom23()

void LauKinematics::updateKinematicsFrom23 ( const Double_t  m23,
const Double_t  c23 
)

Update all kinematic quantities based on m23 and cos(theta23)

Parameters
[in]m23the invariant mass of daughters 2 and 3
[in]c23the cosine of the helicity angle theta23,
See also
getc23

Definition at line 627 of file LauKinematics.cc.

◆ updateMassSq_m12()

void LauKinematics::updateMassSq_m12 ( const Double_t  m12,
const Double_t  c12 
)
protected

Update the variables m23Sq_ and m13Sq_ given the invariant mass m12 and the cosine of the helicity angle c12.

Parameters
[in]m12the invariant mass m12
[in]c12the cosine of the helicity angle c12

Definition at line 613 of file LauKinematics.cc.

◆ updateMassSq_m13()

void LauKinematics::updateMassSq_m13 ( const Double_t  m13,
const Double_t  c13 
)
protected

Update the variables m12Sq_ and m23Sq_ given the invariant mass m13 and the cosine of the helicity angle c13.

Parameters
[in]m13the invariant mass m13
[in]c13the cosine of the helicity angle c13

Definition at line 598 of file LauKinematics.cc.

◆ updateMassSq_m23()

void LauKinematics::updateMassSq_m23 ( const Double_t  m23,
const Double_t  c23 
)
protected

Update the variables m12Sq_ and m13Sq_ given the invariant mass m23 and the cosine of the helicity angle c23.

Parameters
[in]m23the invariant mass m12
[in]c23the cosine of the helicity angle c23

Definition at line 583 of file LauKinematics.cc.

◆ updateMassSquares()

void LauKinematics::updateMassSquares ( const Double_t  m13Sq,
const Double_t  m23Sq 
)
protected

Update some kinematic quantities based on the DP co-ordinates m13Sq and m23Sq.

Only the three invariant masses and their squares, plus the parent rest-frame momenta are updated.

Parameters
[in]m13Sqthe invariant mass squared of daughters 1 and 3
[in]m23Sqthe invariant mass squared of daughters 2 and 3

Definition at line 198 of file LauKinematics.cc.

◆ updateSqDPKinematics()

void LauKinematics::updateSqDPKinematics ( const Double_t  mPrime,
const Double_t  thetaPrime 
)

Update all kinematic quantities based on the square DP co-ordinates m' and theta'.

It can be useful to first check that the point is within the kinematic boundary (using LauKinematics::withinSqDPLimits) before calling this method.

Parameters
[in]mPrimethe m' co-ordinate
[in]thetaPrimethe theta' co-ordinate

Definition at line 147 of file LauKinematics.cc.

◆ updateSqDPMassSquares()

void LauKinematics::updateSqDPMassSquares ( const Double_t  mPrime,
const Double_t  thetaPrime 
)
protected

Update some kinematic quantities based on the square DP co-ordinates m' and theta'.

Only m', theta', the three invariant masses and their squares, plus the parent rest-frame momenta are updated.

Parameters
[in]mPrimethe m' co-ordinate
[in]thetaPrimethe theta' co-ordinate

Definition at line 221 of file LauKinematics.cc.

◆ withinDPLimits()

Bool_t LauKinematics::withinDPLimits ( const Double_t  m13Sq,
const Double_t  m23Sq 
) const

Check whether a given (m13Sq,m23Sq) point is within the kinematic limits of the Dalitz plot.

This method first checks that m13Sq is within its absolute min and max and then for the given m13Sq calculates the local min and max of m23Sq and checks whether the given m23Sq satisfies these bounds.

Parameters
[in]m13Sqthe invariant mass squared of daughters 1 and 3
[in]m23Sqthe invariant mass squared of daughters 2 and 3
Returns
kTRUE if the event is inside the kinematic limit, kFALSE otherwise

Definition at line 439 of file LauKinematics.cc.

◆ withinDPLimits2()

Bool_t LauKinematics::withinDPLimits2 ( const Double_t  m13Sq,
const Double_t  m23Sq 
) const

Check whether a given (m13Sq,m23Sq) point is within the kinematic limits of the Dalitz plot (alternate method)

This method first checks that m23Sq is within its absolute min and max and then for the given m23Sq calculates the local min and max of m13Sq and checks whether the given m13Sq satisfies these bounds.

Parameters
[in]m13Sqthe m13 invariant mass pair squared
[in]m23Sqthe m23 invariant mass pair squared
Returns
kTRUE if the event is inside the kinematic limit, kFALSE otherwise

Definition at line 477 of file LauKinematics.cc.

◆ withinSqDPLimits()

Bool_t LauKinematics::withinSqDPLimits ( const Double_t  mPrime,
const Double_t  thetaPrime 
) const

Check whether a given (m',theta') point is within the kinematic limits of the Dalitz plot.

Parameters
[in]mPrimethe m' co-ordinate
[in]thetaPrimethe theta' co-ordinate
Returns
kTRUE if the event is inside the kinematic limit, kFALSE otherwise

Definition at line 511 of file LauKinematics.cc.


The documentation for this class was generated from the following files: