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

Class for defining signal dynamics using the isobar model. More...

#include <LauIsobarDynamics.hh>

Inheritance diagram for LauIsobarDynamics:
LauAbsDPDynamics

Public Member Functions

 LauIsobarDynamics (LauDaughters *daughters, LauAbsEffModel *effModel, LauAbsEffModel *scfFractionModel=0)
 Constructor. More...
 
 LauIsobarDynamics (LauDaughters *daughters, LauAbsEffModel *effModel, LauTagCatScfFractionModelMap scfFractionModel)
 Constructor. More...
 
virtual ~LauIsobarDynamics ()
 Destructor. More...
 
virtual void initialise (const std::vector< LauComplex > &coeffs)
 Initialise the Dalitz plot dynamics. More...
 
void setIntFileName (const TString &fileName)
 Set the name of the file to which to save the results of the integrals. More...
 
virtual void setIntegralBinWidths (Double_t m13BinWidth, Double_t m23BinWidth)
 Set the widths of the bins to use when integrating across the Dalitz plot. More...
 
virtual LauAbsResonanceaddResonance (const TString &resName, const Int_t resPairAmpInt, const LauAbsResonance::LauResonanceModel resType)
 Add a resonance to the Dalitz plot. More...
 
virtual void defineKMatrixPropagator (const TString &propName, const TString &paramFileName, Int_t resPairAmpInt, Int_t nChannels, Int_t nPoles, Int_t rowIndex=1)
 Define a new K-matrix Propagator. More...
 
virtual void addKMatrixProdPole (const TString &poleName, const TString &propName, Int_t poleIndex)
 Add a K-matrix production pole term to the model. More...
 
virtual void addKMatrixProdSVP (const TString &SVPName, const TString &propName, Int_t channelIndex)
 Add a K-matrix slowly-varying part (SVP) term to the model. More...
 
virtual void changeResonance (const TString &resName, Double_t newMass=-1.0, Double_t newWidth=-1.0, Int_t newSpin=-1)
 Change the properties of a resonance particle within this model. More...
 
virtual Bool_t generate ()
 Generate a toy MC signal event. More...
 
virtual ToyMCStatus checkToyMC (Bool_t printErrorMessages=kTRUE, Bool_t printInfoMessages=kFALSE)
 Check the status of the toy MC generation. More...
 
Int_t maxGenIterations () const
 Retrieve the maximum number of iterations allowed when generating an event. More...
 
virtual void calcLikelihoodInfo (UInt_t iEvt)
 Calculate the likelihood (and all associated information) for the given event number. More...
 
virtual void calcLikelihoodInfo (Double_t m13Sq, Double_t m23Sq)
 Calculate the likelihood (and all associated information) given values of the Dalitz plot coordinates. More...
 
virtual void calcLikelihoodInfo (Double_t m13Sq, Double_t m23Sq, Int_t tagCat)
 Calculate the likelihood (and all associated information) given values of the Dalitz plot coordinates and the tagging category. More...
 
virtual const LauComplexgetEvtDPAmp () const
 Retrieve the total amplitude for the current event. More...
 
virtual Double_t getEvtm13Sq () const
 Retrieve the invariant mass squared of the first and third daughters in the current event. More...
 
virtual Double_t getEvtm23Sq () const
 Retrieve the invariant mass squared of the second and third daughters in the current event. More...
 
virtual Double_t getEvtmPrime () const
 Retrieve the square Dalitz plot coordinate, m', for the current event. More...
 
virtual Double_t getEvtthPrime () const
 Retrieve the square Dalitz plot coordinate, theta', for the current event. More...
 
virtual Double_t getEvtEff () const
 Retrieve the efficiency for the current event. More...
 
virtual Double_t getEvtScfFraction () const
 Retrieve the fraction of events that are poorly reconstructed (the self cross feed fraction) for the current event. More...
 
virtual Double_t getEvtJacobian () const
 Retrieve the Jacobian, for the transformation into square DP coordinates, for the current event. More...
 
virtual Double_t getEvtLikelihood () const
 Retrieve the likelihood for the current event. More...
 
virtual void calcExtraInfo (Bool_t init=kFALSE)
 Calculate the fit fractions, mean efficiency and total DP rate. More...
 
virtual Bool_t gotReweightedEvent ()
 Calculates whether an event with the current kinematics should be accepted in order to produce a distribution of events that matches the model e.g. when reweighting embedded data. More...
 
virtual Double_t getEventWeight ()
 Calculate the acceptance rate, for events with the current kinematics, when generating events according to the model. More...
 
void setASqMaxValue (Double_t value)
 Set the maximum value of A squared to be used in the accept/reject. More...
 
Double_t getASqMaxSetValue () const
 Retrieve the maximum value of A squared to be used in the accept/reject. More...
 
Double_t getASqMaxVarValue () const
 Retrieve the maximum of A squared that has been found while generating. More...
 
virtual LauComplex getDynamicAmp (Int_t resID) const
 Retrieve the normalised dynamic part of the amplitude of the given amplitude component at the current point in the Dalitz plot. More...
 
const std::vector< std::vector
< LauComplex > > & 
getFiFjSum () const
 Retrieve the event-by-event running totals of amplitude cross terms for all pairs of amplitude components. More...
 
const std::vector< std::vector
< LauComplex > > & 
getFiFjEffSum () const
 Retrieve the event-by-event running totals of efficiency corrected amplitude cross terms for all pairs of amplitude components. More...
 
