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

Class for defining a Bifurcated Gaussian PDF (DP dependent). More...

#include <LauDPDepBifurGaussPdf.hh>

Inheritance diagram for LauDPDepBifurGaussPdf:
LauAbsPdf

Public Types

enum  DPAxis {
  M12, M13, M23, CentreDist,
  MMIN, MMAX
}
 Define possibilties for the DP axes. More...
 
enum  ScaleMethod { poly, polyNegPower }
 Define possibilties for the scaling method. 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

 LauDPDepBifurGaussPdf (const TString &theVarName, const std::vector< LauParameter * > &params, Double_t minAbscissa, Double_t maxAbscissa, const LauDaughters *daughters, const std::vector< Double_t > &meanCoeffs, const std::vector< Double_t > &sigmaLCoeffs, const std::vector< Double_t > &sigmaRCoeffs, DPAxis dpAxis)
 Constructor. More...
 
virtual ~LauDPDepBifurGaussPdf ()
 Destructor. More...
 
 LauDPDepBifurGaussPdf (const LauDPDepBifurGaussPdf &other)
 Copy constructor. More...
 
virtual Bool_t isDPDependent () const
 Specifies whether or not the PDF is DP dependent. More...
 
virtual void calcLikelihoodInfo (const LauAbscissas &abscissas)
 Calculate the likelihood (and intermediate info) for a given abscissa. More...
 
virtual void checkPositiveness ()
 Check that PDF is positive. More...
 
virtual void calcNorm ()
 Calculate the normalisation. More...
 
virtual void calcPDFHeight (const LauKinematics *kinematics)
 Calculate the PDF height. More...
 
ScaleMethod scaleMethod () const
 Retrieve scaling method information. More...
 
void scaleMethod (ScaleMethod method)
 Set the scaling method. More...
 
