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

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

#include <LauIsobarDynamics.hh>

Public Types

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...
 

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...
 
void initialise (const std::vector< LauComplex > &coeffs)
 Initialise the Dalitz plot dynamics. More...
 
void recalculateNormalisation ()
 recalculate Normalization More...
 
void setIntFileName (const TString &fileName)
 Set the name of the file to which to save the results of the integrals. More...
 
void setIntegralBinWidths (const Double_t m13BinWidth, const Double_t m23BinWidth, const Double_t mPrimeBinWidth=0.001, const Double_t thPrimeBinWidth=0.001)
 Set the widths of the bins to use when integrating across the Dalitz plot or square Dalitz plot. More...
 
void setNarrowResonanceThreshold (const Double_t narrowWidth)
 Set the value below which a resonance width is considered to be narrow. More...
 
void setIntegralBinningFactor (const Double_t binningFactor)
 Set the factor relating the width of a narrow resonance and the binning size in its integration region. More...
 
void forceSymmetriseIntegration (const Bool_t force)
 Force the symmetrisation of the integration in m13 <-> m23 for non-symmetric but flavour-conjugate final states. More...
 
LauAbsResonanceaddResonance (const TString &resName, const Int_t resPairAmpInt, const LauAbsResonance::LauResonanceModel resType, const LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory=LauBlattWeisskopfFactor::Default)
 Add a resonance to the Dalitz plot. More...
 
LauAbsResonanceaddIncoherentResonance (const TString &resName, const Int_t resPairAmpInt, const LauAbsResonance::LauResonanceModel resType)
 Add an incoherent resonance to the Dalitz plot. More...
 
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...
 
void addKMatrixProdPole (const TString &poleName, const TString &propName, Int_t poleIndex, Bool_t useProdAdler=kFALSE)
 Add a K-matrix production pole term to the model. More...
 
void addKMatrixProdSVP (const TString &SVPName, const TString &propName, Int_t channelIndex, Bool_t useProdAdler=kFALSE)
 Add a K-matrix slowly-varying part (SVP) term 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...
 
Bool_t generate ()
 Generate a toy MC signal event. More...
 
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...
 
void calcLikelihoodInfo (const UInt_t iEvt)
 Calculate the likelihood (and all associated information) for the given event number. More...
 
void calcLikelihoodInfo (const Double_t m13Sq, const Double_t m23Sq)
 Calculate the likelihood (and all associated information) given values of the Dalitz plot coordinates. More...
 
void calcLikelihoodInfo (const Double_t m13Sq, const Double_t m23Sq, const Int_t tagCat)
 Calculate the likelihood (and all associated information) given values of the Dalitz plot coordinates and the tagging category. More...
 
void calcExtraInfo (const Bool_t init=kFALSE)
 Calculate the fit fractions, mean efficiency and total DP rate. More...
 
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...
 
Double_t getEventWeight ()
 Calculate the acceptance rate, for events with the current kinematics, when generating events according to the model. More...
 
const LauComplexgetEvtDPAmp () const
 Retrieve the total amplitude for the current event. More...
 
Double_t getEvtm13Sq () const
 Retrieve the invariant mass squared of the first and third daughters in the current event. More...
 
Double_t getEvtm23Sq () const
 Retrieve the invariant mass squared of the second and third daughters in the current event. More...
 
Double_t getEvtmPrime () const
 Retrieve the square Dalitz plot coordinate, m', for the current event. More...
 
Double_t getEvtthPrime () const
 Retrieve the square Dalitz plot coordinate, theta', for the current event. More...
 
Double_t getEvtEff () const
 Retrieve the efficiency for the current event. More...
 
Double_t getEvtScfFraction () const
 Retrieve the fraction of events that are poorly reconstructed (the self cross feed fraction) for the current event. More...
 
Double_t getEvtJacobian () const
 Retrieve the Jacobian, for the transformation into square DP coordinates, for the current event. More...
 
Double_t getEvtIntensity () const
 Retrieve the total intensity multiplied by the efficiency for the current event. More...
 
Double_t getEvtLikelihood () const
 Retrieve the likelihood for the current event. More...
 
