laura is hosted by Hepforge, IPPP Durham
Laura++  v1r0
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 "Rtypes.h"
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  Double_t getMaxHeight() const {return maxHeight_;}
55 
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 calcMaxHeight();
86 
88  void calcHistNorm();
89 
91  void checkNormalisation();
92 
94  void doBinFluctuation();
95 
96  private:
98  TH2* hist_;
99 
102 
105 
107  Double_t minX_;
109  Double_t maxX_;
111  Double_t minY_;
113  Double_t maxY_;
115  Double_t rangeX_;
117  Double_t rangeY_;
118 
120  Double_t binXWidth_;
122  Double_t binYWidth_;
124  Double_t invBinXWidth_;
126  Double_t invBinYWidth_;
127 
129  Double_t maxHeight_;
130 
132  Int_t nBinsX_;
134  Int_t nBinsY_;
135 
137  Double_t norm_;
138 
142  Bool_t upperHalf_;
144  Bool_t squareDP_;
145 
146  ClassDef(Lau2DHistDPPdf,0) // 2D Histogram utility class for DP analyses
147 };
148 
149 #endif
Double_t minY_
The histogram y-axis minimum.
Double_t maxHeight_
The maximum height of 2D histogram.
const LauVetoes * vetoes_
Vetos within DP.
Double_t norm_
The histogram normalisation.
Double_t invBinYWidth_
The histogram y-axis inverse bin width.
Bool_t upperHalf_
Boolean for using the upper half of DP.
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.
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(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.
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 getMaxHeight() const
Retrieve maximum height.
void doBinFluctuation()
Fluctuate the histogram bin contents in accordance with their errors.
Double_t getBinHistValue(Int_t xBinNo, Int_t yBinNo) const
Get the bin content from the histogram.
Class for calculating 3-body kinematic quantities.
Bool_t squareDP_
Boolean for using square DP variables.
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
LauKinematics * kinematics_
DP kinematics.
void calcMaxHeight()
Calculate maximum height.