const std::vector< Double_t > & getFNorm () const
 Retrieve the normalisation factors for the dynamic parts of the amplitudes for all of the amplitude components. More...
 
virtual void fillDataTree (const LauFitDataTree &fitDataTree)
 Fill the internal data structure that caches the resonance dynamics. More...
 
virtual void setDataEventNo (UInt_t iEvt)
 Load the data for a given event. More...
 
void setBarrierRadii (Double_t resRadius, Double_t parRadius=4.0, LauAbsResonance::BarrierType type=LauAbsResonance::BWPrimeBarrier)
 Set the parameters for the barrier factors for new resonances. More...
 
void setResBarrierRadius (Double_t radius)
 Set the radius of the barrier factor due to the resonance to use for new amplitude components. More...
 
void setParBarrierRadius (Double_t radius)
 Set the radius of the barrier factor due to the parent to use for new amplitude components. More...
 
void setBarrierType (LauAbsResonance::BarrierType type)
 Set the type of barrier factor to use for new amplitude components. More...
 
Double_t getResBarrierRadius () const
 Retrieve the radius of the barrier factor due to the resonance to use for new amplitude components. More...
 
Double_t getParBarrierRadius () const
 Retrieve the radius of the barrier factor due to the parent to use for new amplitude components. More...
 
void flipHelicityForCPEigenstates (Bool_t boolean)
 Set the helicity flip flag for new amplitude components. More...
 
- Public Member Functions inherited from LauAbsDPDynamics
 LauAbsDPDynamics (LauDaughters *daughters, LauAbsEffModel *effModel, LauAbsEffModel *scfFractionModel=0)
 Constructor. More...
 
 LauAbsDPDynamics (LauDaughters *daughters, LauAbsEffModel *effModel, const LauTagCatScfFractionModelMap &scfFractionModel)
 Constructor. More...
 
virtual ~LauAbsDPDynamics ()
 Destructor. More...
 
virtual Double_t retrieveEfficiency ()
 Obtain the efficiency of the current event from the model. More...
 
virtual Double_t retrieveScfFraction (Int_t tagCat)
 Obtain the self cross feed fraction of the current event from the model. More...
 
virtual Bool_t hasResonance (const TString &resName) const
 Check whether this model includes a named resonance. More...
 
virtual TString getConjResName (const TString &resName) const
 Retrieve the name of the charge conjugate of a named resonance. More...
 
virtual void updateCoeffs (const std::vector< LauComplex > &coeffs)
 Update the complex coefficients for the resonances. More...
 
LauParameter getMeanEff () const
 Retrieve the mean efficiency across the Dalitz plot. More...
 
LauParameter getDPRate () const
 Retrieve the overall Dalitz plot rate. More...
 
const LauParArraygetFitFractions () const
 Retrieve the fit fractions for the amplitude components. More...
 
const LauParArraygetFitFractionsEfficiencyUncorrected () const
 Retrieve the fit fractions for the amplitude components. More...
 
UInt_t getnDefinedResonances () const
 Retrieve the number of defined resonances in the resonance maker. More...
 
UInt_t getnAmp () const
 Retrieve the number of amplitude components. More...
 
Double_t getDPNorm () const
 Retrieve the normalisation factor for the log-likelihood function. More...
 
UInt_t nData () const
 Retrieve the number of cached events. More...
 
const std::vector
< LauCacheData * > & 
getCacheData () const
 Retrieve the cached data. More...
 
LauDaughtersgetDaughters ()
 Retrieve the daughters. More...
 
LauResonanceMakergetResonanceMaker ()
 Retrieve the resonance maker object. More...
 
LauKinematicsgetKinematics ()
 Retrieve the Dalitz plot kinematics. More...
 
LauAbsEffModelgetEffModel ()
 Retrieve the model for the efficiency across the Dalitz plot. More...
 
LauAbsEffModelgetScfFractionModel ()
 Retrieve the model for the fraction of events that are poorly reconstructed (the self cross feed fraction) in each Dalitz plot bin for the first (or only) tagging category. More...
 
std::map< Int_t, LauAbsEffModel * > getScfFractionModels ()
 Retrieve the model for the fraction of events that are poorly reconstructed (the self cross feed fraction) in each Dalitz plot bin for all tagging categories. More...
 
Bool_t usingScfModel ()
 Check whether a self cross feed fraction model is being used. More...
 
std::vector< LauParametergetExtraParameters ()
 Retrieve any extra parameters/quantities (e.g. K-matrix total fit fractions) More...
 

Protected Member Functions

virtual void initSummary ()
 Print a summary of the model to be used. More...
 
virtual void initialiseVectors ()
 Initialise the internal storage for this model. More...
 
virtual void calcDPNormalisation ()
 Calculate the Dalitz plot normalisation integrals across the whole Dalitz plot. More...
 
virtual void calcDPPartialIntegral (Double_t minm13, Double_t maxm13, Double_t minm23, Double_t maxm23, Double_t m13BinWidth, Double_t m23BinWidth)
 Calculate the Dalitz plot normalisation integrals over a given range. More...
 
virtual void writeIntegralsFile ()
 Write the results of the integrals (and related information) to a file. More...
 
virtual void setFFTerm (UInt_t index, Double_t realPart, Double_t imagPart)
 Set the dynamic part of the amplitude for a given amplitude component at the current point in the Dalitz plot. More...
 