LauComplex getDynamicAmp (const 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...
 
LauComplex getFullAmplitude (const Int_t resID) const
 Retrieve the Amplitude of resonance resID. 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...
 
void fillDataTree (const LauFitDataTree &fitDataTree)
 Fill the internal data structure that caches the resonance dynamics. More...
 
void modifyDataTree ()
 Recache the amplitude values for those that have changed. More...
 
Bool_t hasResonance (const TString &resName) const
 Check whether this model includes a named resonance. More...
 
Int_t resonanceIndex (const TString &resName) const
 Retrieve the index for the given resonance. More...
 
TString getConjResName (const TString &resName) const
 Retrieve the name of the charge conjugate of a named resonance. More...
 
const LauAbsResonancefindResonance (const TString &resName) const
 Retrieve the named resonance. More...
 
const LauAbsResonancegetResonance (const UInt_t resIndex) const
 Retrieve a resonance by its index. More...
 
void updateCoeffs (const std::vector< LauComplex > &coeffs)
 Update the complex coefficients for the resonances. More...
 
void flipHelicityForCPEigenstates (Bool_t boolean)
 Set the helicity flip flag for new amplitude components. More...
 
const LauParametergetMeanEff () const
 Retrieve the mean efficiency across the Dalitz plot. More...
 
const LauParametergetDPRate () 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 getnTotAmp () const
 Retrieve the total number of amplitude components. More...
 
UInt_t getnCohAmp () const
 Retrieve the number of coherent amplitude components. More...
 
UInt_t getnIncohAmp () const
 Retrieve the number of incoherent amplitude components. More...
 
Double_t getDPNorm () const
 Retrieve the normalisation factor for the log-likelihood function. More...
 
const LauDaughtersgetDaughters () const
 Retrieve the daughters. More...
 
const LauKinematicsgetKinematics () const
 Retrieve the Dalitz plot kinematics. More...
 
LauKinematicsgetKinematics ()
 Retrieve the Dalitz plot kinematics. More...
 
const LauAbsEffModelgetEffModel () const
 Retrieve the model for the efficiency across the Dalitz plot. More...
 
Bool_t usingScfModel () const
 Check whether a self cross feed fraction model is being used. More...
 
const std::vector< LauParameter > & getExtraParameters () const
 Retrieve any extra parameters/quantities (e.g. K-matrix total fit fractions) More...
 
std::vector< LauParameter * > & getFloatingParameters ()
 Retrieve the floating parameters of the resonance models. More...
 

Protected Member Functions

void initSummary ()
 Print a summary of the model to be used. More...
 
void initialiseVectors ()
 Initialise the internal storage for this model. More...
 
void resetNormVectors ()
 Zero the various values used to store integrals info. More...
 
void calcDPNormalisation ()
 Calculate the Dalitz plot normalisation integrals across the whole Dalitz plot. More...
 
std::vector< std::pair
< Double_t, Double_t > > 
formGapsFromRegions (const std::vector< std::pair< Double_t, Double_t > > &regions, const Double_t min, const Double_t max) const
 Form the regions that are produced by the spaces between narrow resonances. More...
 
void cullNullRegions (std::vector< LauDPPartialIntegralInfo * > &regions) const
 Removes entries in the vector of LauDPPartialIntegralInfo* that are null. More...
 
LauDPPartialIntegralInfonewDPIntegrationRegion (const Double_t minm13, const Double_t maxm13, const Double_t minm23, const Double_t maxm23, const Double_t m13BinWidth, const Double_t m23BinWidth, const Double_t precision, const UInt_t nAmp, const UInt_t nIncohAmp) const
 Wrapper for LauDPPartialIntegralInfo constructor. More...
 
void correctDPOverlap (std::vector< std::pair< Double_t, Double_t > > &regions, const std::vector< Double_t > &binnings) const
 Correct regions to ensure that the finest integration grid takes precedence. More...
 
std::vector
< LauDPPartialIntegralInfo * > 
m23IntegrationRegions (const std::vector< std::pair< Double_t, Double_t > > &m13Regions, const std::vector< std::pair< Double_t, Double_t > > &m23Regions, const std::vector< Double_t > &m13Binnings, const std::vector< Double_t > &m23Binnings, const Double_t precision, const Double_t defaultBinning) const
 Create the integration grid objects for the m23 narrow resonance regions, including the overlap regions with the m13 narrow resonances. More...
 
std::vector
< LauDPPartialIntegralInfo * > 
m13IntegrationRegions (const std::vector< std::pair< Double_t, Double_t > > &m13Regions, const std::vector< std::pair< Double_t, Double_t > > &m23Regions, const std::vector< Double_t > &m13Binnings, const Double_t precision, const Double_t defaultBinning) const
 Create the integration grid objects for the m13 narrow resonance regions, excluding the overlap regions with the m23 narrow resonances. More...
 
void calcDPNormalisationScheme ()
 Calculate the Dalitz plot normalisation integrals across the whole Dalitz plot. More...
 
void findIntegralsToBeRecalculated ()
 Determine which amplitudes and integrals need to be recalculated. More...
 
void calcDPPartialIntegral (LauDPPartialIntegralInfo *intInfo)
 Calculate the Dalitz plot normalisation integrals over a given range. More...
 
void writeIntegralsFile ()
 Write the results of the integrals (and related information) to a file. More...
 
void setFFTerm (const UInt_t index, const Double_t realPart, const Double_t imagPart)
 Set the dynamic part of the amplitude for a given amplitude component at the current point in the Dalitz plot. More...
 
void setIncohIntenTerm (const UInt_t index, const Double_t value)
 Set the dynamic part of the intensity for a given incoherent amplitude component at the current point in the Dalitz plot. More...
 
void calculateAmplitudes ()
 Calculate the amplitudes for all resonances for the current kinematics. More...
 
void calculateAmplitudes (LauDPPartialIntegralInfo *intInfo, const UInt_t m13Point, const UInt_t m23Point)
 Calculate or retrieve the cached value of the amplitudes for all resonances at the specified integration grid point. More...
 
void addGridPointToIntegrals (const Double_t weight)
 Add the amplitude values (with the appropriate weight) at the current grid point to the running integral values. More...
 
void calcTotalAmp (const Bool_t useEff)
 Calculate the total Dalitz plot amplitude at the current point in the Dalitz plot. More...
 
Double_t retrieveEfficiency ()
 Obtain the efficiency of the current event from the model. More...
 
Double_t retrieveScfFraction (Int_t tagCat)
 Obtain the self cross feed fraction of the current event from the model. More...
 
void setASqMaxVarValue (Double_t value)
 Set the maximum of A squared that has been found. More...
 
Double_t calcSigDPNorm ()
 Calculate the normalisation factor for the log-likelihood function. More...
 
LauComplex resAmp (const UInt_t index)
 Calculate the dynamic part of the amplitude for a given component at the current point in the Dalitz plot. More...
 
Double_t incohResAmp (const UInt_t index)
 Calculate the dynamic part of the intensity for a given incoherent component at the current point in the Dalitz plot. More...
 
void setDataEventNo (UInt_t iEvt)
 Load the data for a given event. More...
 
LauAbsResonancefindResonance (const TString &resName)
 Retrieve the named resonance. More...
 
LauAbsResonancegetResonance (const UInt_t resIndex)
 Retrieve a resonance by its index. More...
 
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 Member Functions

 LauIsobarDynamics (const LauIsobarDynamics &rhs)
 Copy constructor (not implemented) More...
 
LauIsobarDynamicsoperator= (const LauIsobarDynamics &rhs)
 Copy assignment operator (not implemented) More...
 

Private Attributes

LauDaughtersdaughters_
 The daughters of the decay. 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 nIncohAmp_
 The number of incoherent amplitude components. 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...
 
std::vector< LauAbsResonance * > sigResonances_
 The resonances in the model. More...
 
std::vector< LauAbsIncohRes * > sigIncohResonances_
 The incoherent 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 > resPairAmp_
 The index of the daughter not produced by the resonance for each amplitude component. More...
 
std::vector< TString > incohResTypAmp_
 The resonance types of all of the incoherent amplitude components. More...
 
std::vector< Int_t > incohResPairAmp_
 The index of the daughter not produced by the resonance for each incoherent 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 fullySymmetricDP_
 Whether the Dalitz plot is fully symmetric. More...
 
Bool_t flavConjDP_
 Whether the Dalitz plot is a flavour-conjugate final state. More...
 
Bool_t integralsDone_
 Whether the integrals have been performed. More...
 
Bool_t normalizationSchemeDone_
 Whether the scheme for the integration has been determined. More...
 
Bool_t forceSymmetriseIntegration_
 Force the symmetrisation of the integration in m13 <-> m23 for non-symmetric but flavour-conjugate final states. More...
 
std::vector
< LauDPPartialIntegralInfo * > 
dpPartialIntegralInfo_
 The storage of the integration scheme. 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 mPrimeBinWidth_
 The bin width to use when integrating over mPrime. More...
 
Double_t thPrimeBinWidth_
 The bin width to use when integrating over thetaPrime. More...
 
Double_t narrowWidth_
 The value below which a resonance width is considered to be narrow. More...
 
Double_t binningFactor_
 The factor relating the width of the narrowest resonance and the binning size. 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...
 
Int_t tagCat_
 The tagging category. 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 > incohInten_
 The dynamic part of the intensity for each incoherent 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 > fSqEffSum_
 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 flipHelicity_
 The helicity flip flag for new amplitude components. More...
 
Bool_t recalcNormalisation_
 Flag to recalculate the normalisation. More...
 
std::vector< LauParameter * > resonancePars_
 List of floating resonance parameters. More...
 
std::vector< Double_t > resonanceParValues_
 List of floating resonance parameter values from previous calculation. More...
 
std::vector< std::vector
< UInt_t > > 
resonanceParResIndex_
 Indices in sigResonances_ to point to the corresponding signal resonance(s) for each floating parameter. More...
 
std::set< UInt_t > integralsToBeCalculated_
 Resonance indices for which the amplitudes and integrals should be recalculated. More...
 

Detailed Description

Class for defining signal dynamics using the isobar model.

Definition at line 39 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 740 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 743 of file LauIsobarDynamics.hh.

The type used for containing multiple self cross feed fraction models for different categories (e.g. tagging categories)

Definition at line 43 of file LauIsobarDynamics.hh.

Member Enumeration Documentation

The possible statuses for toy MC generation.

Enumerator
GenOK 

Generation completed OK

MaxIterError 

Maximum allowed number of iterations completed without success (ASqMax is too high)

ASqMaxError 

An amplitude squared value was returned that was larger than the maximum expected (ASqMax is too low)

Definition at line 46 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 112 of file LauIsobarDynamics.cc.

LauIsobarDynamics::~LauIsobarDynamics ( )
virtual

Destructor.

Definition at line 170 of file LauIsobarDynamics.cc.

LauIsobarDynamics::LauIsobarDynamics ( const LauIsobarDynamics rhs)
private

Copy constructor (not implemented)

Member Function Documentation

void LauIsobarDynamics::addGridPointToIntegrals ( const Double_t  weight)
protected

Add the amplitude values (with the appropriate weight) at the current grid point to the running integral values.

Parameters
[in]weightthe weight to apply

Definition at line 1800 of file LauIsobarDynamics.cc.

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

Add an incoherent resonance to the Dalitz plot.

NB the stored order of resonances is:

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

Definition at line 724 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::addKMatrixProdPole ( const TString &  poleName,
const TString &  propName,
Int_t  poleIndex,
Bool_t  useProdAdler = kFALSE 
)

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

NB the stored order of resonances is:

Parameters
[in]poleNamethe name of the pole
[in]propNamethe name of the propagator to use
[in]poleIndexthe index of the pole within the propagator
[in]useProdAdlerboolean to turn on/off the production Adler zero factor (default = off)

Definition at line 797 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::addKMatrixProdSVP ( const TString &  SVPName,
const TString &  propName,
Int_t  channelIndex,
Bool_t  useProdAdler = kFALSE 
)

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

NB the stored order of resonances is:

Parameters
[in]SVPNamethe name of the term
[in]propNamethe name of the propagator to use
[in]channelIndexthe index of the channel within the propagator
[in]useProdAdlerboolean to turn on/off the production Adler zero factor (default = off)

Definition at line 845 of file LauIsobarDynamics.cc.

LauAbsResonance * LauIsobarDynamics::addResonance ( const TString &  resName,
const Int_t  resPairAmpInt,
const LauAbsResonance::LauResonanceModel  resType,
const LauBlattWeisskopfFactor::BlattWeisskopfCategory  bwCategory = LauBlattWeisskopfFactor::Default 
)

Add a resonance to the Dalitz plot.

NB the stored order of resonances is:

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
[in]bwCategorythe Blatt-Weisskopf barrier factor category
Returns
the newly created resonance

Definition at line 660 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::calcDPNormalisation ( )
protected

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

Definition at line 989 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::calcDPNormalisationScheme ( )
protected

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

Definition at line 1175 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::calcDPPartialIntegral ( LauDPPartialIntegralInfo intInfo)
protected

Calculate the Dalitz plot normalisation integrals over a given range.

Parameters
[in]intInfothe integration information object

Definition at line 1441 of file LauIsobarDynamics.cc.

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

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

Definition at line 1914 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::calcLikelihoodInfo ( const UInt_t  iEvt)

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

Parameters
[in]iEvtthe event number

Definition at line 2289 of file LauIsobarDynamics.cc.

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

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

Definition at line 2320 of file LauIsobarDynamics.cc.

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

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 2325 of file LauIsobarDynamics.cc.

Double_t LauIsobarDynamics::calcSigDPNorm ( )
protected

Calculate the normalisation factor for the log-likelihood function.

Returns
the normalisation factor

Definition at line 2130 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::calcTotalAmp ( const Bool_t  useEff)
protected

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

Parameters
[in]useEffwhether to apply efficiency corrections

Definition at line 1757 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::calculateAmplitudes ( )
protected

Calculate the amplitudes for all resonances for the current kinematics.

Definition at line 1664 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::calculateAmplitudes ( LauDPPartialIntegralInfo intInfo,
const UInt_t  m13Point,
const UInt_t  m23Point 
)
protected

Calculate or retrieve the cached value of the amplitudes for all resonances at the specified integration grid point.

Parameters
[in,out]intInfothe integration information object
[in]m13Pointthe grid index in m13
[in]m23Pointthe grid index in m23

Definition at line 1490 of file LauIsobarDynamics.cc.

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

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

Definition at line 2223 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::correctDPOverlap ( std::vector< std::pair< Double_t, Double_t > > &  regions,
const std::vector< Double_t > &  binnings 
) const
protected

Correct regions to ensure that the finest integration grid takes precedence.

Parameters
[in]regionsthe windows in invariant mass
[in]binningsthe corresponding binnings for each window

Definition at line 1030 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::cullNullRegions ( std::vector< LauDPPartialIntegralInfo * > &  regions) const
protected

Removes entries in the vector of LauDPPartialIntegralInfo* that are null.

Parameters
[in]regionsthe list of region pointers

Definition at line 1024 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 
)

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 770 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::fillDataTree ( const LauFitDataTree fitDataTree)

