AmpGen 2.1
Loading...
Searching...
No Matches
kMatrix.h
Go to the documentation of this file.
1#ifndef AMPGEN_KMATRIX_H
2#define AMPGEN_KMATRIX_H
3
4#include "AmpGen/Expression.h"
5#include "AmpGen/Tensor.h"
6#include "AmpGen/Lineshapes.h"
7
8namespace AmpGen
9{
10 namespace Lineshape {
11
26 }
27
28 struct poleConfig {
30 std::vector<Expression> couplings;
31 std::vector<Expression> bl_factors;
32 poleConfig(const Expression& s, const std::vector<Expression>& c = {})
33 : s(s), couplings(c), bl_factors(c.size(), 1){};
34
35 void add(const Expression& coupling, const Expression& bl_factor = 1)
36 {
37 couplings.push_back( coupling );
38 bl_factors.push_back( bl_factor );
39 }
40 const Expression coupling(const unsigned& i) const { return couplings[i] * bl_factors[i]; }
41 const Expression g(const unsigned& i) const { return couplings[i]; }
42 };
43
44 Tensor constructKMatrix(const Expression& s, const unsigned& nChannels,
45 const std::vector<poleConfig>& poleConfigs);
46
47 Expression phsp_twoBody( const Expression& s, const double& m0, const double& m1 );
49 Expression phsp_FOCUS( const Expression& s, const double& m0, const double& m1 );
50 Expression gFromGamma( const Expression& m, const Expression& gamma, const Expression& rho );
51
52 std::vector<Parameter> paramVector( const std::string& name, const unsigned int& nParam );
53
54 Tensor getPropagator(const Tensor& kMatrix, const std::vector<Expression>& phaseSpace, DebugSymbols* db=nullptr);
55} // namespace AmpGen
56
57#endif /* end of include guard: AMPGEN_KMATRIX_H */
#define DECLARE_LINESHAPE(X)
Definition Lineshapes.h:43
Wrapper class for shared_ptrs to virtual expressions for use in conjunction with operators to build e...
Definition Expression.h:135
Namespace that contains all lineshapes, i.e.
Expression phsp_fourPi(const Expression &s)
Expression phsp_FOCUS(const Expression &s, const double &m0, const double &m1)
Expression phaseSpace(const Expression &s, const Particle &p, const size_t &l)
std::vector< Parameter > paramVector(const std::string &name, const unsigned int &nParam)
Expression phsp_twoBody(const Expression &s, const double &m0, const double &m1)
Expression gFromGamma(const Expression &m, const Expression &gamma, const Expression &rho)
std::vector< DebugSymbol > DebugSymbols
Definition Expression.h:111
Tensor getPropagator(const Tensor &kMatrix, const std::vector< Expression > &phaseSpace, DebugSymbols *db=nullptr)
Tensor constructKMatrix(const Expression &s, const unsigned &nChannels, const std::vector< poleConfig > &poleConfigs)
void add(const Expression &coupling, const Expression &bl_factor=1)
Definition kMatrix.h:35
Expression s
Definition kMatrix.h:29
std::vector< Expression > bl_factors
Definition kMatrix.h:31
const Expression coupling(const unsigned &i) const
Definition kMatrix.h:40
std::vector< Expression > couplings
Definition kMatrix.h:30
poleConfig(const Expression &s, const std::vector< Expression > &c={})
Definition kMatrix.h:32
const Expression g(const unsigned &i) const
Definition kMatrix.h:41