virtual void dynamics (Bool_t cacheResData=kTRUE, Double_t weight=1.0, Bool_t useEff=kTRUE)
 Calculate the total Dalitz plot amplitude at the current point in the Dalitz plot. More...
 
void setASqMaxVarValue (Double_t value)
 Set the maximum of A squared that has been found. More...
 
virtual Double_t calcSigDPNorm ()
 Calculate the normalisation factor for the log-likelihood function. More...
 
virtual LauComplex resAmp (Int_t index)
 Calculate the dynamic part of the amplitude for a given component at the current point in the Dalitz plot. More...
 
virtual LauAbsResonancefindResonance (const TString &name)
 Retrieve the named resonance. More...
 
virtual const LauAbsResonancefindResonance (const TString &name) const
 Retrieve the named resonance. More...
 
virtual void removeCharge (TString &string) const
 Remove the charge from the given particle name. More...
 
Bool_t gotKMatrixMatch (UInt_t resAmpInt, const TString &propName) const
 Check whether a resonance is a K-matrix component of a given propagator. More...
 

Private Types

typedef std::map< TString,
LauKMatrixPropagator * > 
KMPropMap
 The type used for containing the K-matrix propagators. More...
 
typedef std::map< TString,
TString > 
KMStringMap
 The type used for mapping K-matrix components to their propagators. More...
 

Private Attributes

std::vector< LauAbsResonance * > sigResonances_
 The resonances in the model. More...
 
KMPropMap kMatrixPropagators_
 The K-matrix propagators. More...
 
KMStringMap kMatrixPropSet_
 The names of the M-matrix components in the model mapped to their propagators. More...
 
std::vector< TString > resTypAmp_
 The resonance types of all of the amplitude components. More...
 
std::vector< Int_t > resIntAmp_
 The index within the resonance maker for each amplitude component. More...
 
std::vector< Int_t > resPairAmp_
 The index of the daughter not produced by the resonance for each amplitude component. More...
 
std::vector< Int_t > typDaug_
 The PDG codes of the daughters. More...
 
Bool_t symmetricalDP_
 Whether the Dalitz plot is symmetrical. More...
 
Bool_t integralsDone_
 Whether the integrals have been performed. More...
 
TString intFileName_
 The name of the file to save integrals to. More...
 
Double_t m13BinWidth_
 The bin width to use when integrating over m13. More...
 
Double_t m23BinWidth_
 The bin width to use when integrating over m23. More...
 
Double_t m13Sq_
 The invariant mass squared of the first and third daughters. More...
 
Double_t m23Sq_
 The invariant mass squared of the second and third daughters. More...
 
Double_t mPrime_
 The square Dalitz plot coordinate, m'. More...
 
Double_t thPrime_
 The square Dalitz plot coordinate theta'. More...
 
Double_t eff_
 The efficiency at the current point in the Dalitz plot. More...
 
Double_t scfFraction_
 The fraction of events that are poorly reconstructed (the self cross feed fraction) at the current point in the Dalitz plot. More...
 
Double_t jacobian_
 The Jacobian, for the transformation into square DP coordinates at the current point in the Dalitz plot. More...
 
Double_t ASq_
 The value of A squared for the current event. More...
 
Double_t evtLike_
 The normalised likelihood for the current event. More...
 
LauComplex totAmp_
 The total amplitude for the current event. More...
 
std::vector< std::vector
< LauComplex > > 
fifjEffSum_
 The event-by-event running total of efficiency corrected amplitude cross terms for each pair of amplitude components. More...
 
std::vector< std::vector
< LauComplex > > 
fifjSum_
 The event-by-event running total of the amplitude cross terms for each pair of amplitude components. More...
 
std::vector< LauComplexff_
 The dynamic part of the amplitude for each amplitude component at the current point in the Dalitz plot. More...
 
std::vector< Double_t > fSqSum_
 The event-by-event running total of the dynamical amplitude squared for each amplitude component. More...
 
std::vector< Double_t > fNorm_
 The normalisation factors for the dynamic parts of the amplitude for each amplitude component. More...
 
Int_t iterationsMax_
 The maximum allowed number of attempts when generating an event. More...
 
Int_t nSigGenLoop_
 The number of unsucessful attempts to generate an event so far. More...
 
Double_t aSqMaxSet_
 The maximum allowed value of A squared. More...
 
Double_t aSqMaxVar_
 The maximum value of A squared that has been seen so far while generating. More...
 
Bool_t setBarrierRadius_
 Should the radii of the resonance barrier factors be adjusted for new amplitude components. More...
 
Double_t resBarrierRadius_
 The radius of the resonance barrier factor for new amplitude components. More...
 
Double_t parBarrierRadius_
 The radius of the parent barrier factor for new amplitude components. More...
 
LauAbsResonance::BarrierType barrierType_
 The type of the barrier factor for new amplitude components. More...
 
Bool_t flipHelicity_
 The helicity flip flag for new amplitude components. More...
 

Additional Inherited Members

- Public Types inherited from LauAbsDPDynamics
enum  ToyMCStatus { GenOK, MaxIterError, ASqMaxError }
 The possible statuses for toy MC generation. More...
 
typedef std::map< Int_t,
LauAbsEffModel * > 
LauTagCatScfFractionModelMap
 The type used for containing multiple self cross feed fraction models for different categories (e.g. tagging categories) More...
 