Fill the internal data structure that caches the resonance dynamics.

Parameters
[in]fitDataTreethe data source

Definition at line 2391 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::findIntegralsToBeRecalculated ( )
protected

Determine which amplitudes and integrals need to be recalculated.

Definition at line 229 of file LauIsobarDynamics.cc.

const LauAbsResonance * LauIsobarDynamics::findResonance ( const TString &  resName) const

Retrieve the named resonance.

Parameters
[in]resNamethe name of the resonance to retrieve
Returns
the requested resonance

Definition at line 966 of file LauIsobarDynamics.cc.

LauAbsResonance * LauIsobarDynamics::findResonance ( const TString &  resName)
protected

Retrieve the named resonance.

Parameters
[in]resNamethe name of the resonance to retrieve
Returns
the requested resonance

Definition at line 955 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 423 of file LauIsobarDynamics.hh.

void LauIsobarDynamics::forceSymmetriseIntegration ( const Bool_t  force)
inline

Force the symmetrisation of the integration in m13 <-> m23 for non-symmetric but flavour-conjugate final states.

This can be necessary for time-dependent fits (where interference terms between A and Abar need to be integrated)

Parameters
[in]forcetoggle forcing symmetrisation of the integration for apparently flavour-conjugate final states

Definition at line 128 of file LauIsobarDynamics.hh.

