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

Class for defining a PDF that is the DP-dependent sum of two other PDFs. More...

#include <LauDPDepSumPdf.hh>

Inheritance diagram for LauDPDepSumPdf:
LauAbsPdf

Public Types

enum  DPAxis {
  M12, M13, M23, CentreDist,
  MMIN, MMAX
}
 Define possibilties for the DP axes. More...
 
- Public Types inherited from LauAbsPdf
enum  IntMethod { GaussLegendre, Trapezoid }
 The possible numerical intergration methods. More...
 
typedef std::vector< Double_t > LauAbscissas
 The type used for containing multiple abscissa values. More...
 

Public Member Functions

 LauDPDepSumPdf (LauAbsPdf *pdf1, LauAbsPdf *pdf2, const LauDaughters *daughters, const TH2 *dpHisto, Bool_t upperHalf=kFALSE, Bool_t useSpline=kFALSE)
 Constructor - fraction determined by 2D histogram. More...
 
 LauDPDepSumPdf (LauAbsPdf *pdf1, LauAbsPdf *pdf2, LauParameter *frac, const LauDaughters *daughters, const std::vector< Double_t > &fracCoeffs, DPAxis dpAxis)
 Constructor - fraction determined by a polynomial of a DP "axis". More...
 
virtual ~LauDPDepSumPdf ()
 Destructor. More...
 
virtual Bool_t isDPDependent () const
 Copy constructor. More...
 
virtual void cacheInfo (const LauFitDataTree &inputData)
 Cache information from data. More...
 
virtual void calcLikelihoodInfo (const LauAbscissas &abscissas)
 Calculate the likelihood (and intermediate info) for a given abscissa. More...
 
virtual void calcLikelihoodInfo (UInt_t iEvt)
 Calculate the likelihood (and intermediate info) for a given event number. More...
 
virtual void calcNorm ()
 Calculate the normalisation. More...
 
virtual void calcPDFHeight (const LauKinematics *kinematics)
 Calculate the PDF height. More...
 
- Public Member Functions inherited from LauAbsPdf
 LauAbsPdf (const TString &theVarName, const std::vector< LauAbsRValue * > &params, Double_t minAbscissa, Double_t maxAbscissa)
 Constructor for a 1D PDF. More...
 
 LauAbsPdf (const std::vector< TString > &theVarNames, const std::vector< LauAbsRValue * > &params, const LauFitData &minAbscissas, const LauFitData &maxAbscissas)
 Constructor for a multidimensional PDF. More...
 
virtual ~LauAbsPdf ()
 Destructor. More...
 
virtual const TString & varName () const
 Retrieve the name of the abscissa. More...
 
virtual std::vector< TString > varNames () const
 Retrieve the names of the abscissas. More...
 
virtual UInt_t nParameters () const
 Retrieve the number of PDF parameters. More...
 
virtual UInt_t nFixedParameters () const
 Retrieve the number of fixed PDF parameters. More...
 
virtual UInt_t nInputVars () const
 Retrieve the number of abscissas. More...
 
virtual Double_t getMinAbscissa () const
 Retrieve the minimum value of the (primary) abscissa. More...
 
virtual Double_t getMaxAbscissa () const
 Retrieve the maximum value of the (primary) abscissa. More...
 
virtual Double_t getRange () const
 Retrieve the range of the (primary) abscissa. More...
 
virtual Double_t getMinAbscissa (const TString &theVarName) const
 Retrieve the minimum value of the specified abscissa. More...
 
virtual Double_t getMaxAbscissa (const TString &theVarName) const
 Retrieve the maximum value of the specified abscissa. More...
 
virtual Double_t getRange (const TString &theVarName) const
 Retrieve the range of the specified abscissa. More...
 
virtual LauFitData getMinAbscissas () const
 Retrieve the minimum values of all the abscissas. More...
 
virtual LauFitData getMaxAbscissas () const
 Retrieve the maximum values of all the abscissas. More...
 
virtual LauFitData getRanges () const
 Retrieve the ranges of all the abscissas. More...
 
