laura is hosted by Hepforge, IPPP Durham
Laura++  v2r2p1
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauDPDepBifurGaussPdf.hh
Go to the documentation of this file.
1 
2 // Copyright University of Warwick 2007 - 2013.
3 // Distributed under the Boost Software License, Version 1.0.
4 // (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5 
6 // Authors:
7 // Thomas Latham
8 // John Back
9 // Paul Harrison
10 
21 #ifndef LAU_DPDEP_BIFURGAUSS_PDF
22 #define LAU_DPDEP_BIFURGAUSS_PDF
23 
24 #include <vector>
25 
26 #include "TString.h"
27 
28 #include "LauAbsPdf.hh"
29 
30 
32 
33  public:
35  enum DPAxis {
36  M12,
37  M13,
38  M23,
40  MMIN,
42  };
43 
45  enum ScaleMethod {
46  poly,
48  };
49 
51 
62  LauDPDepBifurGaussPdf(const TString& theVarName, const std::vector<LauAbsRValue*>& params,
63  Double_t minAbscissa, Double_t maxAbscissa,
64  const LauDaughters* daughters,
65  const std::vector<Double_t>& meanCoeffs,
66  const std::vector<Double_t>& sigmaLCoeffs,
67  const std::vector<Double_t>& sigmaRCoeffs,
68  DPAxis dpAxis);
69 
71  virtual ~LauDPDepBifurGaussPdf();
72 
75 
77 
80  virtual Bool_t isDPDependent() const {return kTRUE;}
81 
83 
86  virtual void calcLikelihoodInfo(const LauAbscissas& abscissas);
87 
89 
91  virtual void calcNorm();
92 
94 
97  virtual void calcPDFHeight( const LauKinematics* kinematics );
98 
100 
104 
106 
109  void scaleMethod(ScaleMethod method) {scaleMethod_ = method;}
110 
111  protected:
113 
116  void scalePars_poly(Double_t perEventDist);
117 
119 
122  void scalePars_polyNegPower(Double_t perEventDist);
123 
124  private:
127 
134 
136  Double_t meanVal_;
138  Double_t sigmaLVal_;
140  Double_t sigmaRVal_;
141 
143  const std::vector<Double_t> meanCoeffs_;
145  const std::vector<Double_t> sigmaLCoeffs_;
147  const std::vector<Double_t> sigmaRCoeffs_;
148 
151 
154 
155  ClassDef(LauDPDepBifurGaussPdf,0) // Define the MVA PDF
156 };
157 
158 #endif
Double_t sigmaLVal_
Left Gaussian sigma.
virtual ~LauDPDepBifurGaussPdf()
Destructor.
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:33
LauAbsRValue * mean_
Gaussian mean.
const std::vector< Double_t > meanCoeffs_
Coefficients of Gaussian mean.
virtual void calcPDFHeight(const LauKinematics *kinematics)
Calculate the PDF height.
virtual void calcLikelihoodInfo(const LauAbscissas &abscissas)
Calculate the likelihood (and intermediate info) for a given abscissa.
void scalePars_poly(Double_t perEventDist)
Scale the Gaussian parameters with polynomial method.
DPAxis
Define possibilties for the DP axes.
const LauKinematics * kinematics_
The current DP kinematics.
void scalePars_polyNegPower(Double_t perEventDist)
Scale the Gaussian parameters with negative power polynomial method.
DPAxis dpAxis_
The DP axis we depend on.
virtual Bool_t isDPDependent() const
Specifies whether or not the PDF is DP dependent.
LauAbsRValue * sigmaL_
Left Gaussian sigma.
LauDPDepBifurGaussPdf(const TString &theVarName, const std::vector< LauAbsRValue * > &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.
LauAbsRValue * sigmaR_
Right Gaussian sigma.
void scaleMethod(ScaleMethod method)
Set the scaling method.
File containing declaration of LauAbsPdf class.
ScaleMethod scaleMethod() const
Retrieve scaling method information.
ScaleMethod
Define possibilties for the scaling method.
const std::vector< Double_t > sigmaLCoeffs_
Coefficients of left Gaussian sigma.
Double_t sigmaRVal_
Right Gaussian sigma.
virtual void calcLikelihoodInfo(const LauAbscissas &abscissas)=0
Calculate the likelihood (and all associated information) given value(s) of the abscissa(s) ...
ScaleMethod scaleMethod_
Scaling method information.
Class for defining the abstract interface for PDF classes.
Definition: LauAbsPdf.hh:41
const std::vector< Double_t > sigmaRCoeffs_
Coefficients of right Gaussian sigma.
Class for calculating 3-body kinematic quantities.
virtual void calcNorm()
Calculate the normalisation.
Pure abstract base class for defining a parameter containing an R value.
Definition: LauAbsRValue.hh:29
std::vector< Double_t > LauAbscissas
The type used for containing multiple abscissa values.
Definition: LauAbsPdf.hh:45
Double_t meanVal_
Gaussian mean.
Class for defining a Bifurcated Gaussian PDF (DP dependent).