herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
KMatrix.h
1// -*- C++ -*-
2#ifndef Herwig_KMatrix_H
3#define Herwig_KMatrix_H
4//
5// This is the declaration of the KMatrix class.
6//
7
8#include "ThePEG/Interface/Interfaced.h"
9#include "Herwig/Decay/IsoSpin.h"
10#include "KMatrix.fh"
11#include <boost/numeric/ublas/matrix.hpp>
12#include "Herwig/Utilities/Interpolator.h"
13
14namespace Herwig {
15namespace ublas = boost::numeric::ublas;
16using namespace ThePEG;
17
25class KMatrix: public Interfaced {
26
27public:
28
32 enum Channels { PiPi, KPi, KEta, KEtaPrime, KK, EtaEta,EtaEtaPrime,FourPi};
33
34public:
35
40 vector<Channels> channels=vector<Channels>(),
41 vector<Energy2> poles=vector<Energy2>(),
42 vector<vector<Energy> > g=vector<vector<Energy> >());
43
48 return flavour_;
49 };
50
56 virtual ublas::matrix<double> K(Energy2 s, bool multiplyByPoles=false) const = 0;
57
61 virtual ublas::matrix<Complex> rho(Energy2 s) const;
62
66 const vector<Energy2> & poles() const {return poles_;}
67
71 const vector<vector<Energy> > & poleCouplings() const {return g_;}
72
77 virtual ublas::vector<Complex>
78 amplitudes(Energy2 s, ublas::vector<Complex> pVector,
79 bool multiplyByPoles=false) const;
80
84 unsigned int numberOfChannels() {return channels_.size();}
85
89 string setCouplings(string arg);
90
94 string setPoles(string arg);
95
96public:
97
105
111 void persistentInput(PersistentIStream & is, int version);
113
120 static void Init();
121
122protected:
123
131 virtual void doinit();
133
134private:
135
140 KMatrix & operator=(const KMatrix &) = delete;
141
142private:
143
148
152 vector<Channels> channels_;
153
157 vector<Energy2> poles_;
158
162 vector<vector<Energy> > g_;
163
164private:
165
173 Energy mPiPlus_;
174
178 Energy mPi0_;
179
183 Energy mKPlus_;
184
188 Energy mK0_;
189
193 Energy mEta_;
194
200
209
213 double rho0_;
214
218 double n_;
219
223 vector<Energy2> en_;
224
228 vector<double> rho_;
229
235};
236
237}
238
239#endif /* Herwig_KMatrix_H */
Ptr< Interpolator< ValT, ArgT > >::pointer Ptr
Pointer to an Interpolator.
Definition: Interpolator.h:38
The KMatrix class is a base class for the implementation of K-matrix parameterizations in Herwig.
Definition: KMatrix.h:25
double n_
Power.
Definition: KMatrix.h:218
const vector< vector< Energy > > & poleCouplings() const
Access the couplings of the poles.
Definition: KMatrix.h:71
Energy mEtaPrime_
The mass.
Definition: KMatrix.h:198
unsigned int numberOfChannels()
The number of channels.
Definition: KMatrix.h:84
KMatrix(FlavourInfo flavour=FlavourInfo(), vector< Channels > channels=vector< Channels >(), vector< Energy2 > poles=vector< Energy2 >(), vector< vector< Energy > > g=vector< vector< Energy > >())
The default constructor.
double rho0_
Matching constant.
Definition: KMatrix.h:213
Energy mEta_
The mass.
Definition: KMatrix.h:193
virtual ublas::vector< Complex > amplitudes(Energy2 s, ublas::vector< Complex > pVector, bool multiplyByPoles=false) const
Compute the amplitdes given the -vector.
vector< Energy2 > en_
Energy values for interpolator.
Definition: KMatrix.h:223
FlavourInfo flavour_
The quantum numbers for the K-matrix.
Definition: KMatrix.h:147
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Energy mPi0_
The neutral pion mass.
Definition: KMatrix.h:178
string setPoles(string arg)
Set the pole values.
FlavourInfo flavourInfo() const
The quantum numbers of the K-matrix.
Definition: KMatrix.h:47
const vector< Energy2 > & poles() const
Vector containing the locations of the poles.
Definition: KMatrix.h:66
KMatrix & operator=(const KMatrix &)=delete
The assignment operator is private and must never be called.
bool initTable_
Parameters for the four piojn phase space.
Definition: KMatrix.h:208
string setCouplings(string arg)
Set the couplings.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Energy mKPlus_
The charged kaon mass.
Definition: KMatrix.h:183
vector< double > rho_
values
Definition: KMatrix.h:228
virtual ublas::matrix< double > K(Energy2 s, bool multiplyByPoles=false) const =0
Compute the K-matrix for a given scale.
vector< Channels > channels_
The mesons in the various channels.
Definition: KMatrix.h:152
Energy mPiPlus_
Common masses for the matrix.
Definition: KMatrix.h:173
vector< Energy2 > poles_
The positions of the poles.
Definition: KMatrix.h:157
static void Init()
The standard Init function used to initialize the interfaces.
vector< vector< Energy > > g_
Couplings for the resonances.
Definition: KMatrix.h:162
Channels
Enum for the possible channels.
Definition: KMatrix.h:32
virtual ublas::matrix< Complex > rho(Energy2 s) const
The matrix.
Energy mK0_
The neutral kaon mass.
Definition: KMatrix.h:188
Interpolator< double, Energy2 >::Ptr inter_
The interpolator.
Definition: KMatrix.h:233
-*- C++ -*-