std::vector< std::pair< Double_t, Double_t > > LauIsobarDynamics::formGapsFromRegions ( const std::vector< std::pair< Double_t, Double_t > > &  regions,
const Double_t  min,
const Double_t  max 
) const
protected

Form the regions that are produced by the spaces between narrow resonances.

Parameters
[in]regionsthe regions defined around narrow resonances
[in]minthe minimum value of the invariant mass
[in]maxthe maximum value of the invariant mass
Returns
vector of pointers to LauDPPartialIntegralInfo objects that contain the individual coarse regions

Definition at line 1006 of file LauIsobarDynamics.cc.

Bool_t LauIsobarDynamics::generate ( )

Generate a toy MC signal event.

Returns
kTRUE if the event is successfully generated, kFALSE otherwise

Definition at line 2168 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 205 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 211 of file LauIsobarDynamics.hh.

TString LauIsobarDynamics::getConjResName ( const TString &  resName) const

Retrieve the name of the charge conjugate of a named resonance.

Parameters
[in]resNamethe resonance
Returns
the name of the charge conjugate

Definition at line 2533 of file LauIsobarDynamics.cc.

const LauDaughters* LauIsobarDynamics::getDaughters ( ) const
inline

Retrieve the daughters.

Returns
the daughters

Definition at line 477 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::getDPNorm ( ) const
inline

Retrieve the normalisation factor for the log-likelihood function.

Returns
the normalisation factor

Definition at line 471 of file LauIsobarDynamics.hh.

const LauParameter& LauIsobarDynamics::getDPRate ( ) const
inline

Retrieve the overall Dalitz plot rate.

Returns
the overall Dalitz plot rate

Definition at line 435 of file LauIsobarDynamics.hh.

