laura is hosted by Hepforge, IPPP Durham
Laura++  3.6.0
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 class LauEffModel : public LauAbsEffModel {
51 
52  public:
54 
58  LauEffModel( const LauDaughters* daughters, const LauVetoes* vetoes );
59 
61  virtual ~LauEffModel();
62 
64 
79  void setEffHisto( const TH2* effHisto,
80  Bool_t useInterpolation = kTRUE,
81  Bool_t fluctuateBins = kFALSE,
82  Double_t avEff = -1.0,
83  Double_t absError = -1.0,
84  Bool_t useUpperHalfOnly = kFALSE,
85  Bool_t squareDP = kFALSE );
86 
88 
105  void setEffHisto( const TH2* effHisto,
106  const TH2* errorHi,
107  const TH2* errorLo,
108  Bool_t useInterpolation = kTRUE,
109  Bool_t fluctuateBins = kFALSE,
110  Double_t avEff = -1.0,
111  Double_t absError = -1.0,
112  Bool_t useUpperHalfOnly = kFALSE,
113  Bool_t squareDP = kFALSE );
114 
116 
130  void setEffSpline( const TH2* effHisto,
131  Bool_t fluctuateBins = kFALSE,
132  Double_t avEff = -1.0,
133  Double_t absError = -1.0,
134  Bool_t useUpperHalfOnly = kFALSE,
135  Bool_t squareDP = kFALSE );
136 
138 
154  void setEffSpline( const TH2* effHisto,
155  const TH2* errorHi,
156  const TH2* errorLo,
157  Bool_t fluctuateBins = kFALSE,
158  Double_t avEff = -1.0,
159  Double_t absError = -1.0,
160  Bool_t useUpperHalfOnly = kFALSE,
161  Bool_t squareDP = kFALSE );
162 
164 
176  void addEffHisto( const TH2* effHisto,
177  Bool_t useInterpolation = kTRUE,
178  Double_t avEff = -1.0,
179  Double_t absError = -1.0,
180  Bool_t useUpperHalfOnly = kFALSE,
181  Bool_t squareDP = kFALSE );
182 
184 
198  void addEffHisto( const TH2* effHisto,
199  const TH2* errorHi,
200  const TH2* errorLo,
201  Bool_t useInterpolation = kTRUE,
202  Double_t avEff = -1.0,
203  Double_t absError = -1.0,
204  Bool_t useUpperHalfOnly = kFALSE,
205  Bool_t squareDP = kFALSE );
206 
208 
219  void addEffSpline( const TH2* effHisto,
220  Double_t avEff = -1.0,
221  Double_t absError = -1.0,
222  Bool_t useUpperHalfOnly = kFALSE,
223  Bool_t squareDP = kFALSE );
224 
226 
239  void addEffSpline( const TH2* effHisto,
240  const TH2* errorHi,
241  const TH2* errorLo,
242  Double_t avEff = -1.0,
243  Double_t absError = -1.0,
244  Bool_t useUpperHalfOnly = kFALSE,
245  Bool_t squareDP = kFALSE );
246 
248 
254  Double_t calcEfficiency( const LauKinematics* kinematics ) const;
255 
257 
261  Bool_t passVeto( const LauKinematics* kinematics ) const;
262 
264  Bool_t fluctuateEffHisto() const { return fluctuateEffHisto_; }
265 
267  /*
268  \return the LauDaughters object associated with the DP
269  */
270  const LauDaughters* getDaughters() const { return daughters_; }
271 
272  private:
274  LauEffModel( const LauEffModel& rhs );
275 
278 
280 
283  Double_t getEffHistValue( const LauKinematics* kinematics ) const;
284 
287 
290 
292  std::vector<Lau2DAbsDP*> effHisto_;
293 
296 
298  mutable Bool_t lowBinWarningIssued_;
299 
301  mutable Bool_t highBinWarningIssued_;
302 
303  ClassDef( LauEffModel, 0 ) // Implement the signal efficiency across the DP
304 };
305 
306 #endif
File containing declaration of LauAbsEffModel class.
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:289
const LauDaughters * getDaughters() const
Return the daughters object.
Definition: LauEffModel.hh:270
virtual ~LauEffModel()
Destructor.
Definition: LauEffModel.cc:57
LauEffModel & operator=(const LauEffModel &rhs)
Copy assignment operator - not implemented.
std::vector< Lau2DAbsDP * > effHisto_
The efficiency histogram objects.
Definition: LauEffModel.hh:292
Bool_t fluctuateEffHisto_
Fluctuate histogram within the error.
Definition: LauEffModel.hh:295
Pure abstract base class for defining a variation across a 2D DP.
Definition: Lau2DAbsDP.hh:40
Double_t calcEfficiency(const LauKinematics *kinematics) const
Determine the efficiency for a given point in the Dalitz plot.
Definition: LauEffModel.cc:367
LauEffModel(const LauDaughters *daughters, const LauVetoes *vetoes)
Constructor.
Definition: LauEffModel.cc:42
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
const LauVetoes * vetoes_
The vetoes object.
Definition: LauEffModel.hh:289
Bool_t lowBinWarningIssued_
Flag to track whether a warning has been issued for bin values less than zero.
Definition: LauEffModel.hh:298
Class that implements the efficiency description across the signal Dalitz plot.
Definition: LauEffModel.hh:50
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:231
LauEffModel(const LauEffModel &rhs)
Copy constructor - not implemented.
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:154
Bool_t highBinWarningIssued_
Flag to track whether a warning has been issued for bin values greater than one.
Definition: LauEffModel.hh:301
Class for defining vetoes within the Dalitz plot.
Definition: LauVetoes.hh:49
Class for calculating 3-body kinematic quantities.
Pure abstract base class for defining the efficiency description across the signal Dalitz plot.
Bool_t passVeto(const LauKinematics *kinematics) const
Determine whether the given DP position is outside the vetoes.
Definition: LauEffModel.cc:420
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:47
Double_t getEffHistValue(const LauKinematics *kinematics) const
Get the efficiency from a two-dimensional histogram.
Definition: LauEffModel.cc:343
Bool_t fluctuateEffHisto() const
Determine whether the efficiency histogram has had its bins fluctuated within their errors.
Definition: LauEffModel.hh:264
const LauDaughters * daughters_
The daughters object.
Definition: LauEffModel.hh:286