herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Decay
WeakCurrents
KPiCurrent.h
1
// -*- C++ -*-
2
//
3
// KPiCurrent.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4
// Copyright (C) 2002-2019 The Herwig Collaboration
5
//
6
// Herwig is licenced under version 3 of the GPL, see COPYING for details.
7
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
8
//
9
#ifndef HERWIG_KPiCurrent_H
10
#define HERWIG_KPiCurrent_H
11
//
12
// This is the declaration of the KPiCurrent class.
13
//
14
15
#include "WeakCurrent.h"
16
#include "Herwig/Utilities/Kinematics.h"
17
18
namespace
Herwig
{
19
20
using namespace
ThePEG
;
21
28
class
KPiCurrent
:
public
WeakCurrent
{
29
30
public
:
31
35
KPiCurrent
();
36
37
58
virtual
bool
createMode
(
int
icharge,
tcPDPtr
resonance,
59
FlavourInfo
flavour,
60
unsigned
int
imode,PhaseSpaceModePtr mode,
61
unsigned
int
iloc,
int
ires,
62
PhaseSpaceChannel
phase, Energy upp );
63
73
virtual
tPDVector
particles
(
int
icharge,
unsigned
int
imode,
int
iq,
int
ia);
75
76
90
virtual
vector<LorentzPolarizationVectorE>
91
current
(
tcPDPtr
resonance,
92
FlavourInfo
flavour,
93
const
int
imode,
const
int
ichan,Energy & scale,
94
const
tPDVector
&
outgoing
,
95
const
vector<Lorentz5Momentum> & momenta,
96
DecayIntegrator::MEOption
meopt)
const
;
97
103
virtual
bool
accept
(vector<int>
id
);
104
110
virtual
unsigned
int
decayMode
(vector<int>
id
);
111
118
virtual
void
dataBaseOutput
(ofstream & os,
bool
header,
bool
create)
const
;
119
120
public
:
121
128
void
persistentOutput
(
PersistentOStream
& os)
const
;
129
135
void
persistentInput
(
PersistentIStream
& is,
int
version);
137
144
static
void
Init
();
145
146
protected
:
147
157
Complex
sWaveBreitWigner
(Energy2 q2,
unsigned
int
ires)
const
{
158
Energy q=
sqrt
(q2),gam(
ZERO
);
159
Energy2 m2=
sqr
(
_scamass
[ires]);
160
if
(q>
_mK
+
_mpi
) {
161
Energy pX=
Kinematics::pstarTwoBodyDecay
(
_scamass
[ires],
_mK
,
_mpi
);
162
Energy p =
Kinematics::pstarTwoBodyDecay
( q ,
_mK
,
_mpi
);
163
gam =
_scawidth
[ires]*m2/q2*p/pX;
164
}
165
return
m2/(m2-q2-
Complex
(0.,1.)*q*gam);
166
}
167
173
Complex
pWaveBreitWigner
(Energy2 q2,
unsigned
int
ires)
const
{
174
Energy q=
sqrt
(q2),gam(
ZERO
);
175
Energy2 m2=
sqr
(
_vecmass
[ires]);
176
if
(q>
_mK
+
_mpi
) {
177
Energy pX=
Kinematics::pstarTwoBodyDecay
(
_vecmass
[ires],
_mK
,
_mpi
);
178
Energy p =
Kinematics::pstarTwoBodyDecay
( q ,
_mK
,
_mpi
);
179
double
ratio=p/pX;
180
gam =
_vecwidth
[ires]*m2/q2*ratio*
sqr
(ratio);
181
}
182
return
m2/(m2-q2-
Complex
(0.,1.)*q*gam);
183
}
185
186
protected
:
187
194
virtual
IBPtr
clone
()
const
{
return
new_ptr(*
this
);}
195
200
virtual
IBPtr
fullclone
()
const
{
return
new_ptr(*
this
);}
202
203
protected
:
204
207
213
virtual
void
doinit
();
215
216
private
:
217
222
KPiCurrent
&
operator=
(
const
KPiCurrent
&) =
delete
;
223
224
private
:
225
229
bool
_localparameters
;
230
234
bool
_transverse
;
235
243
double
_cV
;
244
248
double
_cS
;
250
258
vector<double>
_vecmag
;
259
263
vector<double>
_vecphase
;
264
268
vector<Complex>
_vecwgt
;
269
273
vector<Energy>
_vecmass
;
274
278
vector<Energy>
_vecwidth
;
280
288
vector<double>
_scamag
;
289
293
vector<double>
_scaphase
;
294
298
vector<Complex>
_scawgt
;
299
303
vector<Energy>
_scamass
;
304
308
vector<Energy>
_scawidth
;
310
318
Energy
_mpi
;
319
323
Energy
_mK
;
325
329
vector<int>
_resmap
;
330
};
331
332
}
333
334
#endif
/* HERWIG_KPiCurrent_H */
Herwig::DecayIntegrator::MEOption
MEOption
Enum for the matrix element option.
Definition:
DecayIntegrator.h:72
Herwig::KPiCurrent
Here is the documentation of the KPiCurrent class.
Definition:
KPiCurrent.h:28
Herwig::KPiCurrent::_transverse
bool _transverse
Whether to use or in the projection operator.
Definition:
KPiCurrent.h:234
Herwig::KPiCurrent::current
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.
Herwig::KPiCurrent::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::KPiCurrent::_mpi
Energy _mpi
Masses for calculating the running widths.
Definition:
KPiCurrent.h:318
Herwig::KPiCurrent::createMode
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.
Herwig::KPiCurrent::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::KPiCurrent::_mK
Energy _mK
The kaon mass.
Definition:
KPiCurrent.h:323
Herwig::KPiCurrent::_cS
double _cS
, normalization of the scalar piece
Definition:
KPiCurrent.h:248
Herwig::KPiCurrent::decayMode
virtual unsigned int decayMode(vector< int > id)
Return the decay mode number for a given set of particles in the current.
Herwig::KPiCurrent::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
KPiCurrent.h:194
Herwig::KPiCurrent::_scamass
vector< Energy > _scamass
Masses of the scalar resonances.
Definition:
KPiCurrent.h:303
Herwig::KPiCurrent::doinit
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
Herwig::KPiCurrent::_vecmag
vector< double > _vecmag
Parameters for the vector resonances.
Definition:
KPiCurrent.h:258
Herwig::KPiCurrent::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition:
KPiCurrent.h:200
Herwig::KPiCurrent::_scaphase
vector< double > _scaphase
Phase of the scalar weights.
Definition:
KPiCurrent.h:293
Herwig::KPiCurrent::_cV
double _cV
Normalizations of the vector and scalar pieces.
Definition:
KPiCurrent.h:243
Herwig::KPiCurrent::pWaveBreitWigner
Complex pWaveBreitWigner(Energy2 q2, unsigned int ires) const
p-wave Breit-Wigner for the vector resonances
Definition:
KPiCurrent.h:173
Herwig::KPiCurrent::_scawidth
vector< Energy > _scawidth
Widths of the scalar resonances.
Definition:
KPiCurrent.h:308
Herwig::KPiCurrent::_localparameters
bool _localparameters
Use local value of the parameters not those from the ParticleData objects.
Definition:
KPiCurrent.h:229
Herwig::KPiCurrent::_vecwidth
vector< Energy > _vecwidth
Widths of the vector resonances.
Definition:
KPiCurrent.h:278
Herwig::KPiCurrent::_vecmass
vector< Energy > _vecmass
Masses of the vector resonances.
Definition:
KPiCurrent.h:273
Herwig::KPiCurrent::_vecphase
vector< double > _vecphase
Phase of the vector weights.
Definition:
KPiCurrent.h:263
Herwig::KPiCurrent::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::KPiCurrent::KPiCurrent
KPiCurrent()
The default constructor.
Herwig::KPiCurrent::sWaveBreitWigner
Complex sWaveBreitWigner(Energy2 q2, unsigned int ires) const
Breit-Wigner distributions.
Definition:
KPiCurrent.h:157
Herwig::KPiCurrent::accept
virtual bool accept(vector< int > id)
Accept the decay.
Herwig::KPiCurrent::_vecwgt
vector< Complex > _vecwgt
Weights for the vector resonaces.
Definition:
KPiCurrent.h:268
Herwig::KPiCurrent::_scamag
vector< double > _scamag
Parameters for the scalar resonances.
Definition:
KPiCurrent.h:288
Herwig::KPiCurrent::_scawgt
vector< Complex > _scawgt
Weights for the scalar resonances.
Definition:
KPiCurrent.h:298
Herwig::KPiCurrent::operator=
KPiCurrent & operator=(const KPiCurrent &)=delete
The assignment operator is private and must never be called.
Herwig::KPiCurrent::dataBaseOutput
virtual void dataBaseOutput(ofstream &os, bool header, bool create) const
Output the setup information for the particle database.
Herwig::KPiCurrent::_resmap
vector< int > _resmap
Map for the resonances.
Definition:
KPiCurrent.h:329
Herwig::KPiCurrent::particles
virtual tPDVector particles(int icharge, unsigned int imode, int iq, int ia)
The particles produced by the current.
Herwig::PhaseSpaceChannel
This class is designed to store the information needed for a given phase-space channel for use by the...
Definition:
PhaseSpaceChannel.h:52
Herwig::WeakCurrent
The WeakCurrent class is the base class for the hadronic currents produced in weak decays.
Definition:
WeakCurrent.h:59
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig::Kinematics::pstarTwoBodyDecay
Energy pstarTwoBodyDecay(const Energy M, const Energy m1, const Energy m2)
For the two body decay M -> m1 + m2 it gives the module of the 3-momentum of the decay product in the...
Definition:
Kinematics.h:93
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG::Helicity::outgoing
outgoing
ThePEG
ThePEG::sqrt
double sqrt(int x)
ThePEG::Complex
std::complex< double > Complex
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tPDVector
vector< tPDPtr > tPDVector
ThePEG::ZERO
constexpr ZeroUnit ZERO
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
ThePEG::sqr
constexpr auto sqr(const T &x) -> decltype(x *x)
Herwig::FlavourInfo
Definition:
IsoSpin.h:46
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6