- Protected Attributes inherited from LauAbsDPDynamics
LauDaughtersdaughters_
 The daughters of the decay. More...
 
LauResonanceMakerresonanceMaker_
 Object to create resonances. More...
 
LauKinematicskinematics_
 The kinematics of the decay. More...
 
LauAbsEffModeleffModel_
 The efficiency model across the Dalitz plot. More...
 
LauTagCatScfFractionModelMap scfFractionModel_
 The self cross feed fraction models across the Dalitz plot. More...
 
UInt_t nAmp_
 The number of amplitude components. More...
 
UInt_t nResDefMax_
 The number of resonances defined in the resonance maker. More...
 
std::vector< LauComplexAmp_
 The complex coefficients for the amplitude components. More...
 
Double_t DPNorm_
 The normalisation factor for the log-likelihood function. More...
 
LauParArray fitFrac_
 The fit fractions for the amplitude components. More...
 
LauParArray fitFracEffUnCorr_
 The efficiency-uncorrected fit fractions for the amplitude components. More...
 
LauParameter DPRate_
 The overall Dalitz plot rate. More...
 
LauParameter meanDPEff_
 The mean efficiency across the Dalitz plot. More...
 
std::vector< LauCacheData * > data_
 The cached data for all events. More...
 
LauCacheDatacurrentEvent_
 The cached data for the current event. More...
 
std::vector< LauParameterextraParameters_
 any extra parameters/quantities (e.g. K-matrix total fit fractions) More...
 

Detailed Description

Class for defining signal dynamics using the isobar model.

Definition at line 35 of file LauIsobarDynamics.hh.

Member Typedef Documentation

typedef std::map<TString, LauKMatrixPropagator*> LauIsobarDynamics::KMPropMap
private

The type used for containing the K-matrix propagators.

Definition at line 436 of file LauIsobarDynamics.hh.

typedef std::map<TString, TString> LauIsobarDynamics::KMStringMap
private

The type used for mapping K-matrix components to their propagators.

Definition at line 439 of file LauIsobarDynamics.hh.

Constructor & Destructor Documentation

LauIsobarDynamics::LauIsobarDynamics ( LauDaughters daughters,
LauAbsEffModel effModel,
LauAbsEffModel scfFractionModel = 0 
)

Constructor.

Parameters
[in]daughtersthe daughters of the decay
[in]effModelthe model to describe the efficiency across the Dalitz plot
[in]scfFractionModelthe model to describe the fraction of poorly constructed events (the self cross feed fraction) across the Dalitz plot

Definition at line 50 of file LauIsobarDynamics.cc.

LauIsobarDynamics::LauIsobarDynamics ( LauDaughters daughters,
LauAbsEffModel effModel,
LauTagCatScfFractionModelMap  scfFractionModel 
)

Constructor.

Parameters
[in]daughtersthe daughters of the decay
[in]effModelthe model to describe the efficiency across the Dalitz plot
[in]scfFractionModelthe models to describe the fraction of poorly constructed events (the self cross feed fraction) across the Dalitz plot for various tagging categories

Definition at line 90 of file LauIsobarDynamics.cc.

LauIsobarDynamics::~LauIsobarDynamics ( )
virtual

Destructor.

Definition at line 128 of file LauIsobarDynamics.cc.

Member Function Documentation

void LauIsobarDynamics::addKMatrixProdPole ( const TString &  poleName,
const TString &  propName,
Int_t  poleIndex 
)
virtual

Add a K-matrix production pole term to the model.

Parameters
[in]poleNamethe name of the pole
[in]propNamethe name of the propagator to use
[in]poleIndexthe index of the pole within the propagator

Definition at line 464 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::addKMatrixProdSVP ( const TString &  SVPName,
const TString &  propName,
Int_t  channelIndex 
)
virtual

Add a K-matrix slowly-varying part (SVP) term to the model.

Parameters
[in]SVPNamethe name of the term
[in]propNamethe name of the propagator to use
[in]channelIndexthe index of the channel within the propagator

Definition at line 512 of file LauIsobarDynamics.cc.

LauAbsResonance * LauIsobarDynamics::addResonance ( const TString &  resName,
const Int_t  resPairAmpInt,
const LauAbsResonance::LauResonanceModel  resType 
)
virtual

Add a resonance to the Dalitz plot.

Parameters
[in]resNamethe name of the resonant particle
[in]resPairAmpIntthe index of the daughter not produced by the resonance
[in]resTypethe model for the resonance dynamics
Returns
the newly created resonance

Implements LauAbsDPDynamics.

Definition at line 377 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::calcDPNormalisation ( )
protectedvirtual

Calculate the Dalitz plot normalisation integrals across the whole Dalitz plot.

Definition at line 628 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::calcDPPartialIntegral ( Double_t  minm13,
Double_t  maxm13,
Double_t  minm23,
Double_t  maxm23,
Double_t  m13BinWidth,
Double_t  m23BinWidth 
)
protectedvirtual

Calculate the Dalitz plot normalisation integrals over a given range.

Parameters
[in]minm13the minimum value of m13 in the integration range
[in]maxm13the maximum value of m13 in the integration range
[in]minm23the minimum value of m23 in the integration range
[in]maxm23the maximum value of m23 in the integration range
[in]m13BinWidththe bin width in m13
[in]m23BinWidththe bin width in m23