virtual void updatePulls ()
 Update the pulls for all parameters. More...
 
virtual Double_t getUnNormLikelihood () const
 Retrieve the unnormalised likelihood value. More...
 
virtual Double_t getNorm () const
 Retrieve the normalisation factor. More...
 
virtual Double_t getLikelihood () const
 Retrieve the normalised likelihood value. More...
 
virtual Double_t getLikelihood (const TString &theVarName) const
 For multidimentional PDFs, retrieve the normalised likelihood value of a named variable. More...
 
virtual Double_t getMaxHeight () const
 Retrieve the maximum height. More...
 
virtual LauFitData generate (const LauKinematics *kinematics)
 Generate an event from the PDF. More...
 
virtual void setRandomFun (TRandom *randomFun)
 Set the random function used for toy MC generation. More...
 
virtual const std::vector
< LauAbsRValue * > & 
getParameters () const
 Retrieve the parameters of the PDF, e.g. so that they can be loaded into a fit. More...
 
virtual std::vector
< LauAbsRValue * > & 
getParameters ()
 Retrieve the parameters of the PDF, e.g. so that they can be loaded into a fit. More...
 
virtual Bool_t heightUpToDate () const
 Check if the maximum height of the PDF is up to date. More...
 
virtual void heightUpToDate (Bool_t hutd)
 Set whether the height is up to date. More...
 
virtual Bool_t cachePDF () const
 Check if the PDF is to be cached. More...
 
virtual Int_t nNormPoints () const
 Retrieve the number of points to integrate over when normalising. More...
 
virtual void nNormPoints (Int_t nPoints)
 Set the number of points to integrate over when normalising. More...
 
virtual IntMethod integMethod () const
 Retrieve the integration method used to normalise the PDF. More...
 
virtual void integMethod (IntMethod method)
 Set the integration method used to normalise the PDF. More...
 

Protected Member Functions

void scaleFrac (Double_t dpPos)
 Scale fraction according to DP position. More...
 
- Protected Member Functions inherited from LauAbsPdf
virtual void cachePDF (Bool_t doCachePDF)
 Set whether the PDF is to be cached. More...
 
virtual Double_t integrGaussLegendre ()
 Integrate the PDF using the Gauss-Legendre method. More...
 
virtual Double_t integTrapezoid ()
 Integrate the PDF using the simple trapezoid method. More...
 
virtual void setNorm (Double_t norm)
 Set the normalisation factor. More...
 
virtual void setMaxHeight (Double_t maxHeight)
 Set the maximum height. More...
 
virtual void setMinAbscissa (const TString &theVarName, Double_t minAbscissa)
 Set the minimum value of the specified abscissa. More...
 
virtual void setMaxAbscissa (const TString &theVarName, Double_t maxAbscissa)
 Set the maximum value of the specified abscissa. More...
 
virtual void setRange (const TString &theVarName, Double_t minAbscissa, Double_t maxAbscissa)
 Set the range of the specified abscissa. More...
 
virtual Bool_t checkRange (const LauAbscissas &abscissas) const
 Check that all abscissas are within their allowed ranges. More...
 
virtual void setUnNormPDFVal (Double_t unNormPDFVal)
 Set the unnormalised likelihood. More...
 
virtual LauAbsRValuefindParameter (const TString &parName)
 Retrieve the specified parameter. More...
 
virtual const LauAbsRValuefindParameter (const TString &parName) const
 Retrieve the specified parameter. More...
 
virtual TRandom * getRandomFun () const
 Retrieve the random function used for MC generation. More...
 
virtual std::vector
< LauAbscissas > & 
getAbscissas ()
 Retrieve the abscissa(s) More...
 
virtual const std::vector
< LauAbscissas > & 
getAbscissas () const
 Retrieve the abscissa(s) More...
 
virtual std::vector< Double_t > & getUnNormPDFValues ()
 Retrieve the cached unnormalised likelihood values. More...
 
virtual const std::vector
< Double_t > & 
getUnNormPDFValues () const
 Retrieve the cached unnormalised likelihood values. More...
 
