herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Toggle main menu visibility
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
y
z
Functions
a
b
c
d
f
g
h
i
l
m
o
p
r
s
t
u
w
z
Variables
Typedefs
a
b
c
d
h
i
j
k
l
m
o
p
s
t
v
Enumerations
Enumerator
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
c
d
e
h
i
m
o
p
r
s
t
u
v
w
x
Enumerations
Enumerator
Related Functions
b
c
d
e
f
g
h
k
m
o
p
s
t
Files
File List
File Members
All
Functions
Variables
Macros
Decay
WeakCurrents
OneKaonTwoPionCurrent.h
1
// -*- C++ -*-
2
//
3
// OneKaonTwoPionCurrent.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_OneKaonTwoPionCurrent_H
10
#define HERWIG_OneKaonTwoPionCurrent_H
11
//
12
// This is the declaration of the OneKaonTwoPionCurrent class.
13
//
14
15
#include "WeakCurrent.h"
16
#include "Herwig/Decay/ResonanceHelpers.h"
17
#include <numeric>
18
19
namespace
Herwig
{
20
21
using namespace
ThePEG
;
22
71
class
OneKaonTwoPionCurrent
:
public
WeakCurrent
{
72
73
public
:
74
78
OneKaonTwoPionCurrent
();
79
100
virtual
bool
createMode
(
int
icharge,
tcPDPtr
resonance,
101
FlavourInfo
flavour,
102
unsigned
int
imode,PhaseSpaceModePtr mode,
103
unsigned
int
iloc,
int
ires,
104
PhaseSpaceChannel
phase, Energy upp );
106
107
121
virtual
vector<LorentzPolarizationVectorE>
122
current
(
tcPDPtr
resonance,
123
FlavourInfo
flavour,
124
const
int
imode,
const
int
ichan,Energy & scale,
125
const
tPDVector
&
outgoing
,
126
const
vector<Lorentz5Momentum> & momenta,
127
DecayIntegrator::MEOption
meopt)
const
;
128
134
virtual
bool
accept
(vector<int>
id
);
135
142
virtual
unsigned
int
decayMode
(vector<int>
id
);
143
152
virtual
tPDVector
particles
(
int
icharge,
unsigned
int
imode,
int
iq,
int
ia);
153
160
virtual
void
dataBaseOutput
(ofstream & os,
bool
header,
bool
create)
const
;
161
162
public
:
163
170
void
persistentOutput
(
PersistentOStream
& os)
const
;
171
177
void
persistentInput
(
PersistentIStream
& is,
int
version);
179
186
static
void
Init
();
187
188
protected
:
189
196
virtual
IBPtr
clone
()
const
;
197
202
virtual
IBPtr
fullclone
()
const
;
204
205
protected
:
206
212
virtual
void
doinit
();
213
214
private
:
215
220
OneKaonTwoPionCurrent
&
operator=
(
const
OneKaonTwoPionCurrent
&) =
delete
;
221
222
private
:
223
229
Complex
Trho1
(Energy2 q2,
int
ires)
const
{
230
if
(ires>=
int
(
_rho1wgts
.size()))
return
0.;
231
double
norm = std::accumulate(
_rho1wgts
.begin(),
_rho1wgts
.end(),0.);
232
unsigned
int
imin=0,imax=
_rho1wgts
.size();
233
if
(ires>0) {
234
imin=ires;
235
imax=imin+1;
236
}
237
Complex
output(0.);
238
for
(
unsigned
int
ix=imin;ix<imax;++ix)
239
output+=
_rho1wgts
[ix]*
240
Resonance::BreitWignerPWave(q2,
_rho1mass
[ix],
_rho1width
[ix],
_mpi
,
_mpi
);
241
return
output/norm;
242
}
243
249
Complex
TKstar1
(Energy2 q2,
int
ires)
const
{
250
if
(ires>=
int
(
_kstar1wgts
.size()))
return
0.;
251
double
norm = std::accumulate(
_kstar1wgts
.begin(),
_kstar1wgts
.end(),0.);
252
unsigned
int
imin=0,imax=
_kstar1wgts
.size();
253
if
(ires>0) {
254
imin=ires;
255
imax=imin+1;
256
}
257
Complex
output(0.);
258
for
(
unsigned
int
ix=imin;ix<imax;++ix)
259
output+=
_kstar1wgts
[ix]*
260
Resonance::BreitWignerPWave(q2,
_kstar1mass
[ix],
_kstar1width
[ix],
_mK
,
_mpi
);
261
return
output/norm;
262
}
263
269
Complex
TKstar2
(Energy2 q2,
int
ires)
const
{
270
if
(ires>=
int
(
_kstar2wgts
.size()))
return
0.;
271
double
norm = std::accumulate(
_kstar2wgts
.begin(),
_kstar2wgts
.end(),0.);
272
unsigned
int
imin=0,imax=
_kstar2wgts
.size();
273
if
(ires>0) {
274
imin=ires;
275
imax=imin+1;
276
}
277
Complex
output(0.);
278
for
(
unsigned
int
ix=imin;ix<imax;++ix)
279
output+=
_kstar2wgts
[ix]*
280
Resonance::BreitWignerPWave(q2,
_kstar2mass
[ix],
_kstar2width
[ix],
_mK
,
_mpi
);
281
return
output/norm;
282
}
283
290
Complex
TK1
(Energy2 q2,
unsigned
int
iopt,
int
ires)
const
;
291
292
private
:
293
301
vector<double>
_rho1wgts
;
302
306
vector<Energy>
_rho1mass
;
307
311
vector<Energy>
_rho1width
;
313
321
vector<double>
_kstar1wgts
;
322
326
vector<Energy>
_kstar1mass
;
327
331
vector<Energy>
_kstar1width
;
333
341
vector<double>
_kstar2wgts
;
342
346
vector<Energy>
_kstar2mass
;
347
351
vector<Energy>
_kstar2width
;
353
358
362
vector<Energy>
_k1mass
;
363
367
vector<Energy>
_k1width
;
368
372
vector<double>
_k1wgta
;
373
377
vector<double>
_k1wgtb
;
379
383
Energy
_fpi
;
384
388
Energy
_mpi
;
389
393
Energy
_mK
;
395
};
396
397
}
398
399
#endif
/* HERWIG_OneKaonTwoPionCurrent_H */
Herwig::DecayIntegrator::MEOption
MEOption
Enum for the matrix element option.
Definition:
DecayIntegrator.h:72
Herwig::OneKaonTwoPionCurrent
The OneKaonTwoPionCurrent class implements the model of M.
Definition:
OneKaonTwoPionCurrent.h:71
Herwig::OneKaonTwoPionCurrent::_kstar1width
vector< Energy > _kstar1width
Widths.
Definition:
OneKaonTwoPionCurrent.h:331
Herwig::OneKaonTwoPionCurrent::accept
virtual bool accept(vector< int > id)
Accept the decay.
Herwig::OneKaonTwoPionCurrent::decayMode
virtual unsigned int decayMode(vector< int > id)
Return the decay mode number for a given set of particles in the current.
Herwig::OneKaonTwoPionCurrent::particles
virtual tPDVector particles(int icharge, unsigned int imode, int iq, int ia)
The particles produced by the current.
Herwig::OneKaonTwoPionCurrent::_k1wgtb
vector< double > _k1wgtb
The weights for the different resonaces for .
Definition:
OneKaonTwoPionCurrent.h:377
Herwig::OneKaonTwoPionCurrent::dataBaseOutput
virtual void dataBaseOutput(ofstream &os, bool header, bool create) const
Output the setup information for the particle database.
Herwig::OneKaonTwoPionCurrent::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::OneKaonTwoPionCurrent::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::OneKaonTwoPionCurrent::_k1width
vector< Energy > _k1width
The widths of the resonances.
Definition:
OneKaonTwoPionCurrent.h:367
Herwig::OneKaonTwoPionCurrent::_mpi
Energy _mpi
The pion mass.
Definition:
OneKaonTwoPionCurrent.h:388
Herwig::OneKaonTwoPionCurrent::TKstar2
Complex TKstar2(Energy2 q2, int ires) const
The lineshape for the vector terms.
Definition:
OneKaonTwoPionCurrent.h:269
Herwig::OneKaonTwoPionCurrent::_rho1width
vector< Energy > _rho1width
Widths.
Definition:
OneKaonTwoPionCurrent.h:311
Herwig::OneKaonTwoPionCurrent::_kstar2mass
vector< Energy > _kstar2mass
Masses.
Definition:
OneKaonTwoPionCurrent.h:346
Herwig::OneKaonTwoPionCurrent::_k1wgta
vector< double > _k1wgta
The weights for the different resonances for .
Definition:
OneKaonTwoPionCurrent.h:372
Herwig::OneKaonTwoPionCurrent::_rho1mass
vector< Energy > _rho1mass
Masses.
Definition:
OneKaonTwoPionCurrent.h:306
Herwig::OneKaonTwoPionCurrent::_kstar1wgts
vector< double > _kstar1wgts
Parameters for the in the axial-vector terms.
Definition:
OneKaonTwoPionCurrent.h:321
Herwig::OneKaonTwoPionCurrent::_kstar1mass
vector< Energy > _kstar1mass
Masses.
Definition:
OneKaonTwoPionCurrent.h:326
Herwig::OneKaonTwoPionCurrent::_fpi
Energy _fpi
The pion decay constant, .
Definition:
OneKaonTwoPionCurrent.h:383
Herwig::OneKaonTwoPionCurrent::_mK
Energy _mK
The kaon mass.
Definition:
OneKaonTwoPionCurrent.h:393
Herwig::OneKaonTwoPionCurrent::doinit
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
Herwig::OneKaonTwoPionCurrent::TK1
Complex TK1(Energy2 q2, unsigned int iopt, int ires) const
The line shape.
Herwig::OneKaonTwoPionCurrent::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::OneKaonTwoPionCurrent::_kstar2wgts
vector< double > _kstar2wgts
Parameters for the in the vector terms.
Definition:
OneKaonTwoPionCurrent.h:341
Herwig::OneKaonTwoPionCurrent::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::OneKaonTwoPionCurrent::TKstar1
Complex TKstar1(Energy2 q2, int ires) const
The lineshape for the axial-vector terms.
Definition:
OneKaonTwoPionCurrent.h:249
Herwig::OneKaonTwoPionCurrent::_rho1wgts
vector< double > _rho1wgts
Parameters for the in the axial-vector terms.
Definition:
OneKaonTwoPionCurrent.h:301
Herwig::OneKaonTwoPionCurrent::operator=
OneKaonTwoPionCurrent & operator=(const OneKaonTwoPionCurrent &)=delete
The assignment operator is private and must never be called.
Herwig::OneKaonTwoPionCurrent::OneKaonTwoPionCurrent
OneKaonTwoPionCurrent()
The default constructor.
Herwig::OneKaonTwoPionCurrent::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::OneKaonTwoPionCurrent::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::OneKaonTwoPionCurrent::Trho1
Complex Trho1(Energy2 q2, int ires) const
The lineshape for the axial-vector terms.
Definition:
OneKaonTwoPionCurrent.h:229
Herwig::OneKaonTwoPionCurrent::_k1mass
vector< Energy > _k1mass
Parameters for the three meson resonances.
Definition:
OneKaonTwoPionCurrent.h:362
Herwig::OneKaonTwoPionCurrent::_kstar2width
vector< Energy > _kstar2width
Widths.
Definition:
OneKaonTwoPionCurrent.h:351
Herwig::OneKaonTwoPionCurrent::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::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
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG::Helicity::outgoing
outgoing
ThePEG
ThePEG::Complex
std::complex< double > Complex
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tPDVector
vector< tPDPtr > tPDVector
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
Herwig::FlavourInfo
Definition:
IsoSpin.h:46
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6