LauComplex LauIsobarDynamics::getDynamicAmp ( const Int_t  resID) const
inline

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 component within the model
Returns
the amplitude of the given component

Definition at line 342 of file LauIsobarDynamics.hh.

const LauAbsEffModel* LauIsobarDynamics::getEffModel ( ) const
inline

Retrieve the model for the efficiency across the Dalitz plot.

Returns
the efficiency model

Definition at line 495 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::getEventWeight ( )

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

Returns
the weight for the current kinematics

Definition at line 2498 of file LauIsobarDynamics.cc.

const LauComplex& LauIsobarDynamics::getEvtDPAmp ( ) const
inline

Retrieve the total amplitude for the current event.

Returns
the total amplitude

Definition at line 278 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::getEvtEff ( ) const
inline

Retrieve the efficiency for the current event.

Returns
the efficiency for the current event

Definition at line 308 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::getEvtIntensity ( ) const
inline

Retrieve the total intensity multiplied by the efficiency for the current event.

Returns
the total intensity multiplied by the efficiency for the current event

Definition at line 326 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::getEvtJacobian ( ) const
inline

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

Returns
the Jacobian for the current event

Definition at line 320 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::getEvtLikelihood ( ) const
inline

Retrieve the likelihood for the current event.

The likelihood is the normalised total intensity: evtLike_ = ASq_/DPNorm_

Returns
the likelihood for the current event

Definition at line 335 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::getEvtm13Sq ( ) const
inline

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

Definition at line 284 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::getEvtm23Sq ( ) const
inline

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

Definition at line 290 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::getEvtmPrime ( ) const
inline

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

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

Definition at line 296 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::getEvtScfFraction ( ) const
inline

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

Definition at line 314 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::getEvtthPrime ( ) const
inline

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

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

Definition at line 302 of file LauIsobarDynamics.hh.

const std::vector<LauParameter>& LauIsobarDynamics::getExtraParameters ( ) const
inline

Retrieve any extra parameters/quantities (e.g. K-matrix total fit fractions)

Returns
any extra parameters

Definition at line 507 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 361 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 355 of file LauIsobarDynamics.hh.

const LauParArray& LauIsobarDynamics::getFitFractions ( ) const
inline

Retrieve the fit fractions for the amplitude components.

Returns
the fit fractions

Definition at line 441 of file LauIsobarDynamics.hh.

const LauParArray& LauIsobarDynamics::getFitFractionsEfficiencyUncorrected ( ) const
inline

Retrieve the fit fractions for the amplitude components.

Returns
the fit fractions

Definition at line 447 of file LauIsobarDynamics.hh.

std::vector<LauParameter*>& LauIsobarDynamics::getFloatingParameters ( )
inline

Retrieve the floating parameters of the resonance models.

Returns
the list of floating parameters

Definition at line 513 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 367 of file LauIsobarDynamics.hh.

LauComplex LauIsobarDynamics::getFullAmplitude ( const Int_t  resID) const
inline

Retrieve the Amplitude of resonance resID.

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

Definition at line 349 of file LauIsobarDynamics.hh.

const LauKinematics* LauIsobarDynamics::getKinematics ( ) const
inline

Retrieve the Dalitz plot kinematics.

Returns
the Dalitz plot kinematics

Definition at line 483 of file LauIsobarDynamics.hh.

LauKinematics* LauIsobarDynamics::getKinematics ( )
inline

Retrieve the Dalitz plot kinematics.

Returns
the Dalitz plot kinematics

Definition at line 489 of file LauIsobarDynamics.hh.

const LauParameter& LauIsobarDynamics::getMeanEff ( ) const
inline

Retrieve the mean efficiency across the Dalitz plot.

Returns
the mean efficiency across the Dalitz plot

Definition at line 429 of file LauIsobarDynamics.hh.

UInt_t LauIsobarDynamics::getnCohAmp ( ) const
inline

Retrieve the number of coherent amplitude components.

Returns
the number of coherent amplitude components

Definition at line 459 of file LauIsobarDynamics.hh.

UInt_t LauIsobarDynamics::getnIncohAmp ( ) const
inline

Retrieve the number of incoherent amplitude components.

Returns
the number of incoherent amplitude components

Definition at line 465 of file LauIsobarDynamics.hh.

UInt_t LauIsobarDynamics::getnTotAmp ( ) const
inline

Retrieve the total number of amplitude components.

Returns
the total number of amplitude components

Definition at line 453 of file LauIsobarDynamics.hh.

const LauAbsResonance * LauIsobarDynamics::getResonance ( const UInt_t  resIndex) const

Retrieve a resonance by its index.

Parameters
[in]resIndexthe index of the resonance to retrieve
Returns
the requested resonance

Definition at line 931 of file LauIsobarDynamics.cc.

LauAbsResonance * LauIsobarDynamics::getResonance ( const UInt_t  resIndex)
protected

Retrieve a resonance by its index.

Parameters
[in]resIndexthe index of the resonance to retrieve
Returns
the requested resonance

Definition at line 943 of file LauIsobarDynamics.cc.

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 2100 of file LauIsobarDynamics.cc.

Bool_t LauIsobarDynamics::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.

Uses the accept/reject method.

Returns
kTRUE if the event has been accepted, kFALSE otherwise

Definition at line 2477 of file LauIsobarDynamics.cc.

Bool_t LauIsobarDynamics::hasResonance ( const TString &  resName) const

Check whether this model includes a named resonance.

Parameters
[in]resNamethe resonance
Returns
true if the resonance is present, false otherwise

Definition at line 921 of file LauIsobarDynamics.cc.

Double_t LauIsobarDynamics::incohResAmp ( const UInt_t  index)
protected

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

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