virtual void addParameters (std::vector< LauAbsRValue * > &params)
 Add parameters to the PDF. More...
 
virtual Bool_t withinNormCalc () const
 Check whether the calcNorm method is running. More...
 
virtual void withinNormCalc (Bool_t yorn)
 Set flag to track whether the calcNorm method is running. More...
 
virtual Bool_t withinGeneration () const
 Check whether the generate method is running. More...
 
virtual void withinGeneration (Bool_t yorn)
 Set flag to track whether the generate method is running. More...
 
virtual Bool_t normWeightsDone () const
 Check whether the normalisation weights have been calculated. More...
 
virtual void normWeightsDone (Bool_t yorn)
 Set whether the normalisation weights have been calculated. More...
 
virtual void getNormWeights ()
 Calculate the weights and abscissas used for normalisation. More...
 
virtual const std::vector
< LauAbscissas > & 
normAbscissas () const
 Retrieve the abscissa points used for normalisation. More...
 
virtual const std::vector
< Double_t > & 
normWeights () const
 Retrieve the weights used for normalisation. More...
 

Private Member Functions

 LauDPDepSumPdf (const LauDPDepSumPdf &other)
 Copy constructor - not implemented. More...
 

Private Attributes

LauDaughtersdaughters_
 Daughter particles. More...
 
LauAbsPdfpdf1_
 First PDF. More...
 
LauAbsPdfpdf2_
 Second PDF. More...
 
LauAbsRValuefrac_
 Fractional contribution of first PDF to the final PDF. More...
 
Double_t fracVal_
 Fractional contribution of first PDF to the final PDF. More...
 
LauEffModeldpDependence_
 DP dependence. More...
 
const std::vector< Double_t > fracCoeffs_
 Polynomial used to scale fraction. More...
 
DPAxis dpAxis_
 The DP axis we depend on. More...
 
std::vector< Double_t > fractions_
 Cached values of fractions. More...
 

Detailed Description

Class for defining a PDF that is the DP-dependent sum of two other PDFs.

Class for defining a PDF that is the sum of two other PDFs, where the relative fraction of the two PDFs depends on the Dalitz-plot position.

Definition at line 34 of file LauDPDepSumPdf.hh.

Member Enumeration Documentation

Define possibilties for the DP axes.

Enumerator
M12 

dependence is on m^2_12

M13 

dependence is on m^2_13

M23 

dependence is on m^2_23

CentreDist 

dependence is on the distance from the DP centre

MMIN 

dependence is on the minimum of m^2_13 and m^2_23

MMAX 

dependence is on the maximum of m^2_13 and m^2_23

Definition at line 38 of file LauDPDepSumPdf.hh.

Constructor & Destructor Documentation

LauDPDepSumPdf::LauDPDepSumPdf ( LauAbsPdf pdf1,
LauAbsPdf pdf2,
const LauDaughters daughters,
const TH2 *  dpHisto,
Bool_t  upperHalf = kFALSE,
Bool_t  useSpline = kFALSE 
)

Constructor - fraction determined by 2D histogram.

Parameters
[in]pdf1the first PDF
[in]pdf2the second PDF
[in]daughtersthe daughter particles
[in]dpHistothe 2D histogram
[in]upperHalfspecifies whether only upper half of DP is supplied in the case of a symmetric DP
[in]useSplinespecifies whether a spline is used to interpolate the histogram

Definition at line 34 of file LauDPDepSumPdf.cc.

LauDPDepSumPdf::LauDPDepSumPdf ( LauAbsPdf pdf1,
LauAbsPdf pdf2,
LauParameter frac,
const LauDaughters daughters,
const std::vector< Double_t > &  fracCoeffs,
DPAxis  dpAxis 
)

Constructor - fraction determined by a polynomial of a DP "axis".

Parameters
[in]pdf1the first PDF
[in]pdf2the second PDF
[in]fracthe fractional contribution of the first PDF to the final PDF
[in]daughtersthe daughter particles
[in]fracCoeffsthe coefficients of the DP dependence of the PDF fraction
[in]dpAxisthe DP axis that defines the parameter dependence

