laura is hosted by Hepforge, IPPP Durham
Laura++  3.6.0
A maximum likelihood fitting package for performing Dalitz-plot analysis.
Lau2DAbsHistDPPdf.hh
Go to the documentation of this file.
1 
2 /*
3 Copyright 2014 University of Warwick
4 
5 Licensed under the Apache License, Version 2.0 (the "License");
6 you may not use this file except in compliance with the License.
7 You may obtain a copy of the License at
8 
9  http://www.apache.org/licenses/LICENSE-2.0
10 
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16 */
17 
18 /*
19 Laura++ package authors:
20 John Back
21 Paul Harrison
22 Thomas Latham
23 */
24 
38 #ifndef LAU_2DABSHIST_DP_PDF
39 #define LAU_2DABSHIST_DP_PDF
40 
41 #include "Lau2DAbsDPPdf.hh"
42 
43 class TH2;
44 class LauKinematics;
45 class LauVetoes;
46 
48 
49  public:
51 
57  Lau2DAbsHistDPPdf( LauKinematics* kinematics,
58  const LauVetoes* vetoes,
59  Bool_t useUpperHalfOnly = kFALSE,
60  Bool_t squareDP = kFALSE );
61 
63  virtual ~Lau2DAbsHistDPPdf();
64 
66 
69  Double_t getMaxHeight() const { return maxHeight_; }
70 
72 
75  virtual Double_t getHistNorm() const = 0;
76 
78 
83  virtual Double_t interpolateXY( Double_t x, Double_t y ) const = 0;
84 
86 
91  virtual Double_t interpolateXYNorm( Double_t x, Double_t y ) const = 0;
92 
93  protected:
95 
98  const LauKinematics* getKinematics() const { return kinematics_; }
99 
101 
104  const LauVetoes* getVetoes() const { return vetoes_; }
105 
107 
110  void calcMaxHeight( TH2* hist );
111 
113 
116  void doBinFluctuation( TH2* hist );
117 
119 
124  Bool_t withinDPBoundaries( Double_t x, Double_t y ) const;
125 
127 
131  void updateKinematics( Double_t x, Double_t y ) const;
132 
134 
138  void getUpperHalf( Double_t& x, Double_t& y ) const;
139 
140  private:
143 
146 
149 
152 
154  Double_t maxHeight_;
155 
157  Bool_t upperHalf_;
159  Bool_t squareDP_;
160 
161  ClassDef( Lau2DAbsHistDPPdf, 0 ) // Abstract base class for 2D DP variations based on a histogram
162 };
163 
164 #endif
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.
Double_t getMaxHeight() const
Retrieve maximum height of the PDF.
void doBinFluctuation(TH2 *hist)
Fluctuate the histogram bin contents in accordance with their errors.
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.
Abstract base class for defining a variation across a 2D DP based on a histogram.
Double_t maxHeight_
The maximum height of 2D histogram.
const LauKinematics * getKinematics() const
Get the kinematics object.
const LauVetoes * getVetoes() const
Get the vetoes object.
virtual Double_t interpolateXY(Double_t x, Double_t y) const =0
Perform the interpolation (unnormalised)
Lau2DAbsHistDPPdf(const Lau2DAbsHistDPPdf &rhs)
Copy constructor - not implemented.
Pure abstract base class for defining a variation across a 2D DP.
File containing declaration of Lau2DAbsDPPdf class.
Bool_t squareDP_
Boolean for using square DP variables.
const LauVetoes * vetoes_
Vetos within DP.
Lau2DAbsHistDPPdf & operator=(const Lau2DAbsHistDPPdf &rhs)
Copy assignment operator - not implemented.
Bool_t withinDPBoundaries(Double_t x, Double_t y) const
Check whether the given co-ordinates are within the kinematic boundary.
LauKinematics * kinematics_
DP kinematics.
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.
Class for defining vetoes within the Dalitz plot.
Definition: LauVetoes.hh:49
virtual ~Lau2DAbsHistDPPdf()
Destructor.
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.
void calcMaxHeight(TH2 *hist)
Calculate maximum height.