Definition at line 1102 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::calcExtraInfo ( Bool_t  init = kFALSE)
virtual

Calculate the fit fractions, mean efficiency and total DP rate.

Parameters
[in]initwhether the calculated values should be stored as the initial/generated values or the fitted values

Implements LauAbsDPDynamics.

Definition at line 1359 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::calcLikelihoodInfo ( UInt_t  iEvt)
virtual

Calculate the likelihood (and all associated information) for the given event number.

Parameters
[in]iEvtthe event number

Implements LauAbsDPDynamics.

Definition at line 1679 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::calcLikelihoodInfo ( Double_t  m13Sq,
Double_t  m23Sq 
)
virtual

Calculate the likelihood (and all associated information) given values of the Dalitz plot coordinates.

Parameters
[in]m13Sqthe invariant mass squared of the first and third daughters
[in]m23Sqthe invariant mass squared of the second and third daughters

Implements LauAbsDPDynamics.

Definition at line 1704 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::calcLikelihoodInfo ( Double_t  m13Sq,
Double_t  m23Sq,
Int_t  tagCat 
)
virtual

Calculate the likelihood (and all associated information) given values of the Dalitz plot coordinates and the tagging category.

Also obtain the self cross feed fraction to cache with the rest of the Dalitz plot quantities.

Parameters
[in]m13Sqthe invariant mass squared of the first and third daughters
[in]m23Sqthe invariant mass squared of the second and third daughters
[in]tagCatthe tagging category

Definition at line 1709 of file LauIsobarDynamics.cc.

Double_t LauIsobarDynamics::calcSigDPNorm ( )
protectedvirtual

Calculate the normalisation factor for the log-likelihood function.

Returns
the normalisation factor

Implements LauAbsDPDynamics.

Definition at line 1529 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::changeResonance ( const TString &  resName,
Double_t  newMass = -1.0,
Double_t  newWidth = -1.0,
Int_t  newSpin = -1 
)
virtual

Change the properties of a resonance particle within this model.

Note that parameters set to -1 are ignored.

Parameters
[in]resNamethe name of the resonance to modify
[in]newMassthe new mass for this resonance
[in]newWidththe new width for this resonance
[in]newSpinthe new spin for this resonance

Definition at line 612 of file LauIsobarDynamics.cc.

LauAbsDPDynamics::ToyMCStatus LauIsobarDynamics::checkToyMC ( Bool_t  printErrorMessages = kTRUE,
Bool_t  printInfoMessages = kFALSE 
)
virtual

Check the status of the toy MC generation.

Parameters
[in]printErrorMessageswhether error messages should be printed
[in]printInfoMessageswhether info messages should be printed
Returns
the status of the toy MC generation

Implements LauAbsDPDynamics.

Definition at line 1622 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::defineKMatrixPropagator ( const TString &  propName,
const TString &  paramFileName,
Int_t  resPairAmpInt,
Int_t  nChannels,
Int_t  nPoles,
Int_t  rowIndex = 1 
)
virtual

Define a new K-matrix Propagator.

Parameters
[in]propNamethe name of the propagator
[in]paramFileNamethe file that defines the propagator
[in]resPairAmpIntthe index of the bachelor
[in]nChannelsthe number of channels
[in]nPolesthe number of poles
[in]rowIndexthe index of the row to be used when summing over all amplitude channels: S-wave corresponds to rowIndex = 1.

Definition at line 441 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::dynamics ( Bool_t  cacheResData = kTRUE,
Double_t  weight = 1.0,
Bool_t  useEff = kTRUE 
)
protectedvirtual

Calculate the total Dalitz plot amplitude at the current point in the Dalitz plot.

Parameters
[in]cacheResDatawhether the amplitudes have already been cached
[in]weightthe weight to apply (used when calculating the integrals)
[in]useEffwhether to apply efficiency corrections

Definition at line 1218 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::fillDataTree ( const LauFitDataTree fitDataTree)
virtual

Fill the internal data structure that caches the resonance dynamics.

Parameters
[in]fitDataTreethe data source

Implements LauAbsDPDynamics.

Definition at line 1738 of file LauIsobarDynamics.cc.

LauAbsResonance * LauIsobarDynamics::findResonance ( const TString &  name)
protectedvirtual

Retrieve the named resonance.

Parameters
[in]namethe name of the resonance to retrieve
Returns
the named resonance

Implements LauAbsDPDynamics.

Definition at line 558 of file LauIsobarDynamics.cc.

const LauAbsResonance * LauIsobarDynamics::findResonance ( const TString &  name) const
protectedvirtual

Retrieve the named resonance.

Parameters
[in]namethe name of the resonance to retrieve
Returns
the named resonance

Implements LauAbsDPDynamics.

Definition at line 579 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::flipHelicityForCPEigenstates ( Bool_t  boolean)
inline

Set the helicity flip flag for new amplitude components.

Parameters
[in]booleanthe helicity flip flag

Definition at line 345 of file LauIsobarDynamics.hh.

Bool_t LauIsobarDynamics::generate ( )
virtual

Generate a toy MC signal event.

Returns
kTRUE if the event is successfully generated, kFALSE otherwise

Implements LauAbsDPDynamics.

Definition at line 1563 of file LauIsobarDynamics.cc.

Double_t LauIsobarDynamics::getASqMaxSetValue ( ) const
inline

Retrieve the maximum value of A squared to be used in the accept/reject.

