laura is hosted by Hepforge, IPPP Durham
Laura++  v3r5
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauDPPartialIntegralInfo.hh
Go to the documentation of this file.
1 
2 /*
3 Copyright 2014 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 
37 #ifndef LAU_DPPARTIALINTEGRAL_INFO
38 #define LAU_DPPARTIALINTEGRAL_INFO
39 
40 #include <iosfwd>
41 
42 #include "TString.h"
43 
44 #include "LauComplex.hh"
45 
46 class LauKinematics;
47 
48 
50 
51  public:
53 
66  LauDPPartialIntegralInfo(const Double_t minm13, const Double_t maxm13,
67  const Double_t minm23, const Double_t maxm23,
68  const Double_t m13BinWidth, const Double_t m23BinWidth,
69  const Double_t precision,
70  const UInt_t nAmp,
71  const UInt_t nIncohAmp,
72  const Bool_t squareDP = kFALSE,
73  const LauKinematics* kinematics = 0);
74 
76  virtual ~LauDPPartialIntegralInfo();
77 
79 
82  inline Double_t getMinm13() const {return minm13_;}
83 
85 
88  inline Double_t getMaxm13() const {return maxm13_;}
89 
91 
94  inline Double_t getMinm23() const {return minm23_;}
95 
97 
100  inline Double_t getMaxm23() const {return maxm23_;}
101 
103 
106  inline Double_t getM13BinWidth() const {return m13BinWidth_;}
107 
109 
112  inline Double_t getM23BinWidth() const {return m23BinWidth_;}
113 
115 
118  inline UInt_t getnm13Points() const {return nm13Points_;}
119 
121 
124  inline UInt_t getnm23Points() const {return nm23Points_;}
125 
127 
130  inline Bool_t getSquareDP() const {return squareDP_;}
131 
133 
138  inline Double_t getWeight(const UInt_t m13Point, const UInt_t m23Point) const {return weights_[m13Point][m23Point];}
139 
141 
145  inline Double_t getM13Value(const UInt_t m13Point) const {return m13Points_[m13Point];}
146 
148 
152  inline Double_t getM23Value(const UInt_t m23Point) const {return m23Points_[m23Point];}
153 
155 
160  inline Double_t getEfficiency(const UInt_t m13Point, const UInt_t m23Point) const { return efficiencies_[m13Point][m23Point]; }
161 
163 
168  inline void storeEfficiency(const UInt_t m13Point, const UInt_t m23Point, const Double_t efficiency) { efficiencies_[m13Point][m23Point] = efficiency; }
169 
171 
177  inline const LauComplex& getAmplitude(const UInt_t m13Point, const UInt_t m23Point, const UInt_t iAmp) const { return amplitudes_[m13Point][m23Point][iAmp]; }
178 
180 
186  inline void storeAmplitude(const UInt_t m13Point, const UInt_t m23Point, const UInt_t iAmp, const LauComplex& amplitude) { amplitudes_[m13Point][m23Point][iAmp] = amplitude; }
187 
189 
195  inline Double_t getIntensity(const UInt_t m13Point, const UInt_t m23Point, const UInt_t iAmp) const { return incohIntensities_[m13Point][m23Point][iAmp]; }
196 
198 
204  inline void storeIntensity(const UInt_t m13Point, const UInt_t m23Point, const UInt_t iAmp, const Double_t intensity) { incohIntensities_[m13Point][m23Point][iAmp] = intensity; }
205 
206  private:
209 
212 
214  const Double_t minm13_;
215 
217  const Double_t maxm13_;
218 
220  const Double_t minm23_;
221 
223  const Double_t maxm23_;
224 
226  const Double_t m13BinWidth_;
227 
229  const Double_t m23BinWidth_;
230 
232  const UInt_t nm13Points_;
233 
235  const UInt_t nm23Points_;
236 
238  const UInt_t nAmp_;
239 
241  const UInt_t nIncohAmp_;
242 
244  const Bool_t squareDP_;
245 
247  std::vector<Double_t> m13Points_;
248 
250  std::vector<Double_t> m23Points_;
251 
253  std::vector<Double_t> m13Weights_;
254 
256  std::vector<Double_t> m23Weights_;
257 
259  std::vector< std::vector<Double_t> > weights_;
260 
262  std::vector< std::vector<Double_t> > efficiencies_;
263 
265  std::vector< std::vector< std::vector<LauComplex> > > amplitudes_;
266 
268  std::vector< std::vector< std::vector<Double_t> > > incohIntensities_;
269 
270  ClassDef(LauDPPartialIntegralInfo, 0)
271 };
272 
273 std::ostream& operator<<( std::ostream& stream, const LauDPPartialIntegralInfo& infoRecord );
274 
275 #endif
Double_t getMinm13() const
Retrieve the minm13 of DP.
std::vector< Double_t > m23Points_
The m23 positions of the grid points.
void storeIntensity(const UInt_t m13Point, const UInt_t m23Point, const UInt_t iAmp, const Double_t intensity)
Store the intensity for the given grid point and intensity index.
const Bool_t squareDP_
Flag whether or not we&#39;re using the square DP for the integration.
virtual ~LauDPPartialIntegralInfo()
Destructor.
const UInt_t nm23Points_
The number of bins in m23.
const Double_t maxm13_
The maximum of the m13 range.
Double_t getM23BinWidth() const
Retrieve the m23BinWidth of DP.
Class for defining (a section of) the Dalitz plot integration binning scheme.
const Double_t m23BinWidth_
The bin width for m23.
LauDPPartialIntegralInfo(const Double_t minm13, const Double_t maxm13, const Double_t minm23, const Double_t maxm23, const Double_t m13BinWidth, const Double_t m23BinWidth, const Double_t precision, const UInt_t nAmp, const UInt_t nIncohAmp, const Bool_t squareDP=kFALSE, const LauKinematics *kinematics=0)
Constructor.
Double_t getM23Value(const UInt_t m23Point) const
Retrieve the m23 value at the given grid point.
UInt_t getnm23Points() const
Retrieve the number of bins in m23.
UInt_t getnm13Points() const
Retrieve the number of bins in m13.
const Double_t m13BinWidth_
The bin width for m13.
std::vector< Double_t > m23Weights_
The Gauss-Legendre weights of the m23 grid points.
std::ostream & operator<<(std::ostream &os, const LauComplex &z)
Definition: LauComplex.cc:57
Bool_t getSquareDP() const
Retrieve the square DP flag.
const Double_t minm13_
The minimum of the m13 range.
const Double_t minm23_
The minimum of the m23 range.
File containing declaration of LauComplex class.
Double_t getM13Value(const UInt_t m13Point) const
Retrieve the m13 value at the given grid point.
Double_t getMaxm13() const
Retrieve the maxm13 of DP.
LauDPPartialIntegralInfo & operator=(const LauDPPartialIntegralInfo &other)
Copy assignment operator (not implemented)
std::vector< std::vector< Double_t > > efficiencies_
The efficiency at each 2D grid point.
const UInt_t nIncohAmp_
The number of amplitude components.
std::vector< std::vector< Double_t > > weights_
The combined weights at each 2D grid point.
Double_t getWeight(const UInt_t m13Point, const UInt_t m23Point) const
Retrieve the weight for the given grid point.
Double_t getEfficiency(const UInt_t m13Point, const UInt_t m23Point) const
Retrieve the efficiency for the given grid point.
Double_t getMinm23() const
Retrieve the minm23 of DP.
Double_t getM13BinWidth() const
Retrieve the m13BinWidth of DP.
const UInt_t nm13Points_
The number of bins in m13.
Double_t getMaxm23() const
Retrieve the maxm23 of DP.
Class for defining a complex number.
Definition: LauComplex.hh:61
Double_t getIntensity(const UInt_t m13Point, const UInt_t m23Point, const UInt_t iAmp) const
Retrieve the intensity for the given grid point and intensity index.
std::vector< std::vector< std::vector< Double_t > > > incohIntensities_
The incoherent intensity values at each 2D grid point.
std::vector< Double_t > m13Points_
The m13 positions of the grid points.
Class for calculating 3-body kinematic quantities.
std::vector< Double_t > m13Weights_
The Gauss-Legendre weights of the m13 grid points.
void storeEfficiency(const UInt_t m13Point, const UInt_t m23Point, const Double_t efficiency)
Store the efficiency for the given grid point.
const LauComplex & getAmplitude(const UInt_t m13Point, const UInt_t m23Point, const UInt_t iAmp) const
Retrieve the amplitude for the given grid point and amplitude index.
void storeAmplitude(const UInt_t m13Point, const UInt_t m23Point, const UInt_t iAmp, const LauComplex &amplitude)
Store the amplitude for the given grid point and amplitude index.
std::vector< std::vector< std::vector< LauComplex > > > amplitudes_
The amplitude values at each 2D grid point.
const Double_t maxm23_
The maximum of the m23 range.
const UInt_t nAmp_
The number of amplitude components.