laura is hosted by Hepforge, IPPP Durham
Laura++  v2r1
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 
47  Lau2DHistDPPdf(const TH2* hist, LauKinematics* kinematics, const LauVetoes* vetoes,
48  Bool_t useInterpolation = kTRUE, Bool_t fluctuateBins = kFALSE,
49  Bool_t useUpperHalfOnly = kFALSE, Bool_t squareDP = kFALSE);
50 
52  virtual ~Lau2DHistDPPdf();
53 
55 
58  Double_t getHistNorm() const {return norm_;}
59 
61 
66  Double_t interpolateXY(Double_t x, Double_t y) const;
67 
69 
74  Double_t interpolateXYNorm(Double_t x, Double_t y) const;
75 
76  protected:
78 
83  Double_t getBinHistValue(Int_t xBinNo, Int_t yBinNo) const;
84 
86  void calcHistNorm();
87 
89  void checkNormalisation();
90 
91  private:
93  Lau2DHistDPPdf( const Lau2DHistDPPdf& rhs );
94 
97 
99  TH2* hist_;
100 
102  Double_t minX_;
104  Double_t maxX_;
106  Double_t minY_;
108  Double_t maxY_;
110  Double_t rangeX_;
112  Double_t rangeY_;
113 
115  Double_t binXWidth_;
117  Double_t binYWidth_;
119  Double_t invBinXWidth_;
121  Double_t invBinYWidth_;
122 
124  Double_t maxHeight_;
125 
127  Int_t nBinsX_;
129  Int_t nBinsY_;
130 
132  Double_t norm_;
133 
136 
137  ClassDef(Lau2DHistDPPdf,0) // 2D Histogram utility class for DP analyses
138 };
139 
140 #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