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

Class for defining the abstract interface for signal Dalitz plot dynamics. More...

#include <LauAbsDPDynamics.hh>

Inheritance diagram for LauAbsDPDynamics:
LauIsobarDynamics

Public Types

enum  ToyMCStatus { GenOK, MaxIterError, ASqMaxError }
 The possible statuses for toy MC generation. More...
 
typedef std::map< Int_t,
LauEffModel * > 
LauTagCatScfFractionModelMap
 The type used for containing multiple self cross feed fraction models for different categories (e.g. tagging categories) More...
 

Public Member Functions

 LauAbsDPDynamics (LauDaughters *daughters, LauEffModel *effModel, LauEffModel *scfFractionModel=0)
 Constructor. More...
 
 LauAbsDPDynamics (LauDaughters *daughters, LauEffModel *effModel, const LauTagCatScfFractionModelMap &scfFractionModel)
 Constructor. More...
 
virtual ~LauAbsDPDynamics ()
 Destructor. More...
 
virtual void addResonance (const TString &resName, Int_t resPairAmpInt, const TString &resType, Double_t newMass, Double_t newWidth, Int_t newSpin)=0
 Add a resonance to the Dalitz plot. More...
 
virtual void initialise (const std::vector< LauComplex > &coeffs)=0
 Initialise the Dalitz plot dynamics. 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 void fillDataTree (const LauFitDataTree &inputFitTree)=0
 Obtain data from a fit tree. More...
 
virtual void setDataEventNo (UInt_t iEvt)
 Load the data for a given event. 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...
 
virtual Bool_t generate ()=0
 Generate a toy MC signal event. More...
 
virtual ToyMCStatus checkToyMC (Bool_t printErrorMessages=kTRUE, Bool_t printInfoMessages=kFALSE)=0
 Check the status of the toy MC generation. More...
 
virtual void calcLikelihoodInfo (Double_t m13Sq, Double_t m23Sq)=0
 Calculate the likelihood (and all associated information) given values of the Dalitz plot coordinates. More...
 
virtual void calcLikelihoodInfo (UInt_t iEvt)=0
 Calculate the likelihood (and all associated information) for the given event number. More...
 
virtual Double_t getEvtLikelihood () const =0
 Retrieve the likelihood for the current event. More...
 
virtual Double_t getEvtm13Sq () const =0
 Retrieve the invariant mass squared of the first and third daughters in the current event. More...
 
virtual Double_t getEvtm23Sq () const =0
 Retrieve the invariant mass squared of the second and third daughters in the current event. More...
 
virtual Double_t getEvtmPrime () const =0
 Retrieve the square Dalitz plot coordinate, m', for the current event. More...
 
virtual Double_t getEvtthPrime () const =0
 Retrieve the square Dalitz plot coordinate, theta', for the current event. More...
 
virtual Double_t getEvtEff () const =0
 Retrieve the efficiency for the current event. More...
 
virtual Double_t getEvtJacobian () const =0
 Retrieve the Jacobian, for the transformation into square DP coordinates, for the current event. More...
 
virtual Double_t getEvtScfFraction () const =0
 Retrieve the fraction of events that are poorly reconstructed (the self cross feed fraction) in the Dalitz plot bin of the current event. More...
 
virtual const LauComplexgetEvtDPAmp () const =0
 Retrieve the total amplitude of all amplitude components at the current point in the Dalitz plot. More...
 
virtual LauComplex getDynamicAmp (Int_t resID) const =0
 Retrieve the amplitude of the given amplitude component at the current point in the Dalitz plot. More...
 
virtual void calcExtraInfo (Bool_t init=kFALSE)=0
 Calculate the fit fractions, mean efficiency and total DP rate. More...
 
virtual Bool_t gotReweightedEvent ()=0
 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 ()=0
 Calculate the acceptance rate, for events with the current kinematics, when generating events according to the model. 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...
 
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...
 
LauEffModelgetEffModel ()
 Retrieve the model for the efficiency across the Dalitz plot. More...
 
LauEffModelgetScfFractionModel ()
 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, LauEffModel * > 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 Double_t calcSigDPNorm ()=0
 Calculate the normalisation factor for the log-likelihood function. More...
 
virtual LauAbsResonancefindResonance (const TString &name)=0
 Retrieve the named resonance. More...
 
virtual const LauAbsResonancefindResonance (const TString &name) const =0
 Retrieve the named resonance. More...
 

Protected Attributes