- Public Member Functions inherited from LauAbsPdf
 LauAbsPdf (const TString &theVarName, const std::vector< LauParameter * > &params, Double_t minAbscissa, Double_t maxAbscissa)
 Constructor for a 1D PDF. More...
 
 LauAbsPdf (const std::vector< TString > &theVarNames, const std::vector< LauParameter * > &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 getParValue (const TString &parName) const
 Retrieve the value of the specified parameter. More...
 
virtual Double_t getParMin (const TString &parName) const
 Retrieve the minimum value of the specified parameter. More...
 
virtual Double_t getParMax (const TString &parName) const
 Retrieve the maximum value of the specified parameter. More...
 
virtual Double_t getParRange (const TString &parName) const
 Retrieve the range of the specified parameter. More...
 
virtual Bool_t parFixed (const TString &parName) const
 Retrieve whether the specified parameter is fixed. More...
 
virtual Bool_t parClone (const TString &parName) const
 Retrieve whether the specified parameter is a clone. 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 setParValue (const TString &parName, Double_t value)
 Change the value of the specified parameter. More...
 
virtual void setParMin (const TString &parName, Double_t minValue)
 Change the minimum value of the specified parameter. More...
 
virtual void setParMax (const TString &parName, Double_t maxValue)
 Change the maximum value of the specified parameter. More...
 
virtual void setParRange (const TString &parName, Double_t minValue, Double_t maxValue)
 Change the range of the specified parameter. More...
 
virtual void fixPar (const TString &parName)
 Fix the specified parameter. More...
 
virtual void floatPar (const TString &parName)
 Float the specified parameter. More...
 
virtual void updatePulls ()
 Update the pulls for all parameters. More...
 
virtual void cacheInfo (const LauFitDataTree &inputData)
 Cache information from data. More...
 
virtual void calcLikelihoodInfo (UInt_t iEvt)
 Retrieve the likelihood (and all associated information) given the event number. 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
< LauParameter * > & 
getParameters () const
 Retrieve the parameters of the PDF, e.g. so that they can be loaded into a fit. More...
 
virtual std::vector
< LauParameter * > & 
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 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 scalePars_poly (Double_t perEventDist)
 Scale the Gaussian parameters with polynomial method. More...
 
void scalePars_polyNegPower (Double_t perEventDist)
 Scale the Gaussian parameters with negative power polynomial method. More...
 
- Protected Member Functions inherited from LauAbsPdf
virtual void cachePDF (Bool_t doCachePDF)
 Set whether the PDF is to be cached. More...
 
virtual void heightUpToDate (Bool_t hutd)
 Set whether the height is up to date. 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 LauParameterfindParameter (const TString &parName)
 Retrieve the specified parameter. More...
 
virtual const LauParameterfindParameter (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< LauParameter * > &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 Attributes

const LauKinematicskinematics_
 The current DP kinematics. More...
 
LauParametermean_
 Gaussian mean. More...
 
LauParametersigmaL_
 Left Gaussian sigma. More...
 
LauParametersigmaR_
 Right Gaussian sigma. More...
 
Double_t meanVal_
 Gaussian mean. More...
 
Double_t sigmaLVal_
 Left Gaussian sigma. More...
 
Double_t sigmaRVal_
 Right Gaussian sigma. More...
 
const std::vector< Double_t > meanCoeffs_
 Coefficients of Gaussian mean. More...
 
const std::vector< Double_t > sigmaLCoeffs_
 Coefficients of left Gaussian sigma. More...
 
const std::vector< Double_t > sigmaRCoeffs_
 Coefficients of right Gaussian sigma. More...
 
DPAxis dpAxis_
 The DP axis we depend on. More...
 
ScaleMethod scaleMethod_
 Scaling method information. More...
 

Detailed Description

Class for defining a Bifurcated Gaussian PDF (DP dependent).

Class that allows the user to define a Bifurcated Gaussian PDF where one or more of the parameters have a dependence on the DP position.

Definition at line 31 of file LauDPDepBifurGaussPdf.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 35 of file LauDPDepBifurGaussPdf.hh.

Define possibilties for the scaling method.

Enumerator
poly 

dependence is polynomial

polyNegPower 

dependence is a Laurent polynomial with only negative powers

Definition at line 45 of file LauDPDepBifurGaussPdf.hh.

Constructor & Destructor Documentation

LauDPDepBifurGaussPdf::LauDPDepBifurGaussPdf ( const TString &  theVarName,
const std::vector< LauParameter * > &  params,
Double_t  minAbscissa,
Double_t  maxAbscissa,
const LauDaughters daughters,
const std::vector< Double_t > &  meanCoeffs,
const std::vector< Double_t > &  sigmaLCoeffs,
const std::vector< Double_t > &  sigmaRCoeffs,
DPAxis  dpAxis 
)

Constructor.

Parameters
[in]theVarNamethe name of the abscissa variable
[in]paramsthe PDF parameters - mean and sigma
[in]minAbscissathe minimum value of the abscissa
[in]maxAbscissathe maximum value of the abscissa
[in]daughtersthe daughter particles
[in]meanCoeffsthe coefficients of the DP dependence of the Gaussian mean
[in]sigmaLCoeffsthe coefficients of the DP dependence of the sigma for the left Gaussian
[in]sigmaRCoeffsthe coefficients of the DP dependence of the sigma for the right Gaussian
[in]dpAxisthe DP axis that defines the parameter dependence
LauDPDepBifurGaussPdf::~LauDPDepBifurGaussPdf ( )
virtual

Destructor.

Definition at line 86 of file LauDPDepBifurGaussPdf.cc.

LauDPDepBifurGaussPdf::LauDPDepBifurGaussPdf ( const LauDPDepBifurGaussPdf other)

Copy constructor.

Definition at line 91 of file LauDPDepBifurGaussPdf.cc.

Member Function Documentation

void LauDPDepBifurGaussPdf::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 106 of file LauDPDepBifurGaussPdf.cc.

void LauDPDepBifurGaussPdf::calcNorm ( )
virtual

Calculate the normalisation.

Reimplemented from LauAbsPdf.

Definition at line 242 of file LauDPDepBifurGaussPdf.cc.

void LauDPDepBifurGaussPdf::calcPDFHeight ( const LauKinematics kinematics)
virtual

Calculate the PDF height.

Parameters
[in]kinematicsthe current DP kinematics

Implements LauAbsPdf.

Definition at line 247 of file LauDPDepBifurGaussPdf.cc.

virtual void LauDPDepBifurGaussPdf::checkPositiveness ( )
inlinevirtual

Check that PDF is positive.

Implements LauAbsPdf.

Definition at line 91 of file LauDPDepBifurGaussPdf.hh.

virtual Bool_t LauDPDepBifurGaussPdf::isDPDependent ( ) const
inlinevirtual

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 80 of file LauDPDepBifurGaussPdf.hh.

ScaleMethod LauDPDepBifurGaussPdf::scaleMethod ( ) const
inline

Retrieve scaling method information.

Returns
scaling method

Definition at line 106 of file LauDPDepBifurGaussPdf.hh.

void LauDPDepBifurGaussPdf::scaleMethod ( ScaleMethod  method)
inline

Set the scaling method.

Parameters
[in]methodthe scaling method

Definition at line 112 of file LauDPDepBifurGaussPdf.hh.

void LauDPDepBifurGaussPdf::scalePars_poly ( Double_t  perEventDist)
protected

Scale the Gaussian parameters with polynomial method.

Parameters
[in]perEventDistthe event distribution

Definition at line 194 of file LauDPDepBifurGaussPdf.cc.

void LauDPDepBifurGaussPdf::scalePars_polyNegPower ( Double_t  perEventDist)
protected

Scale the Gaussian parameters with negative power polynomial method.

Parameters
[in]perEventDistthe event distribution

Definition at line 218 of file LauDPDepBifurGaussPdf.cc.

Member Data Documentation

DPAxis LauDPDepBifurGaussPdf::dpAxis_
private

The DP axis we depend on.

Definition at line 153 of file LauDPDepBifurGaussPdf.hh.

const LauKinematics* LauDPDepBifurGaussPdf::kinematics_
private

The current DP kinematics.

Definition at line 129 of file LauDPDepBifurGaussPdf.hh.

LauParameter* LauDPDepBifurGaussPdf::mean_
private

Gaussian mean.

Definition at line 132 of file LauDPDepBifurGaussPdf.hh.

const std::vector<Double_t> LauDPDepBifurGaussPdf::meanCoeffs_
private

Coefficients of Gaussian mean.

Definition at line 146 of file LauDPDepBifurGaussPdf.hh.

Double_t LauDPDepBifurGaussPdf::meanVal_
private

Gaussian mean.

Definition at line 139 of file LauDPDepBifurGaussPdf.hh.

ScaleMethod LauDPDepBifurGaussPdf::scaleMethod_
private

Scaling method information.

Definition at line 156 of file LauDPDepBifurGaussPdf.hh.

LauParameter* LauDPDepBifurGaussPdf::sigmaL_
private

Left Gaussian sigma.

Definition at line 134 of file LauDPDepBifurGaussPdf.hh.

const std::vector<Double_t> LauDPDepBifurGaussPdf::sigmaLCoeffs_
private

Coefficients of left Gaussian sigma.

Definition at line 148 of file LauDPDepBifurGaussPdf.hh.

Double_t LauDPDepBifurGaussPdf::sigmaLVal_
private

Left Gaussian sigma.

Definition at line 141 of file LauDPDepBifurGaussPdf.hh.

LauParameter* LauDPDepBifurGaussPdf::sigmaR_
private

Right Gaussian sigma.

Definition at line 136 of file LauDPDepBifurGaussPdf.hh.

const std::vector<Double_t> LauDPDepBifurGaussPdf::sigmaRCoeffs_
private

Coefficients of right Gaussian sigma.

Definition at line 150 of file LauDPDepBifurGaussPdf.hh.

Double_t LauDPDepBifurGaussPdf::sigmaRVal_
private

Right Gaussian sigma.

Definition at line 143 of file LauDPDepBifurGaussPdf.hh.


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