laura is hosted by Hepforge, IPPP Durham
Laura++  v3r4
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 "Rtypes.h"
39 
40 #include "LauAbsPdf.hh"
41 
42 class LauDaughters;
43 class LauEffModel;
44 class LauParameter;
45 class TH2;
46 
47 
48 class LauDPDepSumPdf : public LauAbsPdf {
49 
50  public:
52  enum DPAxis {
53  M12,
54  M13,
55  M23,
57  MMIN,
59  };
60 
62 
70  LauDPDepSumPdf(LauAbsPdf* pdf1, LauAbsPdf* pdf2,
71  const LauDaughters* daughters,
72  const TH2* dpHisto, Bool_t upperHalf = kFALSE,
73  Bool_t useSpline = kFALSE);
74 
76 
84  LauDPDepSumPdf(LauAbsPdf* pdf1, LauAbsPdf* pdf2,
85  LauParameter* frac,
86  const LauDaughters* daughters,
87  const std::vector<Double_t>& fracCoeffs,
88  DPAxis dpAxis);
89 
91  virtual ~LauDPDepSumPdf();
92 
94 
97  virtual Bool_t isDPDependent() const {return kTRUE;}
98 
100 
103  virtual void cacheInfo(const LauFitDataTree& inputData);
104 
106 
109  virtual void calcLikelihoodInfo(const LauAbscissas& abscissas);
110 
112 
115  virtual void calcLikelihoodInfo(UInt_t iEvt);
116 
118  virtual void calcNorm();
119 
121 
124  virtual void calcPDFHeight( const LauKinematics* kinematics );
125 
126  protected:
128 
131  void scaleFrac( Double_t dpPos );
132 
133  private:
135  LauDPDepSumPdf(const LauDPDepSumPdf& other);
136 
138  LauDPDepSumPdf& operator=(const LauDPDepSumPdf& other);
139 
142 
147 
151  Double_t fracVal_;
154 
156  const std::vector<Double_t> fracCoeffs_;
157 
160 
162  std::vector<Double_t> fractions_;
163 
164  ClassDef(LauDPDepSumPdf,0) // Define the sum PDF
165 };
166 
167 #endif
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.
DPAxis
Define possibilties for the DP axes.
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.
LauDPDepSumPdf & operator=(const LauDPDepSumPdf &other)
Copy assignment operator - not implemented.
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:47
virtual void calcNorm()
Calculate the normalisation.
LauAbsPdf * pdf2_
Second PDF.
void scaleFrac(Double_t dpPos)
Scale fraction according to DP position.
LauAbsRValue * frac_
Fractional contribution of first PDF to the final PDF.
Class for defining a PDF that is the DP-dependent sum of two other PDFs.
std::vector< Double_t > fractions_
Cached values of fractions.
virtual ~LauDPDepSumPdf()
Destructor.
LauAbsPdf * pdf1_
First PDF.
virtual void calcPDFHeight(const LauKinematics *kinematics)
Calculate the PDF height.
const std::vector< Double_t > fracCoeffs_
Polynomial used to scale fraction.
Double_t fracVal_
Fractional contribution of first PDF to the final PDF.
virtual Bool_t isDPDependent() const
Specifies whether or not the PDF is DP dependent.
DPAxis dpAxis_
The DP axis we depend on.
Class for defining the fit parameter objects.
Definition: LauParameter.hh:49
File containing declaration of LauAbsPdf class.
Class that implements the efficiency description across the signal Dalitz plot.
Definition: LauEffModel.hh:51
Class for defining the abstract interface for PDF classes.
Definition: LauAbsPdf.hh:55
Class for calculating 3-body kinematic quantities.
LauDaughters * daughters_
Daughter particles.
LauEffModel * dpDependence_
DP dependence.
Pure abstract base class for defining a parameter containing an R value.
Definition: LauAbsRValue.hh:43
Class to store the input fit variables.
std::vector< Double_t > LauAbscissas
The type used for containing multiple abscissa values.
Definition: LauAbsPdf.hh:59