laura is hosted by Hepforge, IPPP Durham
Laura++  v3r1
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauEffModel.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 LAUEFFMODEL
25 #define LAUEFFMODEL
26 
27 #include "LauAbsEffModel.hh"
28 
29 class TH2;
30 
31 class LauDaughters;
32 class LauKinematics;
33 class LauVetoes;
34 class Lau2DAbsDP;
35 
36 
37 class LauEffModel : public LauAbsEffModel {
38 
39  public:
41 
45  LauEffModel(const LauDaughters* daughters, const LauVetoes* vetoes);
46 
48  virtual ~LauEffModel();
49 
51 
64  void setEffHisto(const TH2* effHisto,
65  Bool_t useInterpolation = kTRUE, Bool_t fluctuateBins = kFALSE,
66  Double_t avEff = -1.0, Double_t absError = -1.0,
67  Bool_t useUpperHalfOnly = kFALSE, Bool_t squareDP = kFALSE);
68 
70 
85  void setEffHisto(const TH2* effHisto, const TH2* errorHi, const TH2* errorLo,
86  Bool_t useInterpolation = kTRUE, Bool_t fluctuateBins = kFALSE,
87  Double_t avEff = -1.0, Double_t absError = -1.0,
88  Bool_t useUpperHalfOnly = kFALSE, Bool_t squareDP = kFALSE);
89 
91 
103  void setEffSpline(const TH2* effHisto,
104  Bool_t fluctuateBins = kFALSE,
105  Double_t avEff = -1.0, Double_t absError = -1.0,
106  Bool_t useUpperHalfOnly = kFALSE, Bool_t squareDP = kFALSE);
107 
109 
123  void setEffSpline(const TH2* effHisto, const TH2* errorHi, const TH2* errorLo,
124  Bool_t fluctuateBins = kFALSE,
125  Double_t avEff = -1.0, Double_t absError = -1.0,
126  Bool_t useUpperHalfOnly = kFALSE, Bool_t squareDP = kFALSE);
127 
129 
140  void addEffHisto(const TH2* effHisto,
141  Bool_t useInterpolation = kTRUE,
142  Double_t avEff = -1.0, Double_t absError = -1.0,
143  Bool_t useUpperHalfOnly = kFALSE, Bool_t squareDP = kFALSE);
144 
146 
159  void addEffHisto(const TH2* effHisto, const TH2* errorHi, const TH2* errorLo,
160  Bool_t useInterpolation = kTRUE,
161  Double_t avEff = -1.0, Double_t absError = -1.0,
162  Bool_t useUpperHalfOnly = kFALSE, Bool_t squareDP = kFALSE);
163 
165 
175  void addEffSpline(const TH2* effHisto,
176  Double_t avEff = -1.0, Double_t absError = -1.0,
177  Bool_t useUpperHalfOnly = kFALSE, Bool_t squareDP = kFALSE);
178 
180 
192  void addEffSpline(const TH2* effHisto, const TH2* errorHi, const TH2* errorLo,
193  Double_t avEff = -1.0, Double_t absError = -1.0,
194  Bool_t useUpperHalfOnly = kFALSE, Bool_t squareDP = kFALSE);
195 
197 
203  Double_t calcEfficiency( const LauKinematics* kinematics ) const;
204 
206 
210  Bool_t passVeto( const LauKinematics* kinematics ) const;
211 
213  Bool_t fluctuateEffHisto() const {return fluctuateEffHisto_;}
214 
216  /*
217  \return the LauDaughters object associated with the DP
218  */
219  const LauDaughters* getDaughters() const {return daughters_;}
220 
222  /*
223  \return kTRUE if the square DP is being used, kFALSE otherwise
224  */
225  Bool_t usingSquareDP() const {return squareDP_;}
226 
227  private:
229  LauEffModel( const LauEffModel& rhs );
230 
232  LauEffModel& operator=( const LauEffModel& rhs );
233 
235 
239  Double_t getEffHistValue(Double_t xVal, Double_t yVal) const;
240 
243 
246 
248  std::vector<Lau2DAbsDP*> effHisto_;
249 
251  Bool_t squareDP_;
254 
256  mutable Bool_t lowBinWarningIssued_;
257 
259  mutable Bool_t highBinWarningIssued_;
260 
261  ClassDef(LauEffModel, 0) // Implement the signal efficiency across the DP
262 
263 };
264 
265 #endif
LauEffModel(const LauDaughters *daughters, const LauVetoes *vetoes)
Constructor.
Definition: LauEffModel.cc:29
Pure abstract base class for defining a variation across a 2D DP.
Definition: Lau2DAbsDP.hh:27
void setEffHisto(const TH2 *effHisto, Bool_t useInterpolation=kTRUE, Bool_t fluctuateBins=kFALSE, Double_t avEff=-1.0, Double_t absError=-1.0, Bool_t useUpperHalfOnly=kFALSE, Bool_t squareDP=kFALSE)
Set the efficiency variation across the phase space using a predetermined 2D histogram.
Definition: LauEffModel.cc:55
File containing declaration of LauAbsEffModel class.
const LauDaughters * daughters_
The daughters object.
Definition: LauEffModel.hh:242
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:33
void addEffHisto(const TH2 *effHisto, Bool_t useInterpolation=kTRUE, Double_t avEff=-1.0, Double_t absError=-1.0, Bool_t useUpperHalfOnly=kFALSE, Bool_t squareDP=kFALSE)
Add a multiplicative efficiency variation across the phase space using a predetermined 2D histogram...
Definition: LauEffModel.cc:177
Pure abstract base class for defining the efficiency description across the signal Dalitz plot...
LauEffModel & operator=(const LauEffModel &rhs)
Copy assignment operator - not implemented.
Bool_t fluctuateEffHisto() const
Determine whether the efficiency histogram has had its bins fluctuated within their errors...
Definition: LauEffModel.hh:213
Double_t getEffHistValue(Double_t xVal, Double_t yVal) const
Get the efficiency from a two-dimensional histogram by interpolating in x and y.
Definition: LauEffModel.cc:247
Bool_t passVeto(const LauKinematics *kinematics) const
Determine whether the given DP position is outside the vetoes.
Definition: LauEffModel.cc:314
Double_t calcEfficiency(const LauKinematics *kinematics) const
Determine the efficiency for a given point in the Dalitz plot.
Definition: LauEffModel.cc:261
Bool_t highBinWarningIssued_
Flag to track whether a warning has been issued for bin values greater than one.
Definition: LauEffModel.hh:259
void setEffSpline(const TH2 *effHisto, Bool_t fluctuateBins=kFALSE, Double_t avEff=-1.0, Double_t absError=-1.0, Bool_t useUpperHalfOnly=kFALSE, Bool_t squareDP=kFALSE)
Set the efficiency variation across the phase space using a spline based on a predetermined 2D histog...
Definition: LauEffModel.cc:117
const LauVetoes * vetoes_
The vetoes object.
Definition: LauEffModel.hh:245
const LauDaughters * getDaughters() const
Return the daughters object.
Definition: LauEffModel.hh:219
Bool_t lowBinWarningIssued_
Flag to track whether a warning has been issued for bin values less than zero.
Definition: LauEffModel.hh:256
Class that implements the efficiency description across the signal Dalitz plot.
Definition: LauEffModel.hh:37
Bool_t squareDP_
Use of the square Dalitz plot.
Definition: LauEffModel.hh:251
Class for calculating 3-body kinematic quantities.
std::vector< Lau2DAbsDP * > effHisto_
The efficiency histogram objects.
Definition: LauEffModel.hh:248
Bool_t fluctuateEffHisto_
Fluctuate histogram within the error.
Definition: LauEffModel.hh:253
void addEffSpline(const TH2 *effHisto, Double_t avEff=-1.0, Double_t absError=-1.0, Bool_t useUpperHalfOnly=kFALSE, Bool_t squareDP=kFALSE)
Add a multiplicative efficiency variation across the phase space using a spline based on a predetermi...
Definition: LauEffModel.cc:213
Class for defining vetoes within the Dalitz plot.
Definition: LauVetoes.hh:33
virtual ~LauEffModel()
Destructor.
Definition: LauEffModel.cc:44
Bool_t usingSquareDP() const
Determine whether the efficiency histogram is in the square DP.
Definition: LauEffModel.hh:225