38 #ifndef AMPINTEGRALMATRIX_H
39 #define AMPINTEGRALMATRIX_H
51 #define BOOST_DISABLE_ASSERTS
52 #include <boost/multi_array.hpp>
62 class amplitudeTreeLeaf;
81 typedef integralMatrixType::size_type
sizeType;
123 std::complex<double>
element(
const unsigned int waveIndexI,
124 const unsigned int waveIndexJ)
const;
125 std::complex<double>
element(
const std::string& waveNameI,
126 const std::string& waveNameJ)
const
130 bool integrate(
const std::vector<std::string>& binAmpFileNames,
131 const std::vector<std::string>& rootAmpFileNames,
132 const unsigned long maxNmbEvents = 0,
133 const std::string& weightFileName =
"");
135 void renormalize(
const unsigned long nmbEventsRenorm);
137 bool writeAscii(std::ostream& out = std::cout)
const;
138 bool readAscii (std::istream& in = std::cin );
139 bool writeAscii(
const std::string& outFileName)
const;
140 bool readAscii (
const std::string& inFileName );
142 std::ostream&
print(std::ostream& out,
143 const bool printIntegralValues =
false)
const;
152 const std::vector<std::string>& ampFileNames,
153 const unsigned int waveIndexOffset = 0);
156 std::vector<rpwa::amplitudeTreeLeaf*>& ampTreeLeafs,
157 const std::vector<std::string>& ampFileNames,
158 const unsigned int waveIndexOffset = 0,
159 const std::string& ampLeafName =
"amplitude");
185 #ifdef USE_STD_COMPLEX_TREE_LEAFS
201 for (
unsigned int i = 0;
i < lhsInt.
nmbWaves(); ++
i) {
202 const std::string waveNameI = lhsInt.
waveName(
i);
203 for (
unsigned int j = 0; j < lhsInt.
nmbWaves(); ++j) {
204 const std::string waveNameJ = lhsInt.
waveName(j);
218 return not(lhsInt == rhsInt);
258 return integral * factor;
277 return integral.
print(out);
284 #endif // AMPINTEGRALMATRIX_H