Returns
the maximum value of A squared

Definition at line 251 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::getASqMaxVarValue ( ) const
inline

Retrieve the maximum of A squared that has been found while generating.

Returns
the maximum of A squared that has been found

Definition at line 257 of file LauIsobarDynamics.hh.

virtual LauComplex LauIsobarDynamics::getDynamicAmp ( Int_t  resID) const
inlinevirtual

Retrieve the normalised dynamic part of the amplitude of the given amplitude component at the current point in the Dalitz plot.

Parameters
[in]resIDthe index of the amplitude component within the model
Returns
the amplitude of the given amplitude component

Implements LauAbsDPDynamics.

Definition at line 264 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::getEventWeight ( )
virtual

Calculate the acceptance rate, for events with the current kinematics, when generating events according to the model.

Returns
the weight for the current kinematics

Implements LauAbsDPDynamics.

Definition at line 1835 of file LauIsobarDynamics.cc.

virtual const LauComplex& LauIsobarDynamics::getEvtDPAmp ( ) const
inlinevirtual

Retrieve the total amplitude for the current event.

Returns
the total amplitude

Implements LauAbsDPDynamics.

Definition at line 170 of file LauIsobarDynamics.hh.

virtual Double_t LauIsobarDynamics::getEvtEff ( ) const
inlinevirtual

Retrieve the efficiency for the current event.

Returns
the efficiency for the current event

Implements LauAbsDPDynamics.

Definition at line 200 of file LauIsobarDynamics.hh.

virtual Double_t LauIsobarDynamics::getEvtJacobian ( ) const
inlinevirtual

Retrieve the Jacobian, for the transformation into square DP coordinates, for the current event.

Returns
the Jacobian for the current event

Implements LauAbsDPDynamics.

Definition at line 212 of file LauIsobarDynamics.hh.

virtual Double_t LauIsobarDynamics::getEvtLikelihood ( ) const
inlinevirtual

Retrieve the likelihood for the current event.

evtLike_ = totAmp_.abs2()*eff_/DPNorm_

Returns
the likelihood for the current event

Implements LauAbsDPDynamics.

Definition at line 220 of file LauIsobarDynamics.hh.

virtual Double_t LauIsobarDynamics::getEvtm13Sq ( ) const
inlinevirtual

Retrieve the invariant mass squared of the first and third daughters in the current event.

Returns
the invariant mass squared of the first and third daughters in the current event

Implements LauAbsDPDynamics.

Definition at line 176 of file LauIsobarDynamics.hh.

virtual Double_t LauIsobarDynamics::getEvtm23Sq ( ) const
inlinevirtual

Retrieve the invariant mass squared of the second and third daughters in the current event.

Returns
the invariant mass squared of the second and third daughters in the current event

Implements LauAbsDPDynamics.

Definition at line 182 of file LauIsobarDynamics.hh.

virtual Double_t LauIsobarDynamics::getEvtmPrime ( ) const
inlinevirtual

Retrieve the square Dalitz plot coordinate, m', for the current event.

Returns
the square Dalitz plot coordinate, m', for the current event

Implements LauAbsDPDynamics.

Definition at line 188 of file LauIsobarDynamics.hh.

virtual Double_t LauIsobarDynamics::getEvtScfFraction ( ) const
inlinevirtual

Retrieve the fraction of events that are poorly reconstructed (the self cross feed fraction) for the current event.

Returns
the self cross feed fraction for the current event

Implements LauAbsDPDynamics.

Definition at line 206 of file LauIsobarDynamics.hh.

virtual Double_t LauIsobarDynamics::getEvtthPrime ( ) const
inlinevirtual

Retrieve the square Dalitz plot coordinate, theta', for the current event.

Returns
the square Dalitz plot coordinate, theta', for the current event

Implements LauAbsDPDynamics.

Definition at line 194 of file LauIsobarDynamics.hh.

const std::vector< std::vector<LauComplex> >& LauIsobarDynamics::getFiFjEffSum ( ) const
inline

Retrieve the event-by-event running totals of efficiency corrected amplitude cross terms for all pairs of amplitude components.

Returns
the event-by-event running totals of amplitude cross terms with efficiency corrections applied

Definition at line 276 of file LauIsobarDynamics.hh.

const std::vector< std::vector<LauComplex> >& LauIsobarDynamics::getFiFjSum ( ) const
inline

Retrieve the event-by-event running totals of amplitude cross terms for all pairs of amplitude components.

Returns
the event-by-event running totals of amplitude cross terms

Definition at line 270 of file LauIsobarDynamics.hh.

const std::vector<Double_t>& LauIsobarDynamics::getFNorm ( ) const
inline

Retrieve the normalisation factors for the dynamic parts of the amplitudes for all of the amplitude components.

Returns
the normalisation factors

Definition at line 282 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::getParBarrierRadius ( ) const
inline

Retrieve the radius of the barrier factor due to the parent to use for new amplitude components.

Returns
the barrier radius

Definition at line 339 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::getResBarrierRadius ( ) const
inline

Retrieve the radius of the barrier factor due to the resonance to use for new amplitude components.

Returns
the barrier radius

Definition at line 333 of file LauIsobarDynamics.hh.

Bool_t LauIsobarDynamics::gotKMatrixMatch ( UInt_t  resAmpInt,
const TString &  propName 
) const
protected

Check whether a resonance is a K-matrix component of a given propagator.

