laura is hosted by Hepforge, IPPP Durham
Laura++  v2r1
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 
59  protected:
61 
64  void doBinFluctuation(TH2* hist);
65 
67 
74  void raiseOrLowerBins(TH2* hist, Double_t avEff, Double_t avEffError);
75 
77 
82  Double_t computeAverageContents(TH2 const * const hist) const;
83 
85 
90  Bool_t withinDPBoundaries(Double_t x, Double_t y) const;
91 
93 
97  void getUpperHalf(Double_t& x, Double_t& y) const;
98 
99  private:
101  Lau2DAbsHistDP( const Lau2DAbsHistDP& rhs );
102 
105 
108 
110  Bool_t upperHalf_;
112  Bool_t squareDP_;
113 
114  ClassDef(Lau2DAbsHistDP,0) // Abstract base class for 2D DP variations based on a histogram
115 };
116 
117 #endif
Pure abstract base class for defining a variation across a 2D DP.
Definition: Lau2DAbsDP.hh:27
Double_t computeAverageContents(TH2 const *const hist) const
Compute the average bin content for bins within the kinematic boundary.
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.
void raiseOrLowerBins(TH2 *hist, Double_t avEff, Double_t avEffError)
Rescale the histogram bin contents based on the desired average efficiency and its uncertainty...
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.