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

Class for defining a K-matrix propagator. More...

#include <LauKMatrixPropagator.hh>

Public Member Functions

 LauKMatrixPropagator (const TString &name, const TString &paramFileName, Int_t resPairAmpInt, Int_t nChannels, Int_t nPoles, Int_t rowIndex=1)
 Constructor. More...
 
virtual ~LauKMatrixPropagator ()
 Destructor. More...
 
void updatePropagator (const LauKinematics *kinematics)
 Calculate the invariant mass squared s. More...
 
void updatePropagator (Double_t s)
 Calculate the K-matrix propagator for the given s value. More...
 
void setParameters (const TString &inputFile)
 Read an input file to set parameters. More...
 
Double_t getRealPropTerm (Int_t channelIndex) const
 Get the real part of the term of the propagator. More...
 
Double_t getImagPropTerm (Int_t channelIndex) const
 Get the imaginary part of the term of the propagator. More...
 
Double_t getPoleDenomTerm (Int_t poleIndex) const
 Get the 1/(m_pole^2 -s) terms for the scattering and production K-matrix formulae. More...
 
Double_t getCouplingConstant (Int_t poleIndex, Int_t channelIndex) const
 Get coupling constants that were loaded from the input file. More...
 
Double_t getProdSVPTerm () const
 Get the "slowly-varying part" term of the amplitude. More...
 
LauComplex getPropTerm (Int_t channelIndex) const
 Get the full complex propagator term for a given channel. More...
 
Int_t getResPairAmpInt () const
 Get the DP axis identifier. More...
 
Int_t getNChannels () const
 Get the number of channels. More...
 
Int_t getNPoles () const
 Get the number of poles. More...
 
TString getName () const
 Get the propagator name. More...
 

Protected Member Functions

void calcScattKMatrix (Double_t s)
 Calculate the scattering K-matrix for the given value of s. More...
 
void calcRhoMatrix (Double_t s)
 Calculate the real and imaginary part of the phase space density diagonal matrix. More...
 
void calcPoleDenomVect (Double_t s)
 Calulate the term 1/(m_pole^2 - s) for the scattering and production K-matrix formulae. More...
 
LauComplex calcPiPiRho (Double_t s) const
 Calculate the pipi phase space factor. More...
 
LauComplex calcKKRho (Double_t s) const
 Calculate the KK phase space factor. More...
 
LauComplex calcFourPiRho (Double_t s) const
 Calculate the 4 pi phase space factor. More...
 
LauComplex calcEtaEtaRho (Double_t s) const
 Calculate the eta-eta phase space factor. More...
 
LauComplex calcEtaEtaPRho (Double_t s) const
 Calculate the eta-eta' phase space factor. More...
 
LauComplex calcKPiRho (Double_t s) const
 Calculate the Kpi phase space factor. More...
 
LauComplex calcKEtaPRho (Double_t s) const
 Calculate the K-eta' phase space factor. More...
 
LauComplex calcKThreePiRho (Double_t s) const
 Calculate the Kpipipi phase space factor. More...
 
Double_t calcSVPTerm (Double_t s, Double_t s0) const
 Calculate the "slow-varying part". More...
 
void updateScattSVPTerm (Double_t s)
 Update the scattering "slowly-varying part". More...
 
void updateProdSVPTerm (Double_t s)
 Update the production "slowly-varying part". More...
 
void updateAdlerZeroFactor (Double_t s)
 Calculate the multiplicative factor containing severa Adler zero constants. More...
 
Bool_t checkPhaseSpaceType (Int_t phaseSpaceInt) const
 Check the phase space factors that need to be used. More...
 

Private Types

enum  KMatrixChannels {
  Zero, PiPi, KK, FourPi,
  EtaEta, EtaEtaP, KPi, KEtaP,
  KThreePi, TotChannels
}
 Integers to specify the allowed channels for the phase space calculations. More...
 
typedef std::map< int,
std::vector< LauParameter > > 
KMatrixParamMap
 Create a map for the K-matrix parameters. More...
 

Private Attributes

TString name_
 String to store the propagator name. More...
 
TString paramFileName_
 Name of the input parameter file. More...
 
