herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
TwoKaonCzyzCurrent.h
1// -*- C++ -*-
2#ifndef Herwig_TwoKaonCzyzCurrent_H
3#define Herwig_TwoKaonCzyzCurrent_H
4//
5// This is the declaration of the TwoKaonCzyzCurrent class.
6//
7
8#include "WeakCurrent.h"
9
10namespace Herwig {
11
12using namespace ThePEG;
13
22
23public:
24
29
30
51 virtual bool createMode(int icharge, tcPDPtr resonance,FlavourInfo flavour,
52 unsigned int imode,PhaseSpaceModePtr mode,
53 unsigned int iloc,int ires,
54 PhaseSpaceChannel phase, Energy upp );
55
65 virtual tPDVector particles(int icharge, unsigned int imode, int iq, int ia);
67
81 virtual vector<LorentzPolarizationVectorE>
82 current(tcPDPtr resonance, FlavourInfo flavour,
83 const int imode, const int ichan,Energy & scale,
84 const tPDVector & outgoing,
85 const vector<Lorentz5Momentum> & momenta,
86 DecayIntegrator::MEOption meopt) const;
87
93 virtual bool accept(vector<int> id);
94
100 virtual unsigned int decayMode(vector<int> id);
101
108 virtual void dataBaseOutput(ofstream & os,bool header,bool create) const;
109
113 Complex Fkaon(Energy2 q2,const int imode, const int ichan,
114 IsoSpin::IsoSpin Itotal,
115 Strangeness::Strange strange,
116 tcPDPtr resonance,
117 Energy ma, Energy mb) const;
118
122 Complex FkaonRemainderI1(Energy2 q2) const;
123
127 Complex FkaonRemainderI0(Energy2 q2,Energy ma, Energy mb) const;
128
129public:
130
138
144 void persistentInput(PersistentIStream & is, int version);
146
153 static void Init();
154
155protected:
156
163 virtual IBPtr clone() const;
164
169 virtual IBPtr fullclone() const;
171
172protected:
173
176
182 virtual void doinit();
184
189
190private:
191
197
198private:
199
207 vector<Complex> rhoWgt_;
208
212 vector<double> rhoMag_;
213
217 vector<double> rhoPhase_;
219
227 vector<Complex> omegaWgt_;
228
232 vector<double> omegaMag_;
233
237 vector<double> omegaPhase_;
239
247 vector<Complex> phiWgt_;
248
252 vector<double> phiMag_;
253
257 vector<double> phiPhase_;
259
263 vector<Energy> rhoMasses_;
264
268 vector<Energy> rhoWidths_;
269
273 vector<Energy> omegaMasses_;
274
278 vector<Energy> omegaWidths_;
279
283 vector<Energy> phiMasses_;
284
288 vector<Energy> phiWidths_;
289
293 double betaRho_;
294
299
303 double betaPhi_;
304
308 unsigned int nMax_;
309
313 double etaPhi_;
314
319
323 double gammaPhi_;
324
328 vector<vector<Energy> > mass_;
329
333 vector<vector<Energy> > width_;
334
338 vector<vector<Complex> > coup_;
339
344 vector<double> dh_;
345
350 vector<Energy2> hres_;
351
356 vector<Energy2> h0_;
357
361 Energy mpi_;
362
366 Energy eMax_;
367
371 mutable Interpolator<double,Energy2>::Ptr fKI0Re_, fKI0Im_,fKI1Re_, fKI1Im_;
372
373};
374
375}
376
377#endif /* Herwig_TwoKaonCzyzCurrent_H */
MEOption
Enum for the matrix element option.
Ptr< Interpolator< ValT, ArgT > >::pointer Ptr
Pointer to an Interpolator.
Definition: Interpolator.h:38
This class is designed to store the information needed for a given phase-space channel for use by the...
The TwoKaonCzyzCurrent class implements the current of PRD 81 094014 for the production of two kaons.
virtual bool createMode(int icharge, tcPDPtr resonance, FlavourInfo flavour, unsigned int imode, PhaseSpaceModePtr mode, unsigned int iloc, int ires, PhaseSpaceChannel phase, Energy upp)
Complete the construction of the decay mode for integration.classes inheriting from this one.
vector< vector< Energy > > mass_
Masses of the resonances.
virtual vector< LorentzPolarizationVectorE > current(tcPDPtr resonance, FlavourInfo flavour, const int imode, const int ichan, Energy &scale, const tPDVector &outgoing, const vector< Lorentz5Momentum > &momenta, DecayIntegrator::MEOption meopt) const
Hadronic current.
virtual IBPtr clone() const
Make a simple clone of this object.
vector< double > omegaPhase_
The phase for input.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
double betaRho_
Regge parameter for resonances.
vector< Energy2 > h0_
The parameter for the GS form of the Breit-Wigner.
vector< double > omegaMag_
The magnitude for input.
vector< double > rhoPhase_
The phase for input.
Complex FkaonRemainderI0(Energy2 q2, Energy ma, Energy mb) const
Calculation of the kaon form factor, remainder I=0.
double gammaOmega_
The parameter.
vector< Energy > rhoWidths_
The widths of the resonances.
double gammaPhi_
The parameter.
virtual tPDVector particles(int icharge, unsigned int imode, int iq, int ia)
The particles produced by the current.
vector< double > dh_
The function at for the GS form of the Breit-Wigner.
vector< vector< Energy > > width_
Widths of the resonances.
virtual void dataBaseOutput(ofstream &os, bool header, bool create) const
Output the setup information for the particle database.
Interpolator< double, Energy2 >::Ptr fKI0Re_
Interpolators for the higher resonance components for speed.
static void Init()
The standard Init function used to initialize the interfaces.
vector< double > phiPhase_
The phase for input.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
vector< Energy > phiMasses_
The masses of the resonances.
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
Energy eMax_
The maximum energy.
Energy mpi_
The charged pion mass.
virtual unsigned int decayMode(vector< int > id)
Return the decay mode number for a given set of particles in the current.
vector< double > rhoMag_
The magnitude for input.
vector< Complex > rhoWgt_
Weights for the different resonances in the current, .
Complex FkaonRemainderI1(Energy2 q2) const
Calculation of the kaon form factor, remainder I=1.
vector< Complex > omegaWgt_
Weights for the different resonances in the current, .
vector< vector< Complex > > coup_
Couplings of the resonaces.
void constructInterpolators() const
Construct the interpolators.
vector< Energy > omegaMasses_
The masses of the resonances.
vector< Energy > rhoMasses_
The masses of the resonances.
double betaOmega_
Regge parameter for resonances.
unsigned int nMax_
Number of resonaces at which to trucated the series.
Complex Fkaon(Energy2 q2, const int imode, const int ichan, IsoSpin::IsoSpin Itotal, Strangeness::Strange strange, tcPDPtr resonance, Energy ma, Energy mb) const
Calculation of the kaon form factor.
vector< Energy2 > hres_
The function at for the GS form of the Breit-Wigner.
vector< Complex > phiWgt_
Weights for the different resonances in the current, .
vector< Energy > phiWidths_
The widths of the resonances.
vector< Energy > omegaWidths_
The widths of the resonances.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
double etaPhi_
The parameter.
virtual bool accept(vector< int > id)
Accept the decay.
double betaPhi_
Regge parameter for resonances.
vector< double > phiMag_
The magnitude for input.
TwoKaonCzyzCurrent & operator=(const TwoKaonCzyzCurrent &)=delete
The assignment operator is private and must never be called.
TwoKaonCzyzCurrent()
The default constructor.
The WeakCurrent class is the base class for the hadronic currents produced in weak decays.
Definition: WeakCurrent.h:59
-*- C++ -*-
std::complex< double > Complex
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< tPDPtr > tPDVector
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr