laura is hosted by Hepforge, IPPP Durham
Laura++  v3r3
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauDPDepMapPdf.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 
24 #ifndef LAU_DPDEPMAP_PDF
25 #define LAU_DPDEPMAP_PDF
26 
27 #include <vector>
28 
29 #include "Rtypes.h"
30 
31 #include "LauAbsPdf.hh"
32 
33 class LauDaughters;
34 class Lau2DAbsDP;
35 class LauParameter;
36 class TH2;
37 class TH1;
38 
39 
40 class LauDPDepMapPdf : public LauAbsPdf {
41 
42  public:
44  enum DPAxis {
45  M12,
46  M13,
47  M23,
49  MMIN,
51  };
52 
54 
60  LauDPDepMapPdf( const std::vector<LauAbsPdf*> &pdfs,
61  const LauDaughters* daughters,
62  const TH2* dpHisto, Bool_t upperHalf = kFALSE);
63 
65 
71  LauDPDepMapPdf( const std::vector<LauAbsPdf*> &pdfs,
72  const LauDaughters* daughters,
73  const TH1* dpAxisHisto,
74  DPAxis dpAxis);
75 
77  virtual ~LauDPDepMapPdf();
78 
80 
83  virtual Bool_t isDPDependent() const {return kTRUE;}
84 
86 
89  virtual void cacheInfo(const LauFitDataTree& inputData);
90 
92 
95  virtual void calcLikelihoodInfo(const LauAbscissas& abscissas);
96 
98 
101  virtual void calcLikelihoodInfo(UInt_t iEvt);
102 
104  virtual void calcNorm();
105 
107 
110  virtual void calcPDFHeight( const LauKinematics* kinematics );
111 
112  protected:
114 
118  UInt_t determineDPRegion( Double_t m13Sq, Double_t m23Sq ) const;
119 
120  private:
122  LauDPDepMapPdf(const LauDPDepMapPdf& other);
123 
125  LauDPDepMapPdf& operator=(const LauDPDepMapPdf& other);
126 
129 
131  std::vector<LauAbsPdf*> pdfs_;
132 
137 
140 
142  std::vector<UInt_t> indices_;
143 
144  ClassDef(LauDPDepMapPdf,0) // Define the sum PDF
145 };
146 
147 #endif
LauDaughters * daughters_
Daughter particles.
Pure abstract base class for defining a variation across a 2D DP.
Definition: Lau2DAbsDP.hh:27
Lau2DAbsDP * dpDependence_
2D histogram - DP
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:33
UInt_t determineDPRegion(Double_t m13Sq, Double_t m23Sq) const
Determine the DP region.
virtual void calcPDFHeight(const LauKinematics *kinematics)
Calculate the PDF height.
TH1 * dpAxisDependence_
1D histogram - DP axis
virtual ~LauDPDepMapPdf()
Destructor.
virtual Bool_t isDPDependent() const
Specifies whether or not the PDF is DP dependent.
std::vector< LauAbsPdf * > pdfs_
The PDFs.
LauDPDepMapPdf(const std::vector< LauAbsPdf * > &pdfs, const LauDaughters *daughters, const TH2 *dpHisto, Bool_t upperHalf=kFALSE)
Constructor - map described by 2D histogram.
std::vector< UInt_t > indices_
Cached indices values.
virtual void cacheInfo(const LauFitDataTree &inputData)
Cache information from data.
Class for defining the fit parameter objects.
Definition: LauParameter.hh:35
LauDPDepMapPdf & operator=(const LauDPDepMapPdf &other)
Copy assignment operator - not implemented.
File containing declaration of LauAbsPdf class.
Class for defining the abstract interface for PDF classes.
Definition: LauAbsPdf.hh:41
Class for calculating 3-body kinematic quantities.
virtual void calcLikelihoodInfo(const LauAbscissas &abscissas)
Calculate the likelihood (and intermediate info) for a given abscissa.
virtual void calcNorm()
Calculate the normalisation.
Class to allow having different PDFs in different regions of the DP.
Class to store the input fit variables.
DPAxis dpAxis_
The DP axis we depend on.
std::vector< Double_t > LauAbscissas
The type used for containing multiple abscissa values.
Definition: LauAbsPdf.hh:45
DPAxis
Define possibilties for the DP axes.