Int_t resPairAmpInt_
 Number to identify the DP axis in question. More...
 
Int_t index_
 Row index - 1. More...
 
Double_t previousS_
 s value of the previous pole More...
 
Double_t scattSVP_
 "slowly-varying part" for the scattering K-matrix More...
 
Double_t prodSVP_
 "slowly-varying part" for the production K-matrix More...
 
TMatrixD realProp_
 Real part of the propagator matrix. More...
 
TMatrixD negImagProp_
 Imaginary part of the propagator matrix. More...
 
TMatrixD ScattKMatrix_
 Scattering K-matrix. More...
 
TMatrixD ReRhoMatrix_
 Real part of the pahse space density diagonal matrix. More...
 
TMatrixD ImRhoMatrix_
 Imaginary part of the pahse space density diagonal matrix. More...
 
TMatrixD IMatrix_
 Identity matrix. More...
 
TMatrixD zeroMatrix_
 Null matrix. More...
 
Int_t nChannels_
 Number of channels. More...
 
Int_t nPoles_
 Number of poles. More...
 
std::vector< LauParametermSqPoles_
 Vector of squared pole masses. More...
 
KMatrixParamMap gCouplings_
 Map of coupling constants. More...
 
KMatrixParamMap fScattering_
 Map of scattering SVP values. More...
 
std::vector< Int_t > phaseSpaceTypes_
 Vector of phase space types. More...
 
std::vector< Double_t > mSumSq_
 Vector of squared masses. More...
 
std::vector< Double_t > mDiffSq_
 Vector of mass differences. More...
 
std::vector< Double_t > poleDenomVect_
 Vector of 1/(m_pole^2 - s) terms for scattering and production K-matrix formulae. More...
 
LauParameter mSq0_
 Constant from input file. More...
 
LauParameter s0Scatt_
 Constant from input file. More...
 
LauParameter s0Prod_
 Constant from input file. More...
 
LauParameter sA_
 Constant from input file. More...
 
LauParameter sA0_
 Constant from input file. More...
 
Double_t sAConst_
 Defined as 0.5*sA*mPi*mPi. More...
 
Double_t m2piSq_
 Defined as 4*mPi*mPi. More...
 
Double_t m2KSq_
 Defined as 4*mK*mK. More...
 
Double_t m2EtaSq_
 Defined as 4*mEta*mEta. More...
 
