laura is hosted by Hepforge, IPPP Durham
Laura++  v1r0
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauDPDepGaussPdf.hh
Go to the documentation of this file.
1 
2 // Copyright University of Warwick 2009 - 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_GAUSS_PDF
22 #define LAU_DPDEP_GAUSS_PDF
23 
24 #include <vector>
25 
26 #include "TString.h"
27 
28 #include "LauAbsPdf.hh"
29 
30 class LauDaughters;
31 class LauKinematics;
32 class LauParameter;
33 
34 
35 class LauDPDepGaussPdf : public LauAbsPdf {
36 
37  public:
39  enum DPAxis {
40  M12,
41  M13,
42  M23,
44  MMIN,
46  };
47 
49 
59  LauDPDepGaussPdf(const TString& theVarName, const std::vector<LauParameter*>& params,
60  Double_t minAbscissa, Double_t maxAbscissa,
61  const LauDaughters* daughters,
62  const std::vector<Double_t>& meanCoeffs,
63  const std::vector<Double_t>& sigmaCoeffs,
64  DPAxis dpAxis);
65 
67  virtual ~LauDPDepGaussPdf();
68 
70  LauDPDepGaussPdf(const LauDPDepGaussPdf& other);
71 
73 
76  virtual Bool_t isDPDependent() const {return kTRUE;}
77 
79 
82  virtual void calcLikelihoodInfo(const LauAbscissas& abscissas);
83 
85 
87  virtual void checkPositiveness() {}; // Nothing to check here.
88 
90  virtual void calcNorm();
91 
93 
96  virtual void calcPDFHeight( const LauKinematics* kinematics );
97 
98  protected:
100 
103  void scalePars( Double_t dpPos );
104 
105  private:
108 
113 
115  Double_t meanVal_;
117  Double_t sigmaVal_;
118 
120  const std::vector<Double_t> meanCoeffs_;
122  const std::vector<Double_t> sigmaCoeffs_;
123 
126 
127  ClassDef(LauDPDepGaussPdf,0) // Define the Gaussian PDF
128 };
129 
130 #endif
Double_t sigmaVal_
Gaussian sigma.
virtual ~LauDPDepGaussPdf()
Destructor.
virtual Bool_t isDPDependent() const
Specifies whether or not the PDF is DP dependent.
DPAxis dpAxis_
The DP axis we depend on.
DPAxis
Define possibilties for the DP axes.
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:33
virtual void checkPositiveness()
Check that PDF is positive.
virtual void calcNorm()
Calculate the normalisation.
const std::vector< Double_t > sigmaCoeffs_
Coefficients of Gaussian sigma.
const std::vector< Double_t > meanCoeffs_
Coefficients of Gaussian mean.
Double_t meanVal_
Gaussian mean.
Class for defining the fit parameter objects.
Definition: LauParameter.hh:31
virtual void calcPDFHeight(const LauKinematics *kinematics)
Calculate the PDF height.
File containing declaration of LauAbsPdf class.
virtual void calcLikelihoodInfo(const LauAbscissas &abscissas)
Calculate the likelihood (and intermediate info) for a given abscissa.
LauParameter * mean_
Gaussian mean.
virtual void calcLikelihoodInfo(const LauAbscissas &abscissas)=0
Calculate the likelihood (and all associated information) given value(s) of the abscissa(s) ...
LauDPDepGaussPdf(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 > &sigmaCoeffs, DPAxis dpAxis)
Constructor.
Class for defining the abstract interface for PDF classes.
Definition: LauAbsPdf.hh:40
Class for calculating 3-body kinematic quantities.
const LauKinematics * kinematics_
The current DP kinematics.
void scalePars(Double_t dpPos)
Scale parameters by their dependence on the DP position.
Class for defining a Gaussian PDF (DP dependent).
LauParameter * sigma_
Gaussian sigma.
std::vector< Double_t > LauAbscissas
The type used for containing multiple abscissa values.
Definition: LauAbsPdf.hh:44