laura is hosted by Hepforge, IPPP Durham
Laura++  v3r3
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 
74 
77  virtual Bool_t isDPDependent() const {return kTRUE;}
78 
80 
83  virtual void calcLikelihoodInfo(const LauAbscissas& abscissas);
84 
86 
88  virtual void calcNorm();
89 
91 
94  virtual void calcPDFHeight( const LauKinematics* kinematics );
95 
97 
101 
103 
106  void scaleMethod(ScaleMethod method) {scaleMethod_ = method;}
107 
108  protected:
110 
113  void scalePars_poly(Double_t perEventDist);
114 
116 
119  void scalePars_polyNegPower(Double_t perEventDist);
120 
121  private:
124 
127 
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
LauAbsRValue * mean_
Gaussian mean.
const std::vector< Double_t > meanCoeffs_
Coefficients of Gaussian mean.
LauDPDepBifurGaussPdf & operator=(const LauDPDepBifurGaussPdf &other)
Copy assignment operator (not implemented)
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).