Parameters
[in]resAmpIntthe index of the resonance within the model
[in]propNamethe name of the K-matrix propagator
Returns
true if the resonance is a component of the given propagator, otherwise return false

Definition at line 1499 of file LauIsobarDynamics.cc.

Bool_t LauIsobarDynamics::gotReweightedEvent ( )
virtual

Calculates whether an event with the current kinematics should be accepted in order to produce a distribution of events that matches the model e.g. when reweighting embedded data.

Uses the accept/reject method.

Returns
kTRUE if the event has been accepted, kFALSE otherwise

Implements LauAbsDPDynamics.

Definition at line 1817 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::initialise ( const std::vector< LauComplex > &  coeffs)
virtual

Initialise the Dalitz plot dynamics.

Parameters
[in]coeffsthe complex coefficients for the resonances

Implements LauAbsDPDynamics.

Definition at line 132 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::initialiseVectors ( )
protectedvirtual

Initialise the internal storage for this model.

Definition at line 265 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::initSummary ( )
protectedvirtual

Print a summary of the model to be used.

Definition at line 216 of file LauIsobarDynamics.cc.

Int_t LauIsobarDynamics::maxGenIterations ( ) const
inline

Retrieve the maximum number of iterations allowed when generating an event.

Returns
the maximum number of iterations allowed

Definition at line 142 of file LauIsobarDynamics.hh.

void LauIsobarDynamics::removeCharge ( TString &  string) const
protectedvirtual

Remove the charge from the given particle name.

Parameters
[in,out]stringthe particle name

Definition at line 600 of file LauIsobarDynamics.cc.

LauComplex LauIsobarDynamics::resAmp ( Int_t  index)
protectedvirtual

Calculate the dynamic part of the amplitude for a given component at the current point in the Dalitz plot.

Parameters
[in]indexthe index of the amplitude component within the model

Definition at line 1315 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::setASqMaxValue ( Double_t  value)
inline

Set the maximum value of A squared to be used in the accept/reject.

Parameters
[in]valuethe new value

Definition at line 245 of file LauIsobarDynamics.hh.

void LauIsobarDynamics::setASqMaxVarValue ( Double_t  value)
inlineprotected

Set the maximum of A squared that has been found.

Parameters
[in]valuethe new value

Definition at line 392 of file LauIsobarDynamics.hh.

void LauIsobarDynamics::setBarrierRadii ( Double_t  resRadius,
Double_t  parRadius = 4.0,
LauAbsResonance::BarrierType  type = LauAbsResonance::BWPrimeBarrier 
)
inline

Set the parameters for the barrier factors for new resonances.

Parameters
[in]resRadiusthe radius due to the resonance
[in]parRadiusthe radius due to the parent
[in]typethe type of the barrier factor

Definition at line 302 of file LauIsobarDynamics.hh.

void LauIsobarDynamics::setBarrierType ( LauAbsResonance::BarrierType  type)
inline

Set the type of barrier factor to use for new amplitude components.

Parameters
[in]typethe type of barrier factor. Allowed types are: BWBarrier, BWPrimeBarrier and ExpBarrier.

Definition at line 327 of file LauIsobarDynamics.hh.

void LauIsobarDynamics::setDataEventNo ( UInt_t  iEvt)
virtual

Load the data for a given event.

Parameters
[in]iEvtthe number of the event

Reimplemented from LauAbsDPDynamics.

Definition at line 1667 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::setFFTerm ( UInt_t  index,
Double_t  realPart,
Double_t  imagPart 
)
protectedvirtual

Set the dynamic part of the amplitude for a given amplitude component at the current point in the Dalitz plot.

Parameters
[in]indexthe index of the amplitude component
[in]realPartthe real part of the amplitude
[in]imagPartthe imaginary part of the amplitude

Definition at line 1348 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::setIntegralBinWidths ( Double_t  m13BinWidth,
Double_t  m23BinWidth 
)
virtual

Set the widths of the bins to use when integrating across the Dalitz plot.

Parameters
[in]m13BinWidththe bin width to use when integrating over m13
[in]m23BinWidththe bin width to use when integrating over m23

Definition at line 1091 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::setIntFileName ( const TString &  fileName)
inline

Set the name of the file to which to save the results of the integrals.

Parameters
[in]fileNamethe name of the file

Definition at line 67 of file LauIsobarDynamics.hh.

void LauIsobarDynamics::setParBarrierRadius ( Double_t  radius)
inline

Set the radius of the barrier factor due to the parent to use for new amplitude components.

Parameters
[in]radiusthe barrier radius

Definition at line 321 of file LauIsobarDynamics.hh.

void LauIsobarDynamics::setResBarrierRadius ( Double_t  radius)
inline

Set the radius of the barrier factor due to the resonance to use for new amplitude components.

Parameters
[in]radiusthe barrier radius

Definition at line 315 of file LauIsobarDynamics.hh.

void LauIsobarDynamics::writeIntegralsFile ( )
protectedvirtual

Write the results of the integrals (and related information) to a file.

Definition at line 304 of file LauIsobarDynamics.cc.

Member Data Documentation

Double_t LauIsobarDynamics::ASq_
private

The value of A squared for the current event.

Definition at line 499 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::aSqMaxSet_
private

The maximum allowed value of A squared.

Definition at line 535 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::aSqMaxVar_
private

The maximum value of A squared that has been seen so far while generating.