LauDaughtersdaughters_
 The daughters of the decay. More...
 
LauResonanceMakerresonanceMaker_
 Object to create resonances. More...
 
LauKinematicskinematics_
 The kinematics of the decay. More...
 
LauEffModeleffModel_
 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...
 
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 the abstract interface for signal Dalitz plot dynamics.

Definition at line 39 of file LauAbsDPDynamics.hh.

Member Typedef Documentation

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

Definition at line 43 of file LauAbsDPDynamics.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 65 of file LauAbsDPDynamics.hh.

Constructor & Destructor Documentation

LauAbsDPDynamics::LauAbsDPDynamics ( LauDaughters daughters,
LauEffModel effModel,
LauEffModel 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 32 of file LauAbsDPDynamics.cc.

LauAbsDPDynamics::LauAbsDPDynamics ( LauDaughters daughters,
LauEffModel effModel,
const LauTagCatScfFractionModelMap scfFractionModel 
)

Constructor.

Parameters
[in]daughtersthe daughters of the decay
[in]effModelthe model to describe 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 50 of file LauAbsDPDynamics.cc.

LauAbsDPDynamics::~LauAbsDPDynamics ( )
virtual

Destructor.

Definition at line 66 of file LauAbsDPDynamics.cc.

Member Function Documentation

virtual void LauAbsDPDynamics::addResonance ( const TString &  resName,
Int_t  resPairAmpInt,
const TString &  resType,
Double_t  newMass,
Double_t  newWidth,
Int_t  newSpin 
)
pure 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 (the bachelor)
[in]resTypethe type of the resonance. Allowed types are: flatte, relbw, dabba, kappa, sigma, lass-bw, lass-nr, lass, gs, nrmodel, bellesymnr and bellenr
[in]newMassset a custom mass for the resonance
[in]newWidthset a custom width for the resonance
[in]newSpinset a custom spin for the resonance

Implemented in LauIsobarDynamics.

virtual void LauAbsDPDynamics::calcExtraInfo ( Bool_t  init = kFALSE)
pure virtual

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

Parameters
[in]initwhether the calculated values should be used to generate toys and as the initial values when fitting

Implemented in LauIsobarDynamics.

virtual void LauAbsDPDynamics::calcLikelihoodInfo ( Double_t  m13Sq,
Double_t  m23Sq 
)
pure 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

Implemented in LauIsobarDynamics.

virtual void LauAbsDPDynamics::calcLikelihoodInfo ( UInt_t  iEvt)
pure virtual

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

Parameters
[in]iEvtthe event number

Implemented in LauIsobarDynamics.

virtual Double_t LauAbsDPDynamics::calcSigDPNorm ( )
protectedpure virtual

Calculate the normalisation factor for the log-likelihood function.

Returns
the normalisation factor

Implemented in LauIsobarDynamics.

virtual ToyMCStatus LauAbsDPDynamics::checkToyMC ( Bool_t  printErrorMessages = kTRUE,
Bool_t  printInfoMessages = kFALSE 
)
pure 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

Implemented in LauIsobarDynamics.

virtual void LauAbsDPDynamics::fillDataTree ( const LauFitDataTree inputFitTree)
pure virtual

Obtain data from a fit tree.

Parameters
[in]inputFitTreethe tree

Implemented in LauIsobarDynamics.

virtual LauAbsResonance* LauAbsDPDynamics::findResonance ( const TString &  name)
protectedpure virtual

Retrieve the named resonance.

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

Implemented in LauIsobarDynamics.

virtual const LauAbsResonance* LauAbsDPDynamics::findResonance ( const TString &  name) const
protectedpure virtual

Retrieve the named resonance.

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

Implemented in LauIsobarDynamics.

virtual Bool_t LauAbsDPDynamics::generate ( )
pure virtual

Generate a toy MC signal event.

Returns
true if the event is successfully generated, false otherwise

Implemented in LauIsobarDynamics.

const std::vector<LauCacheData*>& LauAbsDPDynamics::getCacheData ( ) const
inline

Retrieve the cached data.

Returns
the cached data

Definition at line 287 of file LauAbsDPDynamics.hh.

TString LauAbsDPDynamics::getConjResName ( const TString &  resName) const
virtual

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

LauDaughters* LauAbsDPDynamics::getDaughters ( )
inline

Retrieve the daughters.

Returns
the daughters

Definition at line 293 of file LauAbsDPDynamics.hh.

Double_t LauAbsDPDynamics::getDPNorm ( ) const
inline

Retrieve the normalisation factor for the log-likelihood function.

Returns
the normalisation factor

Definition at line 275 of file LauAbsDPDynamics.hh.

LauParameter LauAbsDPDynamics::getDPRate ( ) const
inline

Retrieve the overall Dalitz plot rate.

Returns
the overall Dalitz plot rate

Definition at line 251 of file LauAbsDPDynamics.hh.

virtual LauComplex LauAbsDPDynamics::getDynamicAmp ( Int_t  resID) const
pure virtual

Retrieve 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

Implemented in LauIsobarDynamics.

LauEffModel* LauAbsDPDynamics::getEffModel ( )
inline

Retrieve the model for the efficiency across the Dalitz plot.

Returns
the efficiency model

Definition at line 311 of file LauAbsDPDynamics.hh.

virtual Double_t LauAbsDPDynamics::getEventWeight ( )
pure 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

Implemented in LauIsobarDynamics.

virtual const LauComplex& LauAbsDPDynamics::getEvtDPAmp ( ) const
pure virtual

Retrieve the total amplitude of all amplitude components at the current point in the Dalitz plot.

Returns
the total amplitude

Implemented in LauIsobarDynamics.

virtual Double_t LauAbsDPDynamics::getEvtEff ( ) const
pure virtual

Retrieve the efficiency for the current event.

Returns
the efficiency for the current event

Implemented in LauIsobarDynamics.

virtual Double_t LauAbsDPDynamics::getEvtJacobian ( ) const
pure virtual

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

Returns
the Jacobian for the current event

Implemented in LauIsobarDynamics.

virtual Double_t LauAbsDPDynamics::getEvtLikelihood ( ) const
pure virtual

Retrieve the likelihood for the current event.

Returns
the likelihood for the current event

Implemented in LauIsobarDynamics.

virtual Double_t LauAbsDPDynamics::getEvtm13Sq ( ) const
pure virtual

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

Implemented in LauIsobarDynamics.

virtual Double_t LauAbsDPDynamics::getEvtm23Sq ( ) const
pure virtual

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

Implemented in LauIsobarDynamics.

virtual Double_t LauAbsDPDynamics::getEvtmPrime ( ) const
pure virtual

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

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

Implemented in LauIsobarDynamics.

virtual Double_t LauAbsDPDynamics::getEvtScfFraction ( ) const
pure virtual

Retrieve the fraction of events that are poorly reconstructed (the self cross feed fraction) in the Dalitz plot bin of the current event.

Returns
the self cross feed fraction for the current event

Implemented in LauIsobarDynamics.

virtual Double_t LauAbsDPDynamics::getEvtthPrime ( ) const
pure virtual

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

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

Implemented in LauIsobarDynamics.

std::vector<LauParameter> LauAbsDPDynamics::getExtraParameters ( )
inline

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

Returns
any extra parameters

Definition at line 335 of file LauAbsDPDynamics.hh.

const LauParArray& LauAbsDPDynamics::getFitFractions ( ) const
inline

Retrieve the fit fractions for the amplitude components.

Returns
the fit fractions

Definition at line 257 of file LauAbsDPDynamics.hh.

LauKinematics* LauAbsDPDynamics::getKinematics ( )
inline

Retrieve the Dalitz plot kinematics.

Returns
the Dalitz plot kinematics

Definition at line 305 of file LauAbsDPDynamics.hh.

LauParameter LauAbsDPDynamics::getMeanEff ( ) const
inline

Retrieve the mean efficiency across the Dalitz plot.

Returns
the mean efficiency across the Dalitz plot

Definition at line 245 of file LauAbsDPDynamics.hh.

UInt_t LauAbsDPDynamics::getnAmp ( ) const
inline

Retrieve the number of amplitude components.

Returns
the number of amplitude components

Definition at line 269 of file LauAbsDPDynamics.hh.

UInt_t LauAbsDPDynamics::getnDefinedResonances ( ) const
inline

Retrieve the number of defined resonances in the resonance maker.

Returns
the number of defined resonances

Definition at line 263 of file LauAbsDPDynamics.hh.

LauResonanceMaker* LauAbsDPDynamics::getResonanceMaker ( )
inline

Retrieve the resonance maker object.

Returns
the resonance maker

Definition at line 299 of file LauAbsDPDynamics.hh.

LauEffModel* LauAbsDPDynamics::getScfFractionModel ( )
inline

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.

Returns
the self cross feed fraction model

Definition at line 317 of file LauAbsDPDynamics.hh.

std::map<Int_t,LauEffModel*> LauAbsDPDynamics::getScfFractionModels ( )
inline

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.

Returns
the self cross feed fraction models

Definition at line 323 of file LauAbsDPDynamics.hh.

virtual Bool_t LauAbsDPDynamics::gotReweightedEvent ( )
pure 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.

Returns
true if the event has been accepted, false otherwise

Implemented in LauIsobarDynamics.

Bool_t LauAbsDPDynamics::hasResonance ( const TString &  resName) const
virtual

Check whether this model includes a named resonance.

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

Definition at line 107 of file LauAbsDPDynamics.cc.

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

Initialise the Dalitz plot dynamics.

Parameters
[in]coeffsthe complex coefficients for the resonances

Implemented in LauIsobarDynamics.

UInt_t LauAbsDPDynamics::nData ( ) const
inline

Retrieve the number of cached events.

Returns
the number of cached events

Definition at line 281 of file LauAbsDPDynamics.hh.

Double_t LauAbsDPDynamics::retrieveEfficiency ( )
virtual

Obtain the efficiency of the current event from the model.

Returns
the efficiency

Definition at line 134 of file LauAbsDPDynamics.cc.

Double_t LauAbsDPDynamics::retrieveScfFraction ( Int_t  tagCat)
virtual

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

void LauAbsDPDynamics::setDataEventNo ( UInt_t  iEvt)
virtual

Load the data for a given event.

Parameters
[in]iEvtthe number of the event

Reimplemented in LauIsobarDynamics.

Definition at line 78 of file LauAbsDPDynamics.cc.

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

Update the complex coefficients for the resonances.

Parameters
[in]coeffsthe new set of coefficients

Definition at line 88 of file LauAbsDPDynamics.cc.

Bool_t LauAbsDPDynamics::usingScfModel ( )
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 329 of file LauAbsDPDynamics.hh.

Member Data Documentation

std::vector<LauComplex> LauAbsDPDynamics::Amp_
protected

The complex coefficients for the amplitude components.

Definition at line 384 of file LauAbsDPDynamics.hh.

LauCacheData* LauAbsDPDynamics::currentEvent_
protected

The cached data for the current event.

Definition at line 402 of file LauAbsDPDynamics.hh.

std::vector<LauCacheData*> LauAbsDPDynamics::data_
protected

The cached data for all events.

Definition at line 399 of file LauAbsDPDynamics.hh.

LauDaughters* LauAbsDPDynamics::daughters_
protected

The daughters of the decay.

Definition at line 359 of file LauAbsDPDynamics.hh.

Double_t LauAbsDPDynamics::DPNorm_
protected

The normalisation factor for the log-likelihood function.

Definition at line 387 of file LauAbsDPDynamics.hh.

LauParameter LauAbsDPDynamics::DPRate_
protected

The overall Dalitz plot rate.

Definition at line 393 of file LauAbsDPDynamics.hh.

LauEffModel* LauAbsDPDynamics::effModel_
protected

The efficiency model across the Dalitz plot.

Definition at line 368 of file LauAbsDPDynamics.hh.

std::vector<LauParameter> LauAbsDPDynamics::extraParameters_
protected

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

Definition at line 405 of file LauAbsDPDynamics.hh.

LauParArray LauAbsDPDynamics::fitFrac_
protected

The fit fractions for the amplitude components.

Definition at line 390 of file LauAbsDPDynamics.hh.

LauKinematics* LauAbsDPDynamics::kinematics_
protected

The kinematics of the decay.

Definition at line 365 of file LauAbsDPDynamics.hh.

LauParameter LauAbsDPDynamics::meanDPEff_
protected

The mean efficiency across the Dalitz plot.

Definition at line 396 of file LauAbsDPDynamics.hh.

UInt_t LauAbsDPDynamics::nAmp_
protected

The number of amplitude components.

Definition at line 378 of file LauAbsDPDynamics.hh.

UInt_t LauAbsDPDynamics::nResDefMax_
protected

The number of resonances defined in the resonance maker.

Definition at line 381 of file LauAbsDPDynamics.hh.

LauResonanceMaker* LauAbsDPDynamics::resonanceMaker_
protected

Object to create resonances.

Definition at line 362 of file LauAbsDPDynamics.hh.

LauTagCatScfFractionModelMap LauAbsDPDynamics::scfFractionModel_
protected

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 375 of file LauAbsDPDynamics.hh.


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