Definition at line 106 of file LauDPDepSumPdf.cc.

LauDPDepSumPdf::~LauDPDepSumPdf ( )
virtual

Destructor.

Definition at line 188 of file LauDPDepSumPdf.cc.

LauDPDepSumPdf::LauDPDepSumPdf ( const LauDPDepSumPdf other)
private

Copy constructor - not implemented.

Member Function Documentation

void LauDPDepSumPdf::cacheInfo ( const LauFitDataTree inputData)
virtual

Cache information from data.

Parameters
[in]inputDatathe input data

Reimplemented from LauAbsPdf.

Definition at line 344 of file LauDPDepSumPdf.cc.

void LauDPDepSumPdf::calcLikelihoodInfo ( const LauAbscissas abscissas)
virtual

Calculate the likelihood (and intermediate info) for a given abscissa.

Parameters
[in]abscissasthe values of the abscissa(s)

Implements LauAbsPdf.

Definition at line 211 of file LauDPDepSumPdf.cc.

void LauDPDepSumPdf::calcLikelihoodInfo ( UInt_t  iEvt)
virtual

Calculate the likelihood (and intermediate info) for a given event number.

Parameters
[in]iEvtevent number

Reimplemented from LauAbsPdf.

Definition at line 414 of file LauDPDepSumPdf.cc.

void LauDPDepSumPdf::calcNorm ( )
virtual

Calculate the normalisation.

Reimplemented from LauAbsPdf.

Definition at line 281 of file LauDPDepSumPdf.cc.

void LauDPDepSumPdf::calcPDFHeight ( const LauKinematics kinematics)
virtual

Calculate the PDF height.

Parameters
[in]kinematicsthe current DP kinematics

Implements LauAbsPdf.

Definition at line 287 of file LauDPDepSumPdf.cc.

virtual Bool_t LauDPDepSumPdf::isDPDependent ( ) const
inlinevirtual

Copy constructor.

Specifies whether or not the PDF is DP dependent.

Returns
true if the PDF is DP-dependent (the default)

Reimplemented from LauAbsPdf.

Definition at line 86 of file LauDPDepSumPdf.hh.

void LauDPDepSumPdf::scaleFrac ( Double_t  dpPos)
protected

Scale fraction according to DP position.

Parameters
[in]dpPosthe DP position

Definition at line 271 of file LauDPDepSumPdf.cc.

Member Data Documentation

LauDaughters* LauDPDepSumPdf::daughters_
private

Daughter particles.

Definition at line 127 of file LauDPDepSumPdf.hh.

DPAxis LauDPDepSumPdf::dpAxis_
private

The DP axis we depend on.

Definition at line 145 of file LauDPDepSumPdf.hh.

LauEffModel* LauDPDepSumPdf::dpDependence_
private

DP dependence.

Definition at line 139 of file LauDPDepSumPdf.hh.

LauAbsRValue* LauDPDepSumPdf::frac_
private

Fractional contribution of first PDF to the final PDF.

Definition at line 135 of file LauDPDepSumPdf.hh.

const std::vector<Double_t> LauDPDepSumPdf::fracCoeffs_
private

Polynomial used to scale fraction.

Definition at line 142 of file LauDPDepSumPdf.hh.

std::vector<Double_t> LauDPDepSumPdf::fractions_
private

Cached values of fractions.

Definition at line 148 of file LauDPDepSumPdf.hh.

Double_t LauDPDepSumPdf::fracVal_
private

Fractional contribution of first PDF to the final PDF.

Definition at line 137 of file LauDPDepSumPdf.hh.

LauAbsPdf* LauDPDepSumPdf::pdf1_
private

First PDF.

Definition at line 130 of file LauDPDepSumPdf.hh.

LauAbsPdf* LauDPDepSumPdf::pdf2_
private

Second PDF.

Definition at line 132 of file LauDPDepSumPdf.hh.


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