laura is hosted by Hepforge, IPPP Durham
Laura++  v3r3
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 
221  private:
223  LauEffModel( const LauEffModel& rhs );
224 
226  LauEffModel& operator=( const LauEffModel& rhs );
227 
229 
232  Double_t getEffHistValue( const LauKinematics* kinematics ) const;
233 
236 
239 
241  std::vector<Lau2DAbsDP*> effHisto_;
242 
245 
247  mutable Bool_t lowBinWarningIssued_;
248 
250  mutable Bool_t highBinWarningIssued_;
251 
252  ClassDef(LauEffModel, 0) // Implement the signal efficiency across the DP
253 
254 };
255 
256 #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:54
File containing declaration of LauAbsEffModel class.
const LauDaughters * daughters_
The daughters object.
Definition: LauEffModel.hh:235
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:168
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(const LauKinematics *kinematics) const
Get the efficiency from a two-dimensional histogram.
Definition: LauEffModel.cc:230
Bool_t passVeto(const LauKinematics *kinematics) const
Determine whether the given DP position is outside the vetoes.
Definition: LauEffModel.cc:301
Double_t calcEfficiency(const LauKinematics *kinematics) const
Determine the efficiency for a given point in the Dalitz plot.
Definition: LauEffModel.cc:254
Bool_t highBinWarningIssued_
Flag to track whether a warning has been issued for bin values greater than one.
Definition: LauEffModel.hh:250
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:112
const LauVetoes * vetoes_
The vetoes object.
Definition: LauEffModel.hh:238
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:247
Class that implements the efficiency description across the signal Dalitz plot.
Definition: LauEffModel.hh:37
Class for calculating 3-body kinematic quantities.
std::vector< Lau2DAbsDP * > effHisto_
The efficiency histogram objects.
Definition: LauEffModel.hh:241
Bool_t fluctuateEffHisto_
Fluctuate histogram within the error.
Definition: LauEffModel.hh:244
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:200
Class for defining vetoes within the Dalitz plot.
Definition: LauVetoes.hh:36
virtual ~LauEffModel()
Destructor.
Definition: LauEffModel.cc:43