herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
Decay
Perturbative
SMWDecayer.h
1
// -*- C++ -*-
2
//
3
// SMWDecayer.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_SMWDecayer_H
10
#define HERWIG_SMWDecayer_H
11
//
12
// This is the declaration of the SMWDecayer class.
13
//
14
#include "Herwig/Decay/PerturbativeDecayer.h"
15
#include "ThePEG/Helicity/Vertex/Vector/FFVVertex.h"
16
#include "ThePEG/Helicity/Vertex/AbstractVVVVertex.h"
17
#include "Herwig/Decay/DecayPhaseSpaceMode.h"
18
19
namespace
Herwig
{
20
using namespace
ThePEG
;
21
using namespace
ThePEG::Helicity
;
22
32
class
SMWDecayer
:
public
PerturbativeDecayer
{
33
34
public
:
35
39
SMWDecayer
();
40
41
public
:
42
51
virtual
bool
hasMECorrection
() {
return
true
;}
52
56
virtual
void
initializeMECorrection(RealEmissionProcessPtr ,
double
& ,
57
double
& );
58
71
virtual
bool
softMatrixElementVeto(
PPtr
parent,
72
PPtr
progenitor,
73
const
bool
& fs,
74
const
Energy & highestpT,
75
const
vector<tcPDPtr> & ids,
76
const
double
& z,
77
const
Energy & scale,
78
const
Energy & pT);
79
83
virtual
POWHEGType
hasPOWHEGCorrection
() {
return
FSR;}
84
85
public
:
86
93
virtual
int
modeNumber(
bool
& cc,
tcPDPtr
parent,
94
const
tPDVector
& children)
const
;
95
104
virtual
double
me2(
const
int
ichan,
const
Particle
& part,
105
const
ParticleVector
& decay,
MEOption
meopt)
const
;
106
112
virtual
void
dataBaseOutput(ofstream & os,
bool
header)
const
;
113
114
public
:
115
122
void
persistentOutput(
PersistentOStream
& os)
const
;
123
129
void
persistentInput(
PersistentIStream
& is,
int
version);
131
135
static
void
Init();
136
137
protected
:
138
145
virtual
IBPtr
clone
()
const
{
return
new_ptr(*
this
);}
146
151
virtual
IBPtr
fullclone
()
const
{
return
new_ptr(*
this
);}
153
154
protected
:
155
163
virtual
void
doinit();
164
169
virtual
void
doinitrun();
171
172
protected
:
173
177
void
setRho(
double
);
178
182
void
setKtildeSymm();
183
187
void
setKtilde2();
188
196
double
getZfromX(
double
,
double
);
197
201
double
getKfromX(
double
,
double
);
203
211
void
getXXbar(
double
kt,
double
z,
double
& x,
double
& xbar);
212
222
double
qWeight(
double
x,
double
xbar);
223
229
double
qbarWeight(
double
x,
double
xbar);
230
236
double
qWeightX(Energy qtilde,
double
z);
237
243
double
qbarWeightX(Energy qtilde,
double
z);
245
249
double
u(
double
);
250
258
double
MEV(
double
,
double
);
259
263
double
MEA(
double
,
double
);
264
270
double
PS(
double
x1,
double
x2);
272
273
protected
:
274
278
double
calculateRealEmission(
double
x1,
double
x2,
279
vector<PPtr> hardProcess,
280
double
phi,
double
muj,
double
muk,
281
int
iemit,
bool
subtract)
const
;
282
286
double
meRatio(vector<cPDPtr> partons,
287
vector<Lorentz5Momentum> momenta,
288
unsigned
int
iemitter,
bool
subtract)
const
;
289
293
virtual
double
matrixElementRatio(
const
Particle
& inpart,
const
ParticleVector
& decay2,
294
const
ParticleVector
& decay3,
MEOption
meopt,
295
ShowerInteraction
inter);
296
300
double
loME(
const
vector<cPDPtr> & partons,
301
const
vector<Lorentz5Momentum> & momenta)
const
;
302
306
InvEnergy2 realME(
const
vector<cPDPtr> & partons,
307
const
vector<Lorentz5Momentum> & momenta,
308
ShowerInteraction
inter)
const
;
309
310
private
:
311
315
SMWDecayer
& operator=(
const
SMWDecayer
&) =
delete
;
316
317
private
:
318
319
323
AbstractFFVVertexPtr
FFWVertex_
;
324
328
AbstractFFVVertexPtr
FFGVertex_
;
329
333
AbstractFFVVertexPtr
FFPVertex_
;
334
338
AbstractVVVVertexPtr
WWWVertex_
;
339
347
vector<double>
quarkWeight_
;
348
352
vector<double>
leptonWeight_
;
354
358
mutable
RhoDMatrix
rho_
;
359
363
mutable
vector<VectorWaveFunction>
vectors_
;
364
368
mutable
vector<SpinorWaveFunction>
wave_
;
369
373
mutable
vector<SpinorBarWaveFunction>
wavebar_
;
374
375
private
:
376
380
Energy
d_Q_
;
381
385
Energy
d_m_
;
386
390
double
d_rho_
;
391
395
double
d_v_
;
396
400
double
d_kt1_
;
401
405
double
d_kt2_
;
406
410
static
const
double
EPS_
;
411
412
private
:
413
417
double
CF_
;
418
422
mutable
Energy
mW_
;
423
424
428
mutable
double
aS_
;
429
433
mutable
Energy2
scale_
;
434
442
tcPDPtr
gluon_
;
443
447
vector<tcPDPtr>
partons_
;
448
452
vector<Lorentz5Momentum>
quark_
;
453
457
Lorentz5Momentum
gauge_
;
458
462
PPtr
wboson_
;
463
467
Energy2
mw2_
;
469
473
bool
NLO_
;
474
};
475
476
}
477
478
479
#endif
/* HERWIG_SMWDecayer_H */
ThePEG::PPtr
ThePEG::Ptr< Particle >::pointer PPtr
ThePEG::PersistentIStream
Herwig::SMWDecayer::WWWVertex_
AbstractVVVVertexPtr WWWVertex_
Pointer to the fermion-antifermion G vertex.
Definition:
SMWDecayer.h:338
ThePEG::Particle
ThePEG::Helicity
Herwig::ShowerInteraction
ShowerInteraction
Handy header file to be included in all Shower classes.
Definition:
ShowerInteraction.h:23
Herwig::SMWDecayer::d_rho_
double d_rho_
The rho parameter.
Definition:
SMWDecayer.h:390
Herwig::SMWDecayer::mW_
Energy mW_
The W mass.
Definition:
SMWDecayer.h:422
Herwig::SMWDecayer::FFGVertex_
AbstractFFVVertexPtr FFGVertex_
Pointer to the fermion-antifermion G vertex.
Definition:
SMWDecayer.h:328
Herwig::SMWDecayer::d_kt2_
double d_kt2_
The initial kappa-tilde values for radiation from the antiquark.
Definition:
SMWDecayer.h:405
ThePEG::PersistentOStream
Herwig::SMWDecayer::scale_
Energy2 scale_
The scale.
Definition:
SMWDecayer.h:433
Herwig::SMWDecayer::d_kt1_
double d_kt1_
The initial kappa-tilde values for radiation from the quark.
Definition:
SMWDecayer.h:400
Herwig::SMWDecayer::hasMECorrection
virtual bool hasMECorrection()
Virtual members to be overridden by inheriting classes which implement hard corrections.
Definition:
SMWDecayer.h:51
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Herwig::SMWDecayer
The SMWDecayer is designed to perform the decay of the W boson to the Standard Model fermions...
Definition:
SMWDecayer.h:32
Herwig::SMWDecayer::d_m_
Energy d_m_
Quark mass.
Definition:
SMWDecayer.h:385
ThePEG
Herwig::SMWDecayer::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition:
SMWDecayer.h:151
Herwig::SMWDecayer::rho_
RhoDMatrix rho_
Spin density matrix for the decay.
Definition:
SMWDecayer.h:358
Herwig::SMWDecayer::d_v_
double d_v_
The v parameter.
Definition:
SMWDecayer.h:395
Herwig::SMWDecayer::hasPOWHEGCorrection
virtual POWHEGType hasPOWHEGCorrection()
Has a POWHEG style correction.
Definition:
SMWDecayer.h:83
Herwig::SMWDecayer::FFWVertex_
AbstractFFVVertexPtr FFWVertex_
Pointer to the fermion-antifermion W vertex.
Definition:
SMWDecayer.h:323
Herwig::SMWDecayer::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
SMWDecayer.h:145
Herwig::SMWDecayer::EPS_
static const double EPS_
Cut-off parameter.
Definition:
SMWDecayer.h:410
Herwig::SMWDecayer::vectors_
vector< VectorWaveFunction > vectors_
Polarization vectors for the decay.
Definition:
SMWDecayer.h:363
Herwig::DecayIntegrator::MEOption
MEOption
Enum for the matrix element option.
Definition:
DecayIntegrator.h:79
ThePEG::tPDVector
vector< tPDPtr > tPDVector
Herwig::HwDecayerBase::POWHEGType
POWHEGType
Virtual members to be overridden by inheriting classes which implement hard corrections.
Definition:
HwDecayerBase.h:76
Herwig::SMWDecayer::gauge_
Lorentz5Momentum gauge_
The momentum of the radiated gauge boson.
Definition:
SMWDecayer.h:457
Herwig::SMWDecayer::FFPVertex_
AbstractFFVVertexPtr FFPVertex_
Pointer to the fermion-antifermion G vertex.
Definition:
SMWDecayer.h:333
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
Herwig::SMWDecayer::quarkWeight_
vector< double > quarkWeight_
maximum weights for the different integrations
Definition:
SMWDecayer.h:347
Herwig::PerturbativeDecayer
The PerturbativeDecayer class is the base class for perturbative decays in Herwig and implements the ...
Definition:
PerturbativeDecayer.h:23
Herwig::SMWDecayer::partons_
vector< tcPDPtr > partons_
The ParticleData objects for the fermions.
Definition:
SMWDecayer.h:447
Herwig::SMWDecayer::CF_
double CF_
The colour factor.
Definition:
SMWDecayer.h:417
Herwig::SMWDecayer::d_Q_
Energy d_Q_
CM energy.
Definition:
SMWDecayer.h:380
Herwig::SMWDecayer::wboson_
PPtr wboson_
The W boson.
Definition:
SMWDecayer.h:462
Herwig::SMWDecayer::mw2_
Energy2 mw2_
W mass squared.
Definition:
SMWDecayer.h:467
Herwig::SMWDecayer::gluon_
tcPDPtr gluon_
Stuff for the POWHEG correction.
Definition:
SMWDecayer.h:442
Herwig::SMWDecayer::leptonWeight_
vector< double > leptonWeight_
Weights for the W to leptons decays.
Definition:
SMWDecayer.h:352
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::SMWDecayer::wavebar_
vector< SpinorBarWaveFunction > wavebar_
Barred spinors for the decay.
Definition:
SMWDecayer.h:373
ThePEG::ParticleVector
vector< PPtr > ParticleVector
ThePEG::RhoDMatrix
Herwig::SMWDecayer::NLO_
bool NLO_
Whether ro return the LO or NLO result.
Definition:
SMWDecayer.h:473
Herwig::SMWDecayer::aS_
double aS_
The strong coupling.
Definition:
SMWDecayer.h:428
Herwig::SMWDecayer::quark_
vector< Lorentz5Momentum > quark_
The fermion momenta.
Definition:
SMWDecayer.h:452
Herwig::SMWDecayer::wave_
vector< SpinorWaveFunction > wave_
Spinors for the decay.
Definition:
SMWDecayer.h:368
Generated on Sat Apr 11 2020 14:50:31 for Herwig by
1.8.13