Definition at line 538 of file LauIsobarDynamics.hh.

LauAbsResonance::BarrierType LauIsobarDynamics::barrierType_
private

The type of the barrier factor for new amplitude components.

Definition at line 550 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::eff_
private

The efficiency at the current point in the Dalitz plot.

Definition at line 490 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::evtLike_
private

The normalised likelihood for the current event.

Definition at line 502 of file LauIsobarDynamics.hh.

std::vector<LauComplex> LauIsobarDynamics::ff_
private

The dynamic part of the amplitude for each amplitude component at the current point in the Dalitz plot.

Definition at line 520 of file LauIsobarDynamics.hh.

std::vector< std::vector<LauComplex> > LauIsobarDynamics::fifjEffSum_
private

The event-by-event running total of efficiency corrected amplitude cross terms for each pair of amplitude components.

Calculated as the sum of ff_[i]*ff_[j]*efficiency for all events

Definition at line 511 of file LauIsobarDynamics.hh.

std::vector< std::vector<LauComplex> > LauIsobarDynamics::fifjSum_
private

The event-by-event running total of the amplitude cross terms for each pair of amplitude components.

Calculated as the sum of ff_[i]*ff_[j] for all events

Definition at line 517 of file LauIsobarDynamics.hh.

Bool_t LauIsobarDynamics::flipHelicity_
private

The helicity flip flag for new amplitude components.

Definition at line 553 of file LauIsobarDynamics.hh.

std::vector<Double_t> LauIsobarDynamics::fNorm_
private

The normalisation factors for the dynamic parts of the amplitude for each amplitude component.

Definition at line 526 of file LauIsobarDynamics.hh.

std::vector<Double_t> LauIsobarDynamics::fSqSum_
private

The event-by-event running total of the dynamical amplitude squared for each amplitude component.

Definition at line 523 of file LauIsobarDynamics.hh.

Bool_t LauIsobarDynamics::integralsDone_
private

Whether the integrals have been performed.

Definition at line 466 of file LauIsobarDynamics.hh.

TString LauIsobarDynamics::intFileName_
private

The name of the file to save integrals to.

Definition at line 469 of file LauIsobarDynamics.hh.

Int_t LauIsobarDynamics::iterationsMax_
private

The maximum allowed number of attempts when generating an event.

Definition at line 529 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::jacobian_
private

The Jacobian, for the transformation into square DP coordinates at the current point in the Dalitz plot.

Definition at line 496 of file LauIsobarDynamics.hh.

KMPropMap LauIsobarDynamics::kMatrixPropagators_
private

The K-matrix propagators.

Definition at line 445 of file LauIsobarDynamics.hh.

KMStringMap LauIsobarDynamics::kMatrixPropSet_
private

The names of the M-matrix components in the model mapped to their propagators.

Definition at line 448 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::m13BinWidth_
private

The bin width to use when integrating over m13.

Definition at line 472 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::m13Sq_
private

The invariant mass squared of the first and third daughters.

Definition at line 478 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::m23BinWidth_
private

The bin width to use when integrating over m23.

Definition at line 475 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::m23Sq_
private

The invariant mass squared of the second and third daughters.

Definition at line 481 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::mPrime_
private

The square Dalitz plot coordinate, m'.

Definition at line 484 of file LauIsobarDynamics.hh.

Int_t LauIsobarDynamics::nSigGenLoop_
private

The number of unsucessful attempts to generate an event so far.

Definition at line 532 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::parBarrierRadius_
private

The radius of the parent barrier factor for new amplitude components.

Definition at line 547 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::resBarrierRadius_
private

The radius of the resonance barrier factor for new amplitude components.

Definition at line 544 of file LauIsobarDynamics.hh.

std::vector<Int_t> LauIsobarDynamics::resIntAmp_
private

The index within the resonance maker for each amplitude component.

Definition at line 454 of file LauIsobarDynamics.hh.

std::vector<Int_t> LauIsobarDynamics::resPairAmp_
private

The index of the daughter not produced by the resonance for each amplitude component.

Definition at line 457 of file LauIsobarDynamics.hh.

std::vector<TString> LauIsobarDynamics::resTypAmp_
private

The resonance types of all of the amplitude components.

Definition at line 451 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::scfFraction_
private

The fraction of events that are poorly reconstructed (the self cross feed fraction) at the current point in the Dalitz plot.

Definition at line 493 of file LauIsobarDynamics.hh.

Bool_t LauIsobarDynamics::setBarrierRadius_
private

Should the radii of the resonance barrier factors be adjusted for new amplitude components.

Definition at line 541 of file LauIsobarDynamics.hh.

std::vector<LauAbsResonance*> LauIsobarDynamics::sigResonances_
private

The resonances in the model.

Definition at line 442 of file LauIsobarDynamics.hh.

Bool_t LauIsobarDynamics::symmetricalDP_
private

Whether the Dalitz plot is symmetrical.

Definition at line 463 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::thPrime_
private

The square Dalitz plot coordinate theta'.

Definition at line 487 of file LauIsobarDynamics.hh.

LauComplex LauIsobarDynamics::totAmp_
private

The total amplitude for the current event.

Definition at line 505 of file LauIsobarDynamics.hh.

std::vector<Int_t> LauIsobarDynamics::typDaug_
private

The PDG codes of the daughters.

Definition at line 460 of file LauIsobarDynamics.hh.


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