Definition at line 1865 of file LauIsobarDynamics.cc.

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

Initialise the Dalitz plot dynamics.

Parameters
[in]coeffsthe complex coefficients for the resonances

Definition at line 252 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::initialiseVectors ( )
protected

Initialise the internal storage for this model.

Definition at line 483 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::initSummary ( )
protected

Print a summary of the model to be used.

Definition at line 421 of file LauIsobarDynamics.cc.

std::vector< LauDPPartialIntegralInfo * > LauIsobarDynamics::m13IntegrationRegions ( const std::vector< std::pair< Double_t, Double_t > > &  m13Regions,
const std::vector< std::pair< Double_t, Double_t > > &  m23Regions,
const std::vector< Double_t > &  m13Binnings,
const Double_t  precision,
const Double_t  defaultBinning 
) const
protected

Create the integration grid objects for the m13 narrow resonance regions, excluding the overlap regions with the m23 narrow resonances.

The regions will have a m13Binnings x defaultBinning grid. The overlap regions are created by the m23IntegrationRegions function.

Parameters
[in]m13Regionsthe limits of each narrow-resonance region in m13
[in]m23Regionsthe limits of each narrow-resonance region in m23
[in]m13Binningsthe binning of each narrow-resonance region in m13
[in]precisionthe precision required for the Gauss-Legendre weights
[in]defaultBinningthe binning used in the bulk of the phase space
Returns
vector of pointers to LauDPPartialIntegralInfo objects that contain the individual regions

Definition at line 1051 of file LauIsobarDynamics.cc.

std::vector< LauDPPartialIntegralInfo * > LauIsobarDynamics::m23IntegrationRegions ( const std::vector< std::pair< Double_t, Double_t > > &  m13Regions,
const std::vector< std::pair< Double_t, Double_t > > &  m23Regions,
const std::vector< Double_t > &  m13Binnings,
const std::vector< Double_t > &  m23Binnings,
const Double_t  precision,
const Double_t  defaultBinning 
) const
protected

Create the integration grid objects for the m23 narrow resonance regions, including the overlap regions with the m13 narrow resonances.

The overlap regions will have an m13Binnings x m23Binnings grid. The other regions will have a defaultBinning x m23Binnings grid.

Parameters
[in]m13Regionsthe limits of each narrow-resonance region in m13
[in]m23Regionsthe limits of each narrow-resonance region in m23
[in]m13Binningsthe binning of each narrow-resonance region in m13
[in]m23Binningsthe binning of each narrow-resonance region in m23
[in]precisionthe precision required for the Gauss-Legendre weights
[in]defaultBinningthe binning used in the bulk of the phase space
Returns
vector of pointers to LauDPPartialIntegralInfo objects that contain the individual regions

Definition at line 1101 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 231 of file LauIsobarDynamics.hh.

void LauIsobarDynamics::modifyDataTree ( )

Recache the amplitude values for those that have changed.

Definition at line 2354 of file LauIsobarDynamics.cc.

LauDPPartialIntegralInfo * LauIsobarDynamics::newDPIntegrationRegion ( const Double_t  minm13,
const Double_t  maxm13,
const Double_t  minm23,
const Double_t  maxm23,
const Double_t  m13BinWidth,
const Double_t  m23BinWidth,
const Double_t  precision,
const UInt_t  nAmp,
const UInt_t  nIncohAmp 
) const
protected

Wrapper for LauDPPartialIntegralInfo constructor.

Parameters
[in]minm13the minimum of the m13 range
[in]maxm13the maximum of the m13 range
[in]minm23the minimum of the m23 range
[in]maxm23the maximum of the m23 range
[in]m13BinWidththe m13 bin width
[in]m23BinWidththe m23 bin width
[in]precisionthe precision required for the Gauss-Legendre weights
[in]nAmpthe number of coherent amplitude components
[in]nIncohAmpthe number of incoherent amplitude components
Returns
0 if the integration region has no internal points, otherwise returns a pointer to the newly constructed LauDPPartialIntegralInfo object

Definition at line 1157 of file LauIsobarDynamics.cc.

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

Copy assignment operator (not implemented)

void LauIsobarDynamics::recalculateNormalisation ( )

recalculate Normalization

Definition at line 211 of file LauIsobarDynamics.cc.

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

Remove the charge from the given particle name.

Parameters
[in,out]stringthe particle name

Definition at line 977 of file LauIsobarDynamics.cc.

LauComplex LauIsobarDynamics::resAmp ( const UInt_t  index)
protected

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 1840 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::resetNormVectors ( )
protected

Zero the various values used to store integrals info.

Definition at line 186 of file LauIsobarDynamics.cc.

Int_t LauIsobarDynamics::resonanceIndex ( const TString &  resName) const

Retrieve the index for the given resonance.

Parameters
[in]resNamethe resonance
Returns
the index of the resonance if it is present, -1 otherwise

Definition at line 891 of file LauIsobarDynamics.cc.

Double_t LauIsobarDynamics::retrieveEfficiency ( )
protected

Obtain the efficiency of the current event from the model.

Returns
the efficiency

Definition at line 2550 of file LauIsobarDynamics.cc.

Double_t LauIsobarDynamics::retrieveScfFraction ( Int_t  tagCat)
protected

Obtain the self cross feed fraction of the current event from the model.

Parameters
[in]tagCatthe tagging category of the current event
Returns
the self cross feed fraction

Definition at line 2559 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 199 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 678 of file LauIsobarDynamics.hh.

void LauIsobarDynamics::setDataEventNo ( UInt_t  iEvt)
protected

Load the data for a given event.

Parameters
[in]iEvtthe number of the event

