laura is hosted by Hepforge, IPPP Durham
Laura++  v1r0
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<LauParameter*>& 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 checkPositiveness() {}; // Nothing to check here.
92 
94  virtual void calcNorm();
95 
97 
100  virtual void calcPDFHeight( const LauKinematics* kinematics );
101 
103 
107 
109 
112  void scaleMethod(ScaleMethod method) {scaleMethod_ = method;}
113 
114  protected:
116 
119  void scalePars_poly(Double_t perEventDist);
120 
122 
125  void scalePars_polyNegPower(Double_t perEventDist);
126 
127  private:
130 
137 
139  Double_t meanVal_;
141  Double_t sigmaLVal_;
143  Double_t sigmaRVal_;
144 
146  const std::vector<Double_t> meanCoeffs_;
148  const std::vector<Double_t> sigmaLCoeffs_;
150  const std::vector<Double_t> sigmaRCoeffs_;
151 
154 
157 
158  ClassDef(LauDPDepBifurGaussPdf,0) // Define the MVA PDF
159 };
160 
161 #endif
Double_t sigmaLVal_
Left Gaussian sigma.
virtual ~LauDPDepBifurGaussPdf()
Destructor.
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:33
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.
LauParameter * sigmaR_
Right Gaussian sigma.
LauParameter * mean_
Gaussian mean.
void scaleMethod(ScaleMethod method)
Set the scaling method.
Class for defining the fit parameter objects.
Definition: LauParameter.hh:31
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.
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.
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:40
LauParameter * sigmaL_
Left Gaussian sigma.
const std::vector< Double_t > sigmaRCoeffs_
Coefficients of right Gaussian sigma.
Class for calculating 3-body kinematic quantities.
virtual void calcNorm()
Calculate the normalisation.
std::vector< Double_t > LauAbscissas
The type used for containing multiple abscissa values.
Definition: LauAbsPdf.hh:44
Double_t meanVal_
Gaussian mean.
Class for defining a Bifurcated Gaussian PDF (DP dependent).
virtual void checkPositiveness()
Check that PDF is positive.