laura is hosted by Hepforge, IPPP Durham
Laura++  3.6.0
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauDPDepSumPdf.hh
Go to the documentation of this file.
1 
2 /*
3 Copyright 2009 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 
35 #ifndef LAU_DPDEPSUM_PDF
36 #define LAU_DPDEPSUM_PDF
37 
38 #include "LauAbsPdf.hh"
39 
40 #include "Rtypes.h"
41 
42 class LauDaughters;
43 class LauEffModel;
44 class LauParameter;
45 class TH2;
46 
47 class LauDPDepSumPdf : public LauAbsPdf {
48 
49  public:
51  enum DPAxis {
52  M12,
53  M13,
54  M23,
56  MMIN,
57  MMAX
58  };
59 
61 
70  LauAbsPdf* pdf2,
71  const LauDaughters* daughters,
72  const TH2* dpHisto,
73  Bool_t upperHalf = kFALSE,
74  Bool_t useSpline = kFALSE );
75 
77 
86  LauAbsPdf* pdf2,
87  LauParameter* frac,
88  const LauDaughters* daughters,
89  const std::vector<Double_t>& fracCoeffs,
90  DPAxis dpAxis );
91 
93  virtual ~LauDPDepSumPdf();
94 
96 
99  virtual Bool_t isDPDependent() const { return kTRUE; }
100 
102 
105  virtual void cacheInfo( const LauFitDataTree& inputData );
106 
108 
111  virtual void calcLikelihoodInfo( const LauAbscissas& abscissas );
112 
114 
117  virtual void calcLikelihoodInfo( UInt_t iEvt );
118 
120  virtual void calcNorm();
121 
123 
126  virtual void calcPDFHeight( const LauKinematics* kinematics );
127 
128  protected:
130 
133  void scaleFrac( Double_t dpPos );
134 
135  private:
138 
141 
144 
149 
153  Double_t fracVal_;
156 
158  const std::vector<Double_t> fracCoeffs_;
159 
162 
164  std::vector<Double_t> fractions_;
165 
166  ClassDef( LauDPDepSumPdf, 0 ) // Define the sum PDF
167 };
168 
169 #endif
virtual ~LauDPDepSumPdf()
Destructor.
virtual void calcPDFHeight(const LauKinematics *kinematics)
Calculate the PDF height.
LauDPDepSumPdf(LauAbsPdf *pdf1, LauAbsPdf *pdf2, const LauDaughters *daughters, const TH2 *dpHisto, Bool_t upperHalf=kFALSE, Bool_t useSpline=kFALSE)
Constructor - fraction determined by 2D histogram.
File containing declaration of LauAbsPdf class.
LauDPDepSumPdf & operator=(const LauDPDepSumPdf &other)
Copy assignment operator - not implemented.
LauAbsPdf * pdf1_
First PDF.
virtual void calcNorm()
Calculate the normalisation.
DPAxis dpAxis_
The DP axis we depend on.
Class for defining the fit parameter objects.
Definition: LauParameter.hh:49
virtual void cacheInfo(const LauFitDataTree &inputData)
Cache information from data.
virtual void calcLikelihoodInfo(const LauAbscissas &abscissas)
Calculate the likelihood (and intermediate info) for a given abscissa.
Double_t fracVal_
Fractional contribution of first PDF to the final PDF.
LauAbsRValue * frac_
Fractional contribution of first PDF to the final PDF.
std::vector< Double_t > LauAbscissas
The type used for containing multiple abscissa values.
Definition: LauAbsPdf.hh:58
void scaleFrac(Double_t dpPos)
Scale fraction according to DP position.
virtual Bool_t isDPDependent() const
Specifies whether or not the PDF is DP dependent.
Class to store the input fit variables.
Class that implements the efficiency description across the signal Dalitz plot.
Definition: LauEffModel.hh:50
LauDPDepSumPdf(const LauDPDepSumPdf &other)
Copy constructor - not implemented.
LauAbsPdf * pdf2_
Second PDF.
Class for defining the abstract interface for PDF classes.
Definition: LauAbsPdf.hh:54
Pure abstract base class for defining a parameter containing an R value.
Definition: LauAbsRValue.hh:45
const std::vector< Double_t > fracCoeffs_
Polynomial used to scale fraction.
LauEffModel * dpDependence_
DP dependence.
Class for calculating 3-body kinematic quantities.
LauDaughters * daughters_
Daughter particles.
Class for defining a PDF that is the DP-dependent sum of two other PDFs.
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:47
DPAxis
Define possibilties for the DP axes.
std::vector< Double_t > fractions_
Cached values of fractions.