Definition at line 2270 of file LauIsobarDynamics.cc.

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

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 1892 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::setIncohIntenTerm ( const UInt_t  index,
const Double_t  value 
)
protected

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

Parameters
[in]indexthe index of the incoherent amplitude component
[in]valuethe intensity

Definition at line 1903 of file LauIsobarDynamics.cc.

void LauIsobarDynamics::setIntegralBinningFactor ( const Double_t  binningFactor)
inline

Set the factor relating the width of a narrow resonance and the binning size in its integration region.

Narrow resonances trigger different integration behaviour - dividing the DP into regions where a finer binning is used. This can cause high memory usage, so use this method and LauIsobarDynamics::setNarrowResonanceThreshold to tune this behaviour, if needed.

Parameters
[in]binningFactorthe factor by which the resonance width is divided to obtain the bin size (defaults to 100)

Definition at line 120 of file LauIsobarDynamics.hh.

void LauIsobarDynamics::setIntegralBinWidths ( const Double_t  m13BinWidth,
const Double_t  m23BinWidth,
const Double_t  mPrimeBinWidth = 0.001,
const Double_t  thPrimeBinWidth = 0.001 
)

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

Specify the bin widths required when performing the DP integration. Note that the integration is not performed in m13^2 vs m23^2 space but in either m13 vs m23 space or mPrime vs thetaPrime space, with the appropriate Jacobian applied. The default bin widths in m13 vs m23 space are 0.005 GeV. The default bin widths in mPrime vs thetaPrime space are 0.001.

Parameters
[in]m13BinWidththe bin width to use when integrating over m13
[in]m23BinWidththe bin width to use when integrating over m23
[in]mPrimeBinWidththe bin width to use when integrating over mPrime
[in]thPrimeBinWidththe bin width to use when integrating over thetaPrime

Definition at line 1429 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 84 of file LauIsobarDynamics.hh.

void LauIsobarDynamics::setNarrowResonanceThreshold ( const Double_t  narrowWidth)
inline

Set the value below which a resonance width is considered to be narrow.

Narrow resonances trigger different integration behaviour - dividing the DP into regions where a finer binning is used. This can cause high memory usage, so use this method and LauIsobarDynamics::setIntegralBinningFactor to tune this behaviour, if needed.

Parameters
[in]narrowWidththe value below which a resonance is considered to be narrow (defaults to 0.02 GeV/c2)

Definition at line 111 of file LauIsobarDynamics.hh.

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

Update the complex coefficients for the resonances.

Parameters
[in]coeffsthe new set of coefficients

Definition at line 2512 of file LauIsobarDynamics.cc.

Bool_t LauIsobarDynamics::usingScfModel ( ) const
inline

Check whether a self cross feed fraction model is being used.

Returns
true if a self cross feed fraction model is being used, false otherwise

Definition at line 501 of file LauIsobarDynamics.hh.

void LauIsobarDynamics::writeIntegralsFile ( )
protected

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

Definition at line 539 of file LauIsobarDynamics.cc.

Member Data Documentation

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

The complex coefficients for the amplitude components.

Definition at line 768 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::ASq_
private

The value of A squared for the current event.

Definition at line 888 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::aSqMaxSet_
private

The maximum allowed value of A squared.

Definition at line 930 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 933 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::binningFactor_
private

The factor relating the width of the narrowest resonance and the binning size.

Definition at line 861 of file LauIsobarDynamics.hh.

LauCacheData* LauIsobarDynamics::currentEvent_
private

The cached data for the current event.

Definition at line 789 of file LauIsobarDynamics.hh.

std::vector<LauCacheData*> LauIsobarDynamics::data_
private

The cached data for all events.

Definition at line 786 of file LauIsobarDynamics.hh.

LauDaughters* LauIsobarDynamics::daughters_
private

The daughters of the decay.

Definition at line 746 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::DPNorm_
private

The normalisation factor for the log-likelihood function.

Definition at line 771 of file LauIsobarDynamics.hh.

std::vector<LauDPPartialIntegralInfo*> LauIsobarDynamics::dpPartialIntegralInfo_
private

The storage of the integration scheme.

Definition at line 840 of file LauIsobarDynamics.hh.

LauParameter LauIsobarDynamics::DPRate_
private

The overall Dalitz plot rate.

Definition at line 780 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::eff_
private

The efficiency at the current point in the Dalitz plot.

Definition at line 879 of file LauIsobarDynamics.hh.

LauAbsEffModel* LauIsobarDynamics::effModel_
private

The efficiency model across the Dalitz plot.

Definition at line 752 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::evtLike_
private

The normalised likelihood for the current event.

Definition at line 891 of file LauIsobarDynamics.hh.

std::vector<LauParameter> LauIsobarDynamics::extraParameters_
private

any extra parameters/quantities (e.g. K-matrix total fit fractions)

Definition at line 792 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 909 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 900 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 906 of file LauIsobarDynamics.hh.

LauParArray LauIsobarDynamics::fitFrac_
private

The fit fractions for the amplitude components.

Definition at line 774 of file LauIsobarDynamics.hh.

LauParArray LauIsobarDynamics::fitFracEffUnCorr_
private

The efficiency-uncorrected fit fractions for the amplitude components.

Definition at line 777 of file LauIsobarDynamics.hh.

Bool_t LauIsobarDynamics::flavConjDP_
private

Whether the Dalitz plot is a flavour-conjugate final state.

Definition at line 828 of file LauIsobarDynamics.hh.

Bool_t LauIsobarDynamics::flipHelicity_
private

The helicity flip flag for new amplitude components.

Definition at line 936 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 921 of file LauIsobarDynamics.hh.

