herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
DalitzKMatrix.h
1// -*- C++ -*-
2#ifndef Herwig_DalitzKMatrix_H
3#define Herwig_DalitzKMatrix_H
4//
5// This is the declaration of the DalitzKMatrix class.
6//
7
8#include "DalitzResonance.h"
9#include "Herwig/Decay/FormFactors/KMatrix.h"
10
11namespace Herwig {
12
13using namespace ThePEG;
14
19
20public:
21
26 {}
27
31 DalitzKMatrix(long pid, ResonanceType::Type rtype, Energy m, Energy w,
32 unsigned int d1, unsigned int d2, unsigned int s,
33 double mag, double phi, InvEnergy rr,
34 unsigned int imat, unsigned int chan,
35 Energy2 sc, unsigned int itype,
36 vector<pair<double,double> > beta,
37 vector<pair<double,vector<double > > > coeffs)
38 : DalitzResonance(pid,rtype,m,w,d1,d2,s,mag,phi,rr),
39 imat_(imat), channel_(chan), sc_(sc), expType_(itype), coeffs_(coeffs) {
40 beta_.clear();
41 for(unsigned int ix=0;ix<beta.size();++ix) {
42 beta_.push_back(beta[ix].first*exp(Complex(0.,beta[ix].second)));
43 }
44 }
45
46public:
47
51 virtual Complex BreitWigner(const Energy & mAB, const Energy & mA, const Energy & mB) const;
52
56 virtual void dataBaseOutput(ofstream & output);
57
58public:
59
63 void setKMatrix(KMatrixPtr mat) {kMatrix_ = mat;}
64
68 unsigned int imatrix() const {return imat_;}
69
70public:
71
79
85 void persistentInput(PersistentIStream & is, int version);
87
94 static void Init();
95
96private:
97
103
104private:
105
109 KMatrixPtr kMatrix_;
110
114 unsigned int imat_;
115
119 unsigned int channel_;
120
124 Energy2 sc_;
125
129 vector<Complex> beta_;
130
134 unsigned int expType_;
135
139 vector<pair<double,vector<double > > > coeffs_;
140
141};
142
143}
144
145#endif /* Herwig_DalitzKMatrix_H */
The DalitzKMatrix class allows the use of -matrices in Dalitz decays.
Definition: DalitzKMatrix.h:18
DalitzKMatrix()
The default constructor.
Definition: DalitzKMatrix.h:25
virtual void dataBaseOutput(ofstream &output)
Output the parameters.
KMatrixPtr kMatrix_
The K-matrix for the channel.
unsigned int channel_
Which channel to use from the K-matrix.
vector< Complex > beta_
Coefficients of the poles.
DalitzKMatrix & operator=(const DalitzKMatrix &)=delete
The assignment operator is private and must never be called.
virtual Complex BreitWigner(const Energy &mAB, const Energy &mA, const Energy &mB) const
Return the Breit-Wigner times the form factor.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
DalitzKMatrix(long pid, ResonanceType::Type rtype, Energy m, Energy w, unsigned int d1, unsigned int d2, unsigned int s, double mag, double phi, InvEnergy rr, unsigned int imat, unsigned int chan, Energy2 sc, unsigned int itype, vector< pair< double, double > > beta, vector< pair< double, vector< double > > > coeffs)
Constructor specifiying the parameters.
Definition: DalitzKMatrix.h:31
vector< pair< double, vector< double > > > coeffs_
Coefficients for the series expansion.
static void Init()
The standard Init function used to initialize the interfaces.
unsigned int expType_
Type of expansion.
void setKMatrix(KMatrixPtr mat)
Set the K-matrix.
Definition: DalitzKMatrix.h:63
unsigned int imatrix() const
Location of the matrix.
Definition: DalitzKMatrix.h:68
unsigned int imat_
Which to do.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Energy2 sc_
Expansion point for the constant terms.
The DalitzResonance class provides a container class for information on resonances in multi-body dali...
-*- C++ -*-
std::complex< double > Complex