YAP
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DecayTreeVectorIntegral.h
Go to the documentation of this file.
1 /* YAP - Yet another PWA toolkit
2  Copyright 2015, Technische Universitaet Muenchen,
3  Authors: Daniel Greenwald, Johannes Rauch
4 
5  This program is free software: you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation, either version 3 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program. If not, see <http://www.gnu.org/licenses/>.
17  */
18 
20 
21 #ifndef yap_DecayTreeVectorIntegral_h
22 #define yap_DecayTreeVectorIntegral_h
23 
24 #include "IntegralElement.h"
25 
26 #include "fwd/DecayTreeVectorIntegral.h"
27 
28 #include "fwd/DecayTree.h"
29 #include "fwd/Model.h"
30 
31 #include <array>
32 #include <complex>
33 #include <map>
34 
35 namespace yap {
36 
51 {
52 public:
53 
56  explicit DecayTreeVectorIntegral(const DecayTreeVector& dtv);
57 
59  const RealIntegralElement integral(unsigned i) const;
60 
62  const RealIntegralElement integral(unsigned i, unsigned j) const;
63 
65  const DecayTreeVector& decayTrees() const
66  { return DecayTrees_; }
67 
69  const Model* model() const;
70 
72  const RealIntegralElementVector& diagonals() const
73  { return Diagonals_; }
74 
76  const ComplexIntegralElementMatrix& offDiagonals() const
77  { return OffDiagonals_; }
78 
82  const ComplexIntegralElement component(unsigned i, unsigned j) const;
83 
84  // addition operator
85  DecayTreeVectorIntegral& operator+=(const DecayTreeVectorIntegral& rhs);
86 
87  // multiplication operator
88  DecayTreeVectorIntegral& operator*=(double rhs);
89 
91  friend class Integrator;
92 
93 protected:
94 
95  DecayTreeVectorIntegral& reset();
96 
97 private:
98 
100  DecayTreeVector DecayTrees_;
101 
105  RealIntegralElementVector Diagonals_;
106 
111  ComplexIntegralElementMatrix OffDiagonals_;
112 
113 };
114 
117 const RealIntegralElement integral(const DecayTreeVectorIntegral& dtvi);
118 
121 const ComplexIntegralElementMatrix cached_integrals(const DecayTreeVectorIntegral& dtvi);
122 
125 const ComplexIntegralElementMatrix integrals(const DecayTreeVectorIntegral& dtvi);
126 
129 const RealIntegralElementVector diagonal_integrals(const DecayTreeVectorIntegral& dtvi);
130 
133 const RealIntegralElementVector fit_fractions(const DecayTreeVectorIntegral& dtvi);
134 
135 
136 }
137 
138 #endif
const ComplexIntegralElementMatrix cached_integrals(const DecayTreeVectorIntegral &dtvi)
Definition: DecayTreeVectorIntegral.cxx:115
const RealIntegralElement integral(unsigned i) const
Definition: DecayTreeVectorIntegral.cxx:30
const ComplexIntegralElementMatrix & offDiagonals() const
Definition: DecayTreeVectorIntegral.h:76
DecayTreeVector DecayTrees_
DecayTrees to integrate.
Definition: DecayTreeVectorIntegral.h:100
const RealIntegralElementVector fit_fractions(const DecayTreeVectorIntegral &dtvi)
Definition: DecayTreeVectorIntegral.cxx:106
const RealIntegralElementVector diagonal_integrals(const DecayTreeVectorIntegral &dtvi)
Definition: DecayTreeVectorIntegral.cxx:96
Integrates a model.
Definition: Integrator.h:34
const RealIntegralElementVector & diagonals() const
Definition: DecayTreeVectorIntegral.h:72
const DecayTreeVector & decayTrees() const
Definition: DecayTreeVectorIntegral.h:65
DecayTreeVectorIntegral(const DecayTreeVector &dtv)
Definition: DecayTreeVectorIntegral.cxx:14
Class implementing a PWA model.
Definition: Model.h:56
const RealIntegralElement integral(const DecayTreeVectorIntegral &dtvi)
Definition: DecayTreeVectorIntegral.cxx:142
const Model * model() const
Definition: DecayTreeVectorIntegral.cxx:24
const ComplexIntegralElementMatrix integrals(const DecayTreeVectorIntegral &dtvi)
Definition: DecayTreeVectorIntegral.cxx:127
const ComplexIntegralElement component(unsigned i, unsigned j) const
Definition: DecayTreeVectorIntegral.cxx:50
ComplexIntegralElementMatrix OffDiagonals_
Definition: DecayTreeVectorIntegral.h:111
RealIntegralElementVector Diagonals_
Definition: DecayTreeVectorIntegral.h:105
Stores integral components for a vector of decay trees.
Definition: DecayTreeVectorIntegral.h:50