laura is hosted by Hepforge, IPPP Durham
Laura++  v3r5
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauEffModel.hh
Go to the documentation of this file.
1 
2 /*
3 Copyright 2004 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 LAUEFFMODEL
39 #define LAUEFFMODEL
40 
41 #include "LauAbsEffModel.hh"
42 
43 class TH2;
44 
45 class LauDaughters;
46 class LauKinematics;
47 class LauVetoes;
48 class Lau2DAbsDP;
49 
50 
51 class LauEffModel : public LauAbsEffModel {
52 
53  public:
55 
59  LauEffModel(const LauDaughters* daughters, const LauVetoes* vetoes);
60 
62  virtual ~LauEffModel();
63 
65 
78  void setEffHisto(const TH2* effHisto,
79  Bool_t useInterpolation = kTRUE, Bool_t fluctuateBins = kFALSE,
80  Double_t avEff = -1.0, Double_t absError = -1.0,
81  Bool_t useUpperHalfOnly = kFALSE, Bool_t squareDP = kFALSE);
82 
84 
99  void setEffHisto(const TH2* effHisto, const TH2* errorHi, const TH2* errorLo,
100  Bool_t useInterpolation = kTRUE, Bool_t fluctuateBins = kFALSE,
101  Double_t avEff = -1.0, Double_t absError = -1.0,
102  Bool_t useUpperHalfOnly = kFALSE, Bool_t squareDP = kFALSE);
103 
105 
117  void setEffSpline(const TH2* effHisto,
118  Bool_t fluctuateBins = kFALSE,
119  Double_t avEff = -1.0, Double_t absError = -1.0,
120  Bool_t useUpperHalfOnly = kFALSE, Bool_t squareDP = kFALSE);
121 
123 
137  void setEffSpline(const TH2* effHisto, const TH2* errorHi, const TH2* errorLo,
138  Bool_t fluctuateBins = kFALSE,
139  Double_t avEff = -1.0, Double_t absError = -1.0,
140  Bool_t useUpperHalfOnly = kFALSE, Bool_t squareDP = kFALSE);
141 
143 
154  void addEffHisto(const TH2* effHisto,
155  Bool_t useInterpolation = kTRUE,
156  Double_t avEff = -1.0, Double_t absError = -1.0,
157  Bool_t useUpperHalfOnly = kFALSE, Bool_t squareDP = kFALSE);
158 
160 
173  void addEffHisto(const TH2* effHisto, const TH2* errorHi, const TH2* errorLo,
174  Bool_t useInterpolation = kTRUE,
175  Double_t avEff = -1.0, Double_t absError = -1.0,
176  Bool_t useUpperHalfOnly = kFALSE, Bool_t squareDP = kFALSE);
177 
179 
189  void addEffSpline(const TH2* effHisto,
190  Double_t avEff = -1.0, Double_t absError = -1.0,
191  Bool_t useUpperHalfOnly = kFALSE, Bool_t squareDP = kFALSE);
192 
194 
206  void addEffSpline(const TH2* effHisto, const TH2* errorHi, const TH2* errorLo,
207  Double_t avEff = -1.0, Double_t absError = -1.0,
208  Bool_t useUpperHalfOnly = kFALSE, Bool_t squareDP = kFALSE);
209 
211 
217  Double_t calcEfficiency( const LauKinematics* kinematics ) const;
218 
220 
224  Bool_t passVeto( const LauKinematics* kinematics ) const;
225 
227  Bool_t fluctuateEffHisto() const {return fluctuateEffHisto_;}
228 
230  /*
231  \return the LauDaughters object associated with the DP
232  */
233  const LauDaughters* getDaughters() const {return daughters_;}
234 
235  private:
237  LauEffModel( const LauEffModel& rhs );
238 
240  LauEffModel& operator=( const LauEffModel& rhs );
241 
243 
246  Double_t getEffHistValue( const LauKinematics* kinematics ) const;
247 
250 
253 
255  std::vector<Lau2DAbsDP*> effHisto_;
256 
259 
261  mutable Bool_t lowBinWarningIssued_;
262 
264  mutable Bool_t highBinWarningIssued_;
265 
266  ClassDef(LauEffModel, 0) // Implement the signal efficiency across the DP
267 
268 };
269 
270 #endif
LauEffModel(const LauDaughters *daughters, const LauVetoes *vetoes)
Constructor.
Definition: LauEffModel.cc:43
Pure abstract base class for defining a variation across a 2D DP.
Definition: Lau2DAbsDP.hh:41
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:68
File containing declaration of LauAbsEffModel class.
const LauDaughters * daughters_
The daughters object.
Definition: LauEffModel.hh:249
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:47
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:182
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:227
Double_t getEffHistValue(const LauKinematics *kinematics) const
Get the efficiency from a two-dimensional histogram.
Definition: LauEffModel.cc:244
Bool_t passVeto(const LauKinematics *kinematics) const
Determine whether the given DP position is outside the vetoes.
Definition: LauEffModel.cc:315
Double_t calcEfficiency(const LauKinematics *kinematics) const
Determine the efficiency for a given point in the Dalitz plot.
Definition: LauEffModel.cc:268
Bool_t highBinWarningIssued_
Flag to track whether a warning has been issued for bin values greater than one.
Definition: LauEffModel.hh:264
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:126
const LauVetoes * vetoes_
The vetoes object.
Definition: LauEffModel.hh:252
const LauDaughters * getDaughters() const
Return the daughters object.
Definition: LauEffModel.hh:233
Bool_t lowBinWarningIssued_
Flag to track whether a warning has been issued for bin values less than zero.
Definition: LauEffModel.hh:261
Class that implements the efficiency description across the signal Dalitz plot.
Definition: LauEffModel.hh:51
Class for calculating 3-body kinematic quantities.
std::vector< Lau2DAbsDP * > effHisto_
The efficiency histogram objects.
Definition: LauEffModel.hh:255
Bool_t fluctuateEffHisto_
Fluctuate histogram within the error.
Definition: LauEffModel.hh:258
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:214
Class for defining vetoes within the Dalitz plot.
Definition: LauVetoes.hh:50
virtual ~LauEffModel()
Destructor.
Definition: LauEffModel.cc:57