laura is hosted by Hepforge, IPPP Durham
Laura++  v3r5
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. More...
 
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. More...
 
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. More...
 
void calcHelicities ()
 Calculate cosines of the helicity angles, momenta of daughters and bachelor in various ij rest frames. More...
 
void calcSqDPVars ()
 Calculate the m' and theta' variables for the square Dalitz plot. More...
 
void calcParentFrameMomenta ()
 Calculate the momenta of each daughter in the parent rest frame. More...
 

Private Member Functions

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

Private Attributes

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

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 ( 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 42 of file LauKinematics.cc.

LauKinematics::~LauKinematics ( )
virtual

Destructor.

Definition at line 95 of file LauKinematics.cc.

LauKinematics::LauKinematics ( const LauKinematics rhs)
private

Copy constructor (not implemented)

Member Function Documentation

void LauKinematics::calcHelicities ( )
protected

Calculate cosines of the helicity angles, momenta of daughters and bachelor in various ij rest frames.

Definition at line 240 of file LauKinematics.cc.

void LauKinematics::calcm12Sq ( )
protected

Calculate m12Sq from m13Sq and m23Sq.

Definition at line 210 of file LauKinematics.cc.

void LauKinematics::calcParentFrameMomenta ( )
protected

Calculate the momenta of each daughter in the parent rest frame.

Definition at line 229 of file LauKinematics.cc.

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 148 of file LauKinematics.cc.

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 143 of file LauKinematics.cc.

void LauKinematics::calcSqDPVars ( )
protected

Calculate the m' and theta' variables for the square Dalitz plot.

Definition at line 126 of file LauKinematics.cc.

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 464 of file LauKinematics.cc.

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 269 of file LauKinematics.cc.

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 470 of file LauKinematics.cc.

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 475 of file LauKinematics.cc.

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 628 of file LauKinematics.cc.

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 508 of file LauKinematics.cc.

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 353 of file LauKinematics.cc.

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 373 of file LauKinematics.cc.

Double_t LauKinematics::genm12Sq ( ) const
protected

Randomly generate the invariant mass squared m12Sq.

Returns
the invariant mass squared m12Sq

Definition at line 621 of file LauKinematics.cc.

Double_t LauKinematics::genm13Sq ( ) const
protected

Randomly generate the invariant mass squared m13Sq.

Returns
the invariant mass squared m13Sq

Definition at line 609 of file LauKinematics.cc.

Double_t LauKinematics::genm23Sq ( ) const
protected

Randomly generate the invariant mass squared m23Sq.

Returns
the invariant mass squared m23Sq

Definition at line 615 of file LauKinematics.cc.

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 249 of file LauKinematics.hh.

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 261 of file LauKinematics.hh.

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 255 of file LauKinematics.hh.

Double_t LauKinematics::getcov12 ( ) const
inline

Get covariant factor in 12 axis.

Returns
covariant factor in 12 axis

Definition at line 444 of file LauKinematics.hh.

Double_t LauKinematics::getcov13 ( ) const
inline

Get covariant factor in 13 axis.

Returns
covariant factor in 13 axis

Definition at line 450 of file LauKinematics.hh.

Double_t LauKinematics::getcov23 ( ) const
inline

Get covariant factor in 23 axis.

Returns
covariant factor in 23 axis

Definition at line 456 of file LauKinematics.hh.

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 292 of file LauKinematics.hh.

Double_t LauKinematics::getm1 ( ) const
inline

Get the m1 mass.

Returns
the m1 mass

Definition at line 310 of file LauKinematics.hh.

Double_t LauKinematics::getm12 ( ) const
inline

Get the m12 invariant mass.

Returns
the m12 invariant mass

Definition at line 216 of file LauKinematics.hh.

Double_t LauKinematics::getm12Max ( ) const
inline

Get the m12 maximum defined as (mParent - m3)

Returns
the maximum value for m12

Definition at line 352 of file LauKinematics.hh.

Double_t LauKinematics::getm12Min ( ) const
inline

Get the m12 minimum defined as (m1 + m2)

Returns
the minimum value for m12

Definition at line 336 of file LauKinematics.hh.

Double_t LauKinematics::getm12Sq ( ) const
inline

Get the m12 invariant mass square.

Returns
the m12 invariant mass square

Definition at line 232 of file LauKinematics.hh.

Double_t LauKinematics::getm12SqMax ( ) const
inline

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

Returns
the maximum value for m12Sq

Definition at line 384 of file LauKinematics.hh.

Double_t LauKinematics::getm12SqMin ( ) const
inline

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

Returns
the minimum value for m12Sq

Definition at line 368 of file LauKinematics.hh.

Double_t LauKinematics::getm13 ( ) const
inline

Get the m13 invariant mass.

Returns
the m13 invariant mass

Definition at line 226 of file LauKinematics.hh.

Double_t LauKinematics::getm13Max ( ) const
inline

Get the m13 maximum defined as (mParent - m2)

Returns
the maximum value for m13

Definition at line 347 of file LauKinematics.hh.

Double_t LauKinematics::getm13Min ( ) const
inline

Get the m13 minimum defined as (m1 + m3)

Returns
the minimum value for m13

Definition at line 331 of file LauKinematics.hh.

Double_t LauKinematics::getm13Sq ( ) const
inline

Get the m13 invariant mass square.

Returns
the m13 invariant mass square

Definition at line 242 of file LauKinematics.hh.

Double_t LauKinematics::getm13SqMax ( ) const
inline

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

Returns
the maximum value for m13Sq

Definition at line 379 of file LauKinematics.hh.

Double_t LauKinematics::getm13SqMin ( ) const
inline

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

Returns
the minimum value for m13Sq

Definition at line 363 of file LauKinematics.hh.

Double_t LauKinematics::getm2 ( ) const
inline

Get the m2 mass.

Returns
the m2 mass

Definition at line 315 of file LauKinematics.hh.

Double_t LauKinematics::getm23 ( ) const
inline

Get the m23 invariant mass.

Returns
the m23 invariant mass

Definition at line 221 of file LauKinematics.hh.

Double_t LauKinematics::getm23Max ( ) const
inline

Get the m23 maximum defined as (mParent - m1)

Returns
the maximum value for m23

Definition at line 342 of file LauKinematics.hh.

Double_t LauKinematics::getm23Min ( ) const
inline

Get the m23 minimum defined as (m2 + m3)

Returns
the minimum value for m23

Definition at line 326 of file LauKinematics.hh.

Double_t LauKinematics::getm23Sq ( ) const
inline

Get the m23 invariant mass square.

Returns
the m23 invariant mass square

Definition at line 237 of file LauKinematics.hh.

Double_t LauKinematics::getm23SqMax ( ) const
inline

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

Returns
the maximum value for m23Sq

Definition at line 374 of file LauKinematics.hh.

Double_t LauKinematics::getm23SqMin ( ) const
inline

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

Returns
the minimum value for m23Sq

Definition at line 358 of file LauKinematics.hh.

Double_t LauKinematics::getm3 ( ) const
inline

Get the m3 mass.

Returns
the m3 mass

Definition at line 320 of file LauKinematics.hh.

Double_t LauKinematics::getmParent ( ) const
inline

Get parent mass.

Returns
parent mass

Definition at line 278 of file LauKinematics.hh.

Double_t LauKinematics::getmParentSq ( ) const
inline

Get parent mass squared.

Returns
parent mass squared

Definition at line 283 of file LauKinematics.hh.

Double_t LauKinematics::getmPrime ( ) const
inline

Get m' value.

Returns
m' value

Definition at line 267 of file LauKinematics.hh.

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 390 of file LauKinematics.hh.

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 410 of file LauKinematics.hh.

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 405 of file LauKinematics.hh.

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 421 of file LauKinematics.hh.

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 415 of file LauKinematics.hh.

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 400 of file LauKinematics.hh.

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 426 of file LauKinematics.hh.

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 395 of file LauKinematics.hh.

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 431 of file LauKinematics.hh.

Double_t LauKinematics::getThetaPrime ( ) const
inline

Get theta' value.

Returns
theta' value

Definition at line 272 of file LauKinematics.hh.

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 86 of file LauKinematics.hh.

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 80 of file LauKinematics.hh.

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 310 of file LauKinematics.cc.

LauKinematics& LauKinematics::operator= ( const LauKinematics rhs)
private

Copy assignment operator (not implemented)

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 491 of file LauKinematics.cc.

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 517 of file LauKinematics.cc.

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 68 of file LauKinematics.hh.

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 74 of file LauKinematics.hh.

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 100 of file LauKinematics.cc.

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 594 of file LauKinematics.cc.

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 579 of file LauKinematics.cc.

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 564 of file LauKinematics.cc.

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 552 of file LauKinematics.cc.

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 539 of file LauKinematics.cc.

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 526 of file LauKinematics.cc.

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 169 of file LauKinematics.cc.

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 117 of file LauKinematics.cc.

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 192 of file LauKinematics.cc.

void LauKinematics::warningMessages ( const Bool_t  boolean)
inline

Enable/disable warning messages.

Definition at line 89 of file LauKinematics.hh.

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 380 of file LauKinematics.cc.

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 418 of file LauKinematics.cc.

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 452 of file LauKinematics.cc.

Member Data Documentation

Double_t LauKinematics::c12_
private

Cosine of the helicity angle theta12, which is defined as the angle between 1&3 in the rest frame of 1&2.

Definition at line 628 of file LauKinematics.hh.

Double_t LauKinematics::c13_
private

Cosine of the helicity angle theta13, which is defined as the angle between 1&2 in the rest frame of 1&3.

Definition at line 632 of file LauKinematics.hh.

Double_t LauKinematics::c23_
private

Cosine of the helicity angle theta23, which is defined as the angle between 1&2 in the rest frame of 2&3.

Definition at line 630 of file LauKinematics.hh.

const Bool_t LauKinematics::fullySymmetricDP_
private

Fully-symmetrical DP.

Definition at line 568 of file LauKinematics.hh.

Double_t LauKinematics::m12_
private

Invariant mass m12.

Definition at line 614 of file LauKinematics.hh.

Double_t LauKinematics::m12Sq_
private

Invariant mass m12 squared.

Definition at line 621 of file LauKinematics.hh.

Double_t LauKinematics::m13_
private

Invariant mass m13.

Definition at line 618 of file LauKinematics.hh.

Double_t LauKinematics::m13Sq_
private

Invariant mass m13 squared.

Definition at line 625 of file LauKinematics.hh.

const Double_t LauKinematics::m1_
private

Mass of particle 1.

Definition at line 571 of file LauKinematics.hh.

const Double_t LauKinematics::m1Sq_
private

Mass of particle 1 squared.

Definition at line 580 of file LauKinematics.hh.

Double_t LauKinematics::m23_
private

Invariant mass m23.

Definition at line 616 of file LauKinematics.hh.

Double_t LauKinematics::m23Sq_
private

Invariant mass m23 squared.

Definition at line 623 of file LauKinematics.hh.

const Double_t LauKinematics::m2_
private

Mass of particle 2.

Definition at line 573 of file LauKinematics.hh.

const Double_t LauKinematics::m2Sq_
private

Mass of particle 2 squared.

Definition at line 582 of file LauKinematics.hh.

const Double_t LauKinematics::m3_
private

Mass of particle 3.

Definition at line 575 of file LauKinematics.hh.

const Double_t LauKinematics::m3Sq_
private

Mass of particle 3 squared.

Definition at line 584 of file LauKinematics.hh.

std::vector<Double_t> LauKinematics::mass_
private

Vector of daughter particles masses.

Definition at line 589 of file LauKinematics.hh.

const Double_t LauKinematics::massInt_
private

Mass difference between the parent particle and the sum of the daughter particles.

Definition at line 609 of file LauKinematics.hh.

std::vector<Double_t> LauKinematics::mDiff_
private

Vector of the difference between the mMax and mMin.

Definition at line 595 of file LauKinematics.hh.

const Double_t LauKinematics::mDTot_
private

Sum of the daughter masses.

Definition at line 607 of file LauKinematics.hh.

std::vector<Double_t> LauKinematics::mMax_
private

Vector of the maximum mij values.

Definition at line 593 of file LauKinematics.hh.

std::vector<Double_t> LauKinematics::mMin_
private

Vector of the minimum mij values.

Definition at line 591 of file LauKinematics.hh.

const Double_t LauKinematics::mParent_
private

Mass of parent particle.

Definition at line 577 of file LauKinematics.hh.

const Double_t LauKinematics::mParentSq_
private

Mass of parent particle squared.

Definition at line 586 of file LauKinematics.hh.

Double_t LauKinematics::mPrime_
private

m' co-ordinate

Definition at line 635 of file LauKinematics.hh.

std::vector<Double_t> LauKinematics::mSq_
private

Vector of daughter particles masses squared.

Definition at line 598 of file LauKinematics.hh.

std::vector<Double_t> LauKinematics::mSqDiff_
private

Vector of the difference between the mSqMax and mSqMin.

Definition at line 604 of file LauKinematics.hh.

const Double_t LauKinematics::mSqDTot_
private

Sum of the squares of the daughter masses.

Definition at line 611 of file LauKinematics.hh.

std::vector<Double_t> LauKinematics::mSqMax_
private

Vector of the maximum mijSq values.

Definition at line 602 of file LauKinematics.hh.

std::vector<Double_t> LauKinematics::mSqMin_
private

Vector of the minimum mijSq values.

Definition at line 600 of file LauKinematics.hh.

Double_t LauKinematics::p1_12_
private

Momentum of track 1 in 1-2 rest frame.

Definition at line 645 of file LauKinematics.hh.

Double_t LauKinematics::p1_13_
private

Momentum of track 1 in 1-3 rest frame.

Definition at line 653 of file LauKinematics.hh.

Double_t LauKinematics::p1_23_
private

Momentum of track 1 in 2-3 rest frame.

Definition at line 651 of file LauKinematics.hh.

Double_t LauKinematics::p1_Parent_
private

Momentum of track 1 in parent rest frame.

Definition at line 658 of file LauKinematics.hh.

Double_t LauKinematics::p2_13_
private

Momentum of track 2 in 1-3 rest frame.

Definition at line 655 of file LauKinematics.hh.

Double_t LauKinematics::p2_23_
private

Momentum of track 2 in 2-3 rest frame.

Definition at line 649 of file LauKinematics.hh.

Double_t LauKinematics::p2_Parent_
private

Momentum of track 2 in parent rest frame.

Definition at line 660 of file LauKinematics.hh.

Double_t LauKinematics::p3_12_
private

Momentum of track 3 in 1-2 rest frame.

Definition at line 647 of file LauKinematics.hh.

Double_t LauKinematics::p3_Parent_
private

Momentum of track 3 in parent rest frame.

Definition at line 662 of file LauKinematics.hh.

Double_t LauKinematics::qi_
mutableprivate

Momentum q of particle i.

Definition at line 640 of file LauKinematics.hh.

Double_t LauKinematics::qk_
mutableprivate

Momentum q of particle k.

Definition at line 642 of file LauKinematics.hh.

Bool_t LauKinematics::squareDP_
private

Should we calculate the square DP co-ordinates or not?

Definition at line 665 of file LauKinematics.hh.

const Bool_t LauKinematics::symmetricalDP_
private

Symmetrical DP.

Definition at line 566 of file LauKinematics.hh.

Double_t LauKinematics::thetaPrime_
private

theta' co-ordinate

Definition at line 637 of file LauKinematics.hh.

Bool_t LauKinematics::warnings_
private

Enable/disable warning messages.

Definition at line 667 of file LauKinematics.hh.


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