Bool_t LauIsobarDynamics::forceSymmetriseIntegration_
private

Force the symmetrisation of the integration in m13 <-> m23 for non-symmetric but flavour-conjugate final states.

Definition at line 837 of file LauIsobarDynamics.hh.

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

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

Definition at line 918 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 915 of file LauIsobarDynamics.hh.

Bool_t LauIsobarDynamics::fullySymmetricDP_
private

Whether the Dalitz plot is fully symmetric.

Definition at line 825 of file LauIsobarDynamics.hh.

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

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

Definition at line 912 of file LauIsobarDynamics.hh.

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

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

Definition at line 816 of file LauIsobarDynamics.hh.

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

The resonance types of all of the incoherent amplitude components.

Definition at line 813 of file LauIsobarDynamics.hh.

Bool_t LauIsobarDynamics::integralsDone_
private

Whether the integrals have been performed.

Definition at line 831 of file LauIsobarDynamics.hh.

std::set<UInt_t> LauIsobarDynamics::integralsToBeCalculated_
private

Resonance indices for which the amplitudes and integrals should be recalculated.

Definition at line 951 of file LauIsobarDynamics.hh.

TString LauIsobarDynamics::intFileName_
private

The name of the file to save integrals to.

Definition at line 843 of file LauIsobarDynamics.hh.

Int_t LauIsobarDynamics::iterationsMax_
private

The maximum allowed number of attempts when generating an event.

Definition at line 924 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 885 of file LauIsobarDynamics.hh.

LauKinematics* LauIsobarDynamics::kinematics_
private

The kinematics of the decay.

Definition at line 749 of file LauIsobarDynamics.hh.

KMPropMap LauIsobarDynamics::kMatrixPropagators_
private

The K-matrix propagators.

Definition at line 801 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 804 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::m13BinWidth_
private

The bin width to use when integrating over m13.

Definition at line 846 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::m13Sq_
private

The invariant mass squared of the first and third daughters.

Definition at line 864 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::m23BinWidth_
private

The bin width to use when integrating over m23.

Definition at line 849 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::m23Sq_
private

The invariant mass squared of the second and third daughters.

Definition at line 867 of file LauIsobarDynamics.hh.

LauParameter LauIsobarDynamics::meanDPEff_
private

The mean efficiency across the Dalitz plot.

Definition at line 783 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::mPrime_
private

The square Dalitz plot coordinate, m'.

Definition at line 870 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::mPrimeBinWidth_
private

The bin width to use when integrating over mPrime.

Definition at line 852 of file LauIsobarDynamics.hh.

UInt_t LauIsobarDynamics::nAmp_
private

The number of amplitude components.

Definition at line 762 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::narrowWidth_
private

The value below which a resonance width is considered to be narrow.

Definition at line 858 of file LauIsobarDynamics.hh.

UInt_t LauIsobarDynamics::nIncohAmp_
private

The number of incoherent amplitude components.

Definition at line 765 of file LauIsobarDynamics.hh.

Bool_t LauIsobarDynamics::normalizationSchemeDone_
private

Whether the scheme for the integration has been determined.

Definition at line 834 of file LauIsobarDynamics.hh.

Int_t LauIsobarDynamics::nSigGenLoop_
private

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

Definition at line 927 of file LauIsobarDynamics.hh.

Bool_t LauIsobarDynamics::recalcNormalisation_
private

Flag to recalculate the normalisation.

Definition at line 939 of file LauIsobarDynamics.hh.

std::vector< std::vector<UInt_t> > LauIsobarDynamics::resonanceParResIndex_
private

Indices in sigResonances_ to point to the corresponding signal resonance(s) for each floating parameter.

Definition at line 948 of file LauIsobarDynamics.hh.

std::vector<LauParameter*> LauIsobarDynamics::resonancePars_
private

List of floating resonance parameters.

Definition at line 942 of file LauIsobarDynamics.hh.

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

List of floating resonance parameter values from previous calculation.

Definition at line 945 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 810 of file LauIsobarDynamics.hh.

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

The resonance types of all of the amplitude components.

Definition at line 807 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 882 of file LauIsobarDynamics.hh.

LauTagCatScfFractionModelMap LauIsobarDynamics::scfFractionModel_
private

The self cross feed fraction models across the Dalitz plot.

These model the fraction of signal events that are poorly reconstructed (the self cross feed fraction) as a function of Dalitz plot position. If the self cross feed is depependent on the tagging category then seperate models can be defined.

Definition at line 759 of file LauIsobarDynamics.hh.

std::vector<LauAbsIncohRes*> LauIsobarDynamics::sigIncohResonances_
private

The incoherent resonances in the model.

Definition at line 798 of file LauIsobarDynamics.hh.

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

The resonances in the model.

Definition at line 795 of file LauIsobarDynamics.hh.

Bool_t LauIsobarDynamics::symmetricalDP_
private

Whether the Dalitz plot is symmetrical.

Definition at line 822 of file LauIsobarDynamics.hh.

Int_t LauIsobarDynamics::tagCat_
private

The tagging category.

Definition at line 876 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::thPrime_
private

The square Dalitz plot coordinate theta'.

Definition at line 873 of file LauIsobarDynamics.hh.

Double_t LauIsobarDynamics::thPrimeBinWidth_
private

The bin width to use when integrating over thetaPrime.

Definition at line 855 of file LauIsobarDynamics.hh.

LauComplex LauIsobarDynamics::totAmp_
private

The total amplitude for the current event.

Definition at line 894 of file LauIsobarDynamics.hh.

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

The PDG codes of the daughters.

Definition at line 819 of file LauIsobarDynamics.hh.


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