Double_t mEtaEtaPSumSq_
 Defined as (mEta+mEta')^2. More...
 
Double_t mEtaEtaPDiffSq_
 Defined as (mEta-mEta')^2. More...
 
Double_t mKpiSumSq_
 Defined as (mK+mPi)^2. More...
 
Double_t mKpiDiffSq_
 Defined as (mK-mPi)^2. More...
 
Double_t mKEtaPSumSq_
 Defined as (mK+mEta')^2. More...
 
Double_t mKEtaPDiffSq_
 Defined as (mK-mEta')^2. More...
 
Double_t mK3piDiffSq_
 Defined as (mK-3*mPi)^2. More...
 
Double_t k3piFactor_
 Factor used to calculate the Kpipipi phase space term. More...
 
Double_t fourPiFactor1_
 Factor used to calculate the pipipipi phase space term. More...
 
Double_t fourPiFactor2_
 Factor used to calculate the pipipipi phase space term. More...
 
Double_t adlerZeroFactor_
 Multiplicative factor containing various Adler zero constants. More...
 
Bool_t parametersSet_
 Tracks if all params have been set. More...
 
Bool_t verbose_
 Control the output of the functions. More...
 

Detailed Description

Class for defining a K-matrix propagator.

Class used to define a K-matrix propagator. See the following papers for info: hep-ph/0204328, hep-ex/0312040, [hep-ex]0804.2089 and hep-ph/9705401.

Definition at line 36 of file LauKMatrixPropagator.hh.

Member Typedef Documentation

typedef std::map<int, std::vector<LauParameter> > LauKMatrixPropagator::KMatrixParamMap
private

Create a map for the K-matrix parameters.

Definition at line 249 of file LauKMatrixPropagator.hh.

Member Enumeration Documentation

Integers to specify the allowed channels for the phase space calculations.

Enumerator
Zero 
PiPi 
KK 
FourPi 
EtaEta 
EtaEtaP 
KPi 
KEtaP 
KThreePi 
TotChannels 

Definition at line 275 of file LauKMatrixPropagator.hh.

Constructor & Destructor Documentation

LauKMatrixPropagator::LauKMatrixPropagator ( const TString &  name,
const TString &  paramFileName,
Int_t  resPairAmpInt,
Int_t  nChannels,
Int_t  nPoles,
Int_t  rowIndex = 1 
)

Constructor.

Parameters
[in]namename of the propagator
[in]paramFileNamethe parameter file name
[in]resPairAmpIntthe number of the daughter not produced by the resonance
[in]nChannelsthe number of channels
[in]nPolesthe number of poles
[in]rowIndexthis specifies which row of the propagator should be used when summing over the amplitude channels

Definition at line 32 of file LauKMatrixPropagator.cc.

LauKMatrixPropagator::~LauKMatrixPropagator ( )
virtual

Destructor.

Definition at line 67 of file LauKMatrixPropagator.cc.

Member Function Documentation

LauComplex LauKMatrixPropagator::calcEtaEtaPRho ( Double_t  s) const
protected

Calculate the eta-eta' phase space factor.

Parameters
[in]sthe invariant mass squared
Returns
the complex phase space factor

Definition at line 655 of file LauKMatrixPropagator.cc.

LauComplex LauKMatrixPropagator::calcEtaEtaRho ( Double_t  s) const
protected

Calculate the eta-eta phase space factor.

Parameters
[in]sthe invariant mass squared
Returns
the complex phase space factor

Definition at line 639 of file LauKMatrixPropagator.cc.

LauComplex LauKMatrixPropagator::calcFourPiRho ( Double_t  s) const
protected

Calculate the 4 pi phase space factor.

Parameters
[in]sthe invariant mass squared
Returns
the complex phase space factor

Definition at line 620 of file LauKMatrixPropagator.cc.

LauComplex LauKMatrixPropagator::calcKEtaPRho ( Double_t  s) const
protected

Calculate the K-eta' phase space factor.

Parameters
[in]sthe invariant mass squared
Returns
the complex phase space factor

Definition at line 692 of file LauKMatrixPropagator.cc.

LauComplex LauKMatrixPropagator::calcKKRho ( Double_t  s) const
protected

Calculate the KK phase space factor.

Parameters
[in]sthe invariant mass squared
Returns
the complex phase space factor

Definition at line 604 of file LauKMatrixPropagator.cc.

LauComplex LauKMatrixPropagator::calcKPiRho ( Double_t  s) const
protected

Calculate the Kpi phase space factor.

Parameters
[in]sthe invariant mass squared
Returns
the complex phase space factor

Definition at line 674 of file LauKMatrixPropagator.cc.

LauComplex LauKMatrixPropagator::calcKThreePiRho ( Double_t  s) const
protected

Calculate the Kpipipi phase space factor.

Parameters
[in]sthe invariant mass squared
Returns
the complex phase space factor

Definition at line 710 of file LauKMatrixPropagator.cc.

LauComplex LauKMatrixPropagator::calcPiPiRho ( Double_t  s) const
protected

Calculate the pipi phase space factor.

Parameters
[in]sthe invariant mass squared
Returns
the complex phase space factor

Definition at line 588 of file LauKMatrixPropagator.cc.

void LauKMatrixPropagator::calcPoleDenomVect ( Double_t  s)
protected

Calulate the term 1/(m_pole^2 - s) for the scattering and production K-matrix formulae.

Parameters
[in]sthe invariant mass squared

Definition at line 452 of file LauKMatrixPropagator.cc.

void LauKMatrixPropagator::calcRhoMatrix ( Double_t  s)
protected

Calculate the real and imaginary part of the phase space density diagonal matrix.

Parameters
[in]sthe invariant mass squared

Definition at line 540 of file LauKMatrixPropagator.cc.

void LauKMatrixPropagator::calcScattKMatrix ( Double_t  s)
protected

Calculate the scattering K-matrix for the given value of s.

Parameters
[in]sthe invariant mass squared

Definition at line 382 of file LauKMatrixPropagator.cc.

Double_t LauKMatrixPropagator::calcSVPTerm ( Double_t  s,
Double_t  s0 
) const
protected

Calculate the "slow-varying part".

Parameters
[in]sthe invariant mass squared
[in]s0the invariant mass squared at the Adler zero
Returns
the SVP term

Definition at line 495 of file LauKMatrixPropagator.cc.

Bool_t LauKMatrixPropagator::checkPhaseSpaceType ( Int_t  phaseSpaceInt) const
protected

Check the phase space factors that need to be used.

Parameters
[in]phaseSpaceIntphase space types
Returns
true of false

Definition at line 735 of file LauKMatrixPropagator.cc.

Double_t LauKMatrixPropagator::getCouplingConstant ( Int_t  poleIndex,
Int_t  channelIndex 
) const

Get coupling constants that were loaded from the input file.

Parameters
[in]poleIndexnumber of the required pole
[in]channelIndexnumber of the required channel
Returns
the value of the coupling constant

Definition at line 481 of file LauKMatrixPropagator.cc.

Double_t LauKMatrixPropagator::getImagPropTerm ( Int_t  channelIndex) const

Get the imaginary part of the term of the propagator.

Parameters
[in]channelIndexthe channel number
Returns
the imaginiary part of the propagator term

Definition at line 97 of file LauKMatrixPropagator.cc.

TString LauKMatrixPropagator::getName ( ) const
inline

Get the propagator name.

/return the name of the propagator

Definition at line 137 of file LauKMatrixPropagator.hh.

Int_t LauKMatrixPropagator::getNChannels ( ) const
inline

Get the number of channels.

/return the number of channels

Definition at line 125 of file LauKMatrixPropagator.hh.

Int_t LauKMatrixPropagator::getNPoles ( ) const
inline

Get the number of poles.

/return the number of poles

Definition at line 131 of file LauKMatrixPropagator.hh.

Double_t LauKMatrixPropagator::getPoleDenomTerm ( Int_t  poleIndex) const

Get the 1/(m_pole^2 -s) terms for the scattering and production K-matrix formulae.

Parameters
[in]poleIndexthe number of the pole required
Returns
the value of 1/(m_pole^2 -s)

Definition at line 470 of file LauKMatrixPropagator.cc.

Double_t LauKMatrixPropagator::getProdSVPTerm ( ) const
inline

Get the "slowly-varying part" term of the amplitude.

Returns
the svp term

Definition at line 106 of file LauKMatrixPropagator.hh.

LauComplex LauKMatrixPropagator::getPropTerm ( Int_t  channelIndex) const

Get the full complex propagator term for a given channel.

Parameters
[in]channelIndexthe number of the required channel
Returns
the complex propagator term

Definition at line 74 of file LauKMatrixPropagator.cc.

Double_t LauKMatrixPropagator::getRealPropTerm ( Int_t  channelIndex) const

Get the real part of the term of the propagator.

Parameters
[in]channelIndexthe channel number
Returns
the real part of the propagator term

Definition at line 86 of file LauKMatrixPropagator.cc.

Int_t LauKMatrixPropagator::getResPairAmpInt ( ) const
inline

Get the DP axis identifier.

/return the value to identify the DP axis in question

Definition at line 119 of file LauKMatrixPropagator.hh.

void LauKMatrixPropagator::setParameters ( const TString &  inputFile)

Read an input file to set parameters.

Parameters
[in]inputFilename of the input file

Definition at line 203 of file LauKMatrixPropagator.cc.

void LauKMatrixPropagator::updateAdlerZeroFactor ( Double_t  s)
protected

Calculate the multiplicative factor containing severa Adler zero constants.

Parameters
[in]sthe invariant mass squared

Definition at line 525 of file LauKMatrixPropagator.cc.

void LauKMatrixPropagator::updateProdSVPTerm ( Double_t  s)
protected

Update the production "slowly-varying part".

Parameters
[in]sthe invariant mass squared

Definition at line 518 of file LauKMatrixPropagator.cc.

void LauKMatrixPropagator::updatePropagator ( const LauKinematics kinematics)

Calculate the invariant mass squared s.

Parameters
[in]kinematicsthe kinematics of the current event

Definition at line 108 of file LauKMatrixPropagator.cc.

void LauKMatrixPropagator::updatePropagator ( Double_t  s)

Calculate the K-matrix propagator for the given s value.

Parameters
[in]sthe invariant mass squared

Definition at line 132 of file LauKMatrixPropagator.cc.

void LauKMatrixPropagator::updateScattSVPTerm ( Double_t  s)
protected

Update the scattering "slowly-varying part".

Parameters
[in]sthe invariant mass squared

Definition at line 511 of file LauKMatrixPropagator.cc.

Member Data Documentation

Double_t LauKMatrixPropagator::adlerZeroFactor_
private

Multiplicative factor containing various Adler zero constants.

Definition at line 350 of file LauKMatrixPropagator.hh.

Double_t LauKMatrixPropagator::fourPiFactor1_
private

Factor used to calculate the pipipipi phase space term.

Definition at line 345 of file LauKMatrixPropagator.hh.

Double_t LauKMatrixPropagator::fourPiFactor2_
private

Factor used to calculate the pipipipi phase space term.

Definition at line 347 of file LauKMatrixPropagator.hh.

KMatrixParamMap LauKMatrixPropagator::fScattering_
private

Map of scattering SVP values.

Definition at line 299 of file LauKMatrixPropagator.hh.

KMatrixParamMap LauKMatrixPropagator::gCouplings_
private

Map of coupling constants.

Definition at line 297 of file LauKMatrixPropagator.hh.

TMatrixD LauKMatrixPropagator::IMatrix_
private

Identity matrix.

Definition at line 285 of file LauKMatrixPropagator.hh.

TMatrixD LauKMatrixPropagator::ImRhoMatrix_
private

Imaginary part of the pahse space density diagonal matrix.

Definition at line 283 of file LauKMatrixPropagator.hh.

Int_t LauKMatrixPropagator::index_
private

Row index - 1.

Definition at line 258 of file LauKMatrixPropagator.hh.

Double_t LauKMatrixPropagator::k3piFactor_
private

Factor used to calculate the Kpipipi phase space term.

Definition at line 343 of file LauKMatrixPropagator.hh.

Double_t LauKMatrixPropagator::m2EtaSq_
private

Defined as 4*mEta*mEta.

Definition at line 327 of file LauKMatrixPropagator.hh.

Double_t LauKMatrixPropagator::m2KSq_
private

Defined as 4*mK*mK.

Definition at line 325 of file LauKMatrixPropagator.hh.

Double_t LauKMatrixPropagator::m2piSq_
private

Defined as 4*mPi*mPi.

Definition at line 323 of file LauKMatrixPropagator.hh.

std::vector<Double_t> LauKMatrixPropagator::mDiffSq_
private

Vector of mass differences.

Definition at line 305 of file LauKMatrixPropagator.hh.

Double_t LauKMatrixPropagator::mEtaEtaPDiffSq_
private

Defined as (mEta-mEta')^2.

Definition at line 331 of file LauKMatrixPropagator.hh.

Double_t LauKMatrixPropagator::mEtaEtaPSumSq_
private

Defined as (mEta+mEta')^2.

Definition at line 329 of file LauKMatrixPropagator.hh.

Double_t LauKMatrixPropagator::mK3piDiffSq_
private

Defined as (mK-3*mPi)^2.

Definition at line 341 of file LauKMatrixPropagator.hh.

Double_t LauKMatrixPropagator::mKEtaPDiffSq_
private

Defined as (mK-mEta')^2.

Definition at line 339 of file LauKMatrixPropagator.hh.

Double_t LauKMatrixPropagator::mKEtaPSumSq_
private

Defined as (mK+mEta')^2.

Definition at line 337 of file LauKMatrixPropagator.hh.

Double_t LauKMatrixPropagator::mKpiDiffSq_
private

Defined as (mK-mPi)^2.

Definition at line 335 of file LauKMatrixPropagator.hh.

Double_t LauKMatrixPropagator::mKpiSumSq_
private

Defined as (mK+mPi)^2.

Definition at line 333 of file LauKMatrixPropagator.hh.

LauParameter LauKMatrixPropagator::mSq0_
private

Constant from input file.

Definition at line 310 of file LauKMatrixPropagator.hh.

std::vector<LauParameter> LauKMatrixPropagator::mSqPoles_
private

Vector of squared pole masses.

Definition at line 295 of file LauKMatrixPropagator.hh.

std::vector<Double_t> LauKMatrixPropagator::mSumSq_
private

Vector of squared masses.

Definition at line 303 of file LauKMatrixPropagator.hh.

TString LauKMatrixPropagator::name_
private

String to store the propagator name.

Definition at line 252 of file LauKMatrixPropagator.hh.

Int_t LauKMatrixPropagator::nChannels_
private

Number of channels.

Definition at line 290 of file LauKMatrixPropagator.hh.

TMatrixD LauKMatrixPropagator::negImagProp_
private

Imaginary part of the propagator matrix.

Definition at line 269 of file LauKMatrixPropagator.hh.

Int_t LauKMatrixPropagator::nPoles_
private

Number of poles.

Definition at line 292 of file LauKMatrixPropagator.hh.

Bool_t LauKMatrixPropagator::parametersSet_
private

Tracks if all params have been set.

Definition at line 352 of file LauKMatrixPropagator.hh.

TString LauKMatrixPropagator::paramFileName_
private

Name of the input parameter file.

Definition at line 254 of file LauKMatrixPropagator.hh.

std::vector<Int_t> LauKMatrixPropagator::phaseSpaceTypes_
private

Vector of phase space types.

Definition at line 301 of file LauKMatrixPropagator.hh.

std::vector<Double_t> LauKMatrixPropagator::poleDenomVect_
private

Vector of 1/(m_pole^2 - s) terms for scattering and production K-matrix formulae.

Definition at line 307 of file LauKMatrixPropagator.hh.

Double_t LauKMatrixPropagator::previousS_
private

s value of the previous pole

Definition at line 261 of file LauKMatrixPropagator.hh.

Double_t LauKMatrixPropagator::prodSVP_
private

"slowly-varying part" for the production K-matrix

Definition at line 265 of file LauKMatrixPropagator.hh.

TMatrixD LauKMatrixPropagator::realProp_
private

Real part of the propagator matrix.

Definition at line 267 of file LauKMatrixPropagator.hh.

TMatrixD LauKMatrixPropagator::ReRhoMatrix_
private

Real part of the pahse space density diagonal matrix.

Definition at line 281 of file LauKMatrixPropagator.hh.

Int_t LauKMatrixPropagator::resPairAmpInt_
private

Number to identify the DP axis in question.

Definition at line 256 of file LauKMatrixPropagator.hh.

LauParameter LauKMatrixPropagator::s0Prod_
private

Constant from input file.

Definition at line 314 of file LauKMatrixPropagator.hh.

LauParameter LauKMatrixPropagator::s0Scatt_
private

Constant from input file.

Definition at line 312 of file LauKMatrixPropagator.hh.

LauParameter LauKMatrixPropagator::sA0_
private

Constant from input file.

Definition at line 318 of file LauKMatrixPropagator.hh.

LauParameter LauKMatrixPropagator::sA_
private

Constant from input file.

Definition at line 316 of file LauKMatrixPropagator.hh.

Double_t LauKMatrixPropagator::sAConst_
private

Defined as 0.5*sA*mPi*mPi.

Definition at line 321 of file LauKMatrixPropagator.hh.

TMatrixD LauKMatrixPropagator::ScattKMatrix_
private

Scattering K-matrix.

Definition at line 279 of file LauKMatrixPropagator.hh.

Double_t LauKMatrixPropagator::scattSVP_
private

"slowly-varying part" for the scattering K-matrix

Definition at line 263 of file LauKMatrixPropagator.hh.

Bool_t LauKMatrixPropagator::verbose_
private

Control the output of the functions.

Definition at line 355 of file LauKMatrixPropagator.hh.

TMatrixD LauKMatrixPropagator::zeroMatrix_
private

Null matrix.

Definition at line 287 of file LauKMatrixPropagator.hh.


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