laura is hosted by Hepforge, IPPP Durham
Laura++  v3r3
A maximum likelihood fitting package for performing Dalitz-plot analysis.
Lau2DAbsHistDPPdf.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_2DABSHIST_DP_PDF
25 #define LAU_2DABSHIST_DP_PDF
26 
27 #include "Lau2DAbsDPPdf.hh"
28 
29 class TH2;
30 class LauKinematics;
31 class LauVetoes;
32 
34 
35  public:
37 
43  Lau2DAbsHistDPPdf(LauKinematics* kinematics, const LauVetoes* vetoes,
44  Bool_t useUpperHalfOnly = kFALSE, Bool_t squareDP = kFALSE);
45 
47  virtual ~Lau2DAbsHistDPPdf();
48 
50 
53  Double_t getMaxHeight() const {return maxHeight_;}
54 
56 
59  virtual Double_t getHistNorm() const=0;
60 
62 
67  virtual Double_t interpolateXY(Double_t x, Double_t y) const=0;
68 
70 
75  virtual Double_t interpolateXYNorm(Double_t x, Double_t y) const=0;
76 
77  protected:
79 
82  const LauKinematics * getKinematics() const {return kinematics_;}
83 
85 
88  const LauVetoes * getVetoes() const {return vetoes_;}
89 
91 
94  void calcMaxHeight(TH2* hist);
95 
97 
100  void doBinFluctuation(TH2* hist);
101 
103 
108  Bool_t withinDPBoundaries(Double_t x, Double_t y) const;
109 
111 
115  void updateKinematics(Double_t x, Double_t y) const;
116 
118 
122  void getUpperHalf(Double_t& x, Double_t& y) const;
123 
124 
125  private:
127  Lau2DAbsHistDPPdf( const Lau2DAbsHistDPPdf& rhs );
128 
131 
134 
137 
139  Double_t maxHeight_;
140 
142  Bool_t upperHalf_;
144  Bool_t squareDP_;
145 
146  ClassDef(Lau2DAbsHistDPPdf,0) // Abstract base class for 2D DP variations based on a histogram
147 };
148 
149 #endif
virtual ~Lau2DAbsHistDPPdf()
Destructor.
Double_t maxHeight_
The maximum height of 2D histogram.
Pure abstract base class for defining a variation across a 2D DP.
Abstract base class for defining a variation across a 2D DP based on a histogram. ...
Bool_t withinDPBoundaries(Double_t x, Double_t y) const
Check whether the given co-ordinates are within the kinematic boundary.
Bool_t squareDP_
Boolean for using square DP variables.
const LauVetoes * getVetoes() const
Get the vetoes object.
void doBinFluctuation(TH2 *hist)
Fluctuate the histogram bin contents in accordance with their errors.
File containing declaration of Lau2DAbsDPPdf class.
const LauVetoes * vetoes_
Vetos within DP.
Lau2DAbsHistDPPdf(LauKinematics *kinematics, const LauVetoes *vetoes, Bool_t useUpperHalfOnly=kFALSE, Bool_t squareDP=kFALSE)
Constructor.
Bool_t upperHalf_
Boolean for using the upper half of DP.
Lau2DAbsHistDPPdf & operator=(const Lau2DAbsHistDPPdf &rhs)
Copy assignment operator - not implemented.
void getUpperHalf(Double_t &x, Double_t &y) const
If only using the upper half of the (symmetric) DP then transform into the correct half...
Double_t getMaxHeight() const
Retrieve maximum height of the PDF.
virtual Double_t interpolateXY(Double_t x, Double_t y) const =0
Perform the interpolation (unnormalised)
void calcMaxHeight(TH2 *hist)
Calculate maximum height.
virtual Double_t interpolateXYNorm(Double_t x, Double_t y) const =0
Perform the interpolation and divide by the normalisation.
virtual Double_t getHistNorm() const =0
Retrieve PDF normalisation.
const LauKinematics * getKinematics() const
Get the kinematics object.
Class for calculating 3-body kinematic quantities.
void updateKinematics(Double_t x, Double_t y) const
Update the current co-ordinates in the kinematic space.
Class for defining vetoes within the Dalitz plot.
Definition: LauVetoes.hh:36
LauKinematics * kinematics_
DP kinematics.