laura is hosted by Hepforge, IPPP Durham
Laura++  v3r2
A maximum likelihood fitting package for performing Dalitz-plot analysis.
Lau2DAbsHistDP.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 
25 #ifndef LAU_2DABSHIST_DP
26 #define LAU_2DABSHIST_DP
27 
28 #include "Lau2DAbsDP.hh"
29 
30 class TH2;
31 class LauDaughters;
32 class LauKinematics;
33 
34 class Lau2DAbsHistDP : public Lau2DAbsDP {
35 
36  public:
38 
43  Lau2DAbsHistDP(const LauDaughters* daughters, Bool_t useUpperHalfOnly = kFALSE, Bool_t squareDP = kFALSE);
44 
46  //Lau2DAbsHistDP( const Lau2DAbsHistDP& rhs );
47 
49  virtual ~Lau2DAbsHistDP();
50 
52 
57  virtual Double_t interpolateXY(Double_t x, Double_t y) const=0;
58 
60  /*
61  \return kTRUE if the square DP is being used, kFALSE otherwise
62  */
63  virtual Bool_t usingSquareDP() const { return squareDP_; };
64 
65  protected:
67 
70  void doBinFluctuation(TH2* hist);
71 
73 
78  void doBinFluctuation(TH2* hist, const TH2* errorHi, const TH2* errorLo);
79 
81 
88  void raiseOrLowerBins(TH2* hist, const Double_t avEff, const Double_t avEffError);
89 
91 
96  Double_t computeAverageContents(const TH2* hist) const;
97 
99 
104  Bool_t withinDPBoundaries(Double_t x, Double_t y) const;
105 
107 
111  void getUpperHalf(Double_t& x, Double_t& y) const;
112 
113  private:
115  Lau2DAbsHistDP( const Lau2DAbsHistDP& rhs );
116 
119 
122 
124  Bool_t upperHalf_;
125 
127  Bool_t squareDP_;
128 
129  ClassDef(Lau2DAbsHistDP,0) // Abstract base class for 2D DP variations based on a histogram
130 };
131 
132 #endif
Pure abstract base class for defining a variation across a 2D DP.
Definition: Lau2DAbsDP.hh:27
void raiseOrLowerBins(TH2 *hist, const Double_t avEff, const Double_t avEffError)
Rescale the histogram bin contents based on the desired average efficiency and its uncertainty...
void doBinFluctuation(TH2 *hist)
Fluctuate the contents of each histogram bin independently, in accordance with their errors...
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:33
virtual Double_t interpolateXY(Double_t x, Double_t y) const =0
Perform the interpolation.
Lau2DAbsHistDP(const LauDaughters *daughters, Bool_t useUpperHalfOnly=kFALSE, Bool_t squareDP=kFALSE)
Constructor.
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.
virtual ~Lau2DAbsHistDP()
Copy constructor.
virtual Bool_t usingSquareDP() const
Determine whether the histogram is defined in the square DP.
Bool_t squareDP_
Boolean for using square DP variables.
const LauKinematics * kinematics_
Kinematics used to check events are within DP boundary.
Lau2DAbsHistDP & operator=(const Lau2DAbsHistDP &rhs)
Copy assignment operator - not implemented.
Bool_t upperHalf_
Boolean for using the upper half of DP.
File containing declaration of Lau2DAbsDP class.
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...
Class for calculating 3-body kinematic quantities.
Double_t computeAverageContents(const TH2 *hist) const
Compute the average bin content for bins within the kinematic boundary.