laura is hosted by Hepforge, IPPP Durham
Laura++  v2r0
A maximum likelihood fitting package for performing Dalitz-plot analysis.
Lau2DHistDPPdf.hh
Go to the documentation of this file.
1 
2 // Copyright University of Warwick 2004 - 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_2DHIST_DP_PDF
25 #define LAU_2DHIST_DP_PDF
26 
27 #include "Lau2DAbsHistDPPdf.hh"
28 
29 class TH2;
30 class LauKinematics;
31 class LauVetoes;
32 
34 
35  public:
37 
46  Lau2DHistDPPdf(const TH2* hist, LauKinematics* kinematics, const LauVetoes* vetoes,
47  Bool_t useInterpolation = kTRUE, Bool_t fluctuateBins = kFALSE,
48  Bool_t useUpperHalfOnly = kFALSE, Bool_t squareDP = kFALSE);
49 
51  virtual ~Lau2DHistDPPdf();
52 
54 
57  Double_t getHistNorm() const {return norm_;}
58 
60 
65  Double_t interpolateXY(Double_t x, Double_t y) const;
66 
68 
73  Double_t interpolateXYNorm(Double_t x, Double_t y) const;
74 
75  protected:
77 
82  Double_t getBinHistValue(Int_t xBinNo, Int_t yBinNo) const;
83 
85  void calcHistNorm();
86 
88  void checkNormalisation();
89 
90  private:
92  Lau2DHistDPPdf( const Lau2DHistDPPdf& rhs );
93 
96 
98  TH2* hist_;
99 
101  Double_t minX_;
103  Double_t maxX_;
105  Double_t minY_;
107  Double_t maxY_;
109  Double_t rangeX_;
111  Double_t rangeY_;
112 
114  Double_t binXWidth_;
116  Double_t binYWidth_;
118  Double_t invBinXWidth_;
120  Double_t invBinYWidth_;
121 
123  Double_t maxHeight_;
124 
126  Int_t nBinsX_;
128  Int_t nBinsY_;
129 
131  Double_t norm_;
132 
135 
136  ClassDef(Lau2DHistDPPdf,0) // 2D Histogram utility class for DP analyses
137 };
138 
139 #endif
Double_t minY_
The histogram y-axis minimum.
Double_t maxHeight_
The maximum height of 2D histogram.
Double_t norm_
The histogram normalisation.
Double_t invBinYWidth_
The histogram y-axis inverse bin width.
Double_t rangeX_
The histogram x-axis range.
Double_t maxX_
The histogram x-axis maximum.
Double_t interpolateXYNorm(Double_t x, Double_t y) const
Perform the interpolation and divide by the normalisation.
Abstract base class for defining a variation across a 2D DP based on a histogram. ...
Class for defining a 2D DP histogram PDF.
Double_t getHistNorm() const
Retrieve PDF normalisation.
Int_t nBinsX_
The number of bins on the x-axis of the histogram.
Lau2DHistDPPdf & operator=(const Lau2DHistDPPdf &rhs)
Copy assignment operator - not implemented.
Lau2DHistDPPdf(const TH2 *hist, LauKinematics *kinematics, const LauVetoes *vetoes, Bool_t useInterpolation=kTRUE, Bool_t fluctuateBins=kFALSE, Bool_t useUpperHalfOnly=kFALSE, Bool_t squareDP=kFALSE)
Constructor.
Double_t binXWidth_
The histogram x-axis bin width.
TH2 * hist_
The underlying histogram.
File containing declaration of Lau2DAbsHistDPPdf class.
void checkNormalisation()
Check the normalisation calculation.
Double_t minX_
The histogram x-axis minimum.
virtual ~Lau2DHistDPPdf()
Destructor.
Bool_t useInterpolation_
Control boolean for using the linear interpolation.
Double_t rangeY_
The histogram y-axis range.
Double_t invBinXWidth_
The histogram x-axis inverse bin width.
Double_t getBinHistValue(Int_t xBinNo, Int_t yBinNo) const
Get the bin content from the histogram.
Class for calculating 3-body kinematic quantities.
Double_t maxY_
The histogram y-axis maximum.
void calcHistNorm()
Calculate the PDF normalisation.
Double_t binYWidth_
The histogram y-axis bin width.
Int_t nBinsY_
The number of bins on the y-axis of the histogram.
Double_t interpolateXY(Double_t x, Double_t y) const
Perform the interpolation (unnormalised)
Class for defining vetoes within the Dalitz plot.
Definition: LauVetoes.hh:33