herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
Decay
Perturbative
SMZDecayer.h
1
// -*- C++ -*-
2
//
3
// SMZDecayer.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_SMZDecayer_H
10
#define HERWIG_SMZDecayer_H
11
//
12
// This is the declaration of the SMZDecayer class.
13
//
14
#include "Herwig/Decay/PerturbativeDecayer.h"
15
#include "ThePEG/Helicity/Vertex/Vector/FFVVertex.h"
16
#include "Herwig/Decay/DecayPhaseSpaceMode.h"
17
18
namespace
Herwig
{
19
using namespace
ThePEG
;
20
using namespace
ThePEG::Helicity
;
21
31
class
SMZDecayer
:
public
PerturbativeDecayer
{
32
33
public
:
34
38
SMZDecayer
();
39
48
virtual
bool
hasMECorrection
() {
return
true
;}
49
53
virtual
void
initializeMECorrection(RealEmissionProcessPtr ,
double
& ,
54
double
& );
55
68
virtual
bool
softMatrixElementVeto(
PPtr
parent,
69
PPtr
progenitor,
70
const
bool
& fs,
71
const
Energy & highestpT,
72
const
vector<tcPDPtr> & ids,
73
const
double
& z,
74
const
Energy & scale,
75
const
Energy & pT);
76
80
virtual
POWHEGType
hasPOWHEGCorrection
() {
return
FSR;}
82
83
public
:
84
91
virtual
int
modeNumber(
bool
& cc,
tcPDPtr
parent,
92
const
tPDVector
& children)
const
;
93
102
virtual
double
me2(
const
int
ichan,
const
Particle
& part,
103
const
ParticleVector
& decay,
MEOption
meopt)
const
;
104
110
virtual
void
dataBaseOutput(ofstream & os,
bool
header)
const
;
111
123
virtual
double
oneLoopVirtualME(
unsigned
int
imode,
124
const
Particle
& part,
125
const
ParticleVector
& products);
126
140
virtual
InvEnergy2 realEmissionME(
unsigned
int
imode,
141
const
Particle
& part,
142
ParticleVector
& products,
143
unsigned
int
iemitter,
144
double
ctheta,
double
stheta,
145
const
LorentzRotation
& rot1,
146
const
LorentzRotation
& rot2);
148
149
public
:
150
157
void
persistentOutput(
PersistentOStream
& os)
const
;
158
164
void
persistentInput(
PersistentIStream
& is,
int
version);
166
170
static
void
Init();
171
172
protected
:
173
180
virtual
IBPtr
clone
()
const
{
return
new_ptr(*
this
);}
181
186
virtual
IBPtr
fullclone
()
const
{
return
new_ptr(*
this
);}
188
189
protected
:
190
198
virtual
void
doinit();
199
204
virtual
void
doinitrun();
206
207
protected
:
208
212
void
setRho(
double
);
213
217
void
setKtildeSymm();
218
222
void
setKtilde2();
223
231
double
getZfromX(
double
,
double
);
232
236
double
getKfromX(
double
,
double
);
238
246
void
getXXbar(
double
kt,
double
z,
double
& x,
double
& xbar);
247
257
double
qWeight(
double
x,
double
xbar);
258
264
double
qbarWeight(
double
x,
double
xbar);
265
271
double
qWeightX(Energy qtilde,
double
z);
272
278
double
qbarWeightX(Energy qtilde,
double
z);
280
283
double
u(
double
);
284
292
double
MEV(
double
,
double
);
293
297
double
MEA(
double
,
double
);
298
304
double
PS(
double
x1,
double
x2);
306
307
protected
:
308
312
double
calculateRealEmission(
double
x1,
double
x2,
313
vector<PPtr> hardProcess,
314
double
phi,
315
bool
subtract,
316
int
emitter)
const
;
317
321
double
calculateRealEmission(
double
x1,
double
x2,
322
vector<PPtr> hardProcess,
323
double
phi,
324
bool
subtract)
const
;
325
329
bool
checkZMomenta(
double
x1,
double
x2,
double
x3,
double
y, Energy pT)
const
;
330
334
InvEnergy calculateJacobian(
double
x1,
double
x2, Energy pT)
const
;
335
339
double
meRatio(vector<cPDPtr> partons,
340
vector<Lorentz5Momentum> momenta,
341
unsigned
int
iemitter,
bool
subtract)
const
;
342
346
virtual
double
matrixElementRatio(
const
Particle
& inpart,
const
ParticleVector
& decay2,
347
const
ParticleVector
& decay3,
MEOption
meopt,
348
ShowerInteraction
inter);
349
353
double
loME(
const
vector<cPDPtr> & partons,
354
const
vector<Lorentz5Momentum> & momenta)
const
;
355
359
InvEnergy2 realME(
const
vector<cPDPtr> & partons,
360
const
vector<Lorentz5Momentum> & momenta,
361
ShowerInteraction
inter)
const
;
362
366
bool
getEvent(vector<PPtr> hardProcess);
367
368
private
:
369
373
SMZDecayer
& operator=(
const
SMZDecayer
&) =
delete
;
374
375
private
:
376
377
378
382
FFVVertexPtr
FFZVertex_
;
383
387
AbstractFFVVertexPtr
FFPVertex_
;
388
392
AbstractFFVVertexPtr
FFGVertex_
;
393
401
vector<double>
quarkWeight_
;
402
406
vector<double>
leptonWeight_
;
408
412
mutable
RhoDMatrix
_rho
;
413
417
mutable
vector<VectorWaveFunction>
_vectors
;
418
422
mutable
vector<SpinorWaveFunction>
_wave
;
423
427
mutable
vector<SpinorBarWaveFunction>
_wavebar
;
428
429
private
:
430
434
Energy
d_Q_
;
435
439
Energy
d_m_
;
440
444
double
d_rho_
;
445
449
double
d_v_
;
450
454
double
d_kt1_
;
455
459
double
d_kt2_
;
460
464
static
const
double
EPS_
;
465
466
private
:
467
471
double
CF_
;
472
476
mutable
Energy
mZ_
;
477
481
mutable
double
mu_
;
482
486
mutable
double
mu2_
;
487
491
mutable
double
aS_
;
492
496
mutable
Energy2
scale_
;
497
505
tcPDPtr
gluon_
;
506
510
vector<tcPDPtr>
partons_
;
511
515
vector<Lorentz5Momentum>
quark_
;
516
520
Lorentz5Momentum
gauge_
;
521
525
PPtr
zboson_
;
526
530
Energy2
mz2_
;
532
536
bool
NLO_
;
537
};
538
539
}
540
541
542
#endif
/* HERWIG_SMZDecayer_H */
ThePEG::PPtr
ThePEG::Ptr< Particle >::pointer PPtr
Herwig::SMZDecayer::FFGVertex_
AbstractFFVVertexPtr FFGVertex_
Pointer to the fermion-antifermion G vertex.
Definition:
SMZDecayer.h:392
ThePEG::PersistentIStream
Herwig::SMZDecayer::FFZVertex_
FFVVertexPtr FFZVertex_
Pointer to the fermion-antifermion Z vertex.
Definition:
SMZDecayer.h:382
Herwig::SMZDecayer::FFPVertex_
AbstractFFVVertexPtr FFPVertex_
Pointer to the photon vertex.
Definition:
SMZDecayer.h:387
Herwig::SMZDecayer::leptonWeight_
vector< double > leptonWeight_
Weights for the Z to leptons decays.
Definition:
SMZDecayer.h:406
ThePEG::Particle
ThePEG::Helicity
Herwig::ShowerInteraction
ShowerInteraction
Handy header file to be included in all Shower classes.
Definition:
ShowerInteraction.h:23
Herwig::SMZDecayer::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
SMZDecayer.h:180
Herwig::SMZDecayer::partons_
vector< tcPDPtr > partons_
The ParticleData objects for the fermions.
Definition:
SMZDecayer.h:510
Herwig::SMZDecayer::CF_
double CF_
The colour factor.
Definition:
SMZDecayer.h:471
Herwig::SMZDecayer::gauge_
Lorentz5Momentum gauge_
The momentum of the radiated gauge boson.
Definition:
SMZDecayer.h:520
ThePEG::PersistentOStream
Herwig::SMZDecayer::quarkWeight_
vector< double > quarkWeight_
maximum weights for the different integrations
Definition:
SMZDecayer.h:401
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::LorentzRotation
Herwig::SMZDecayer::d_v_
double d_v_
The v parameter.
Definition:
SMZDecayer.h:449
Herwig::SMZDecayer::gluon_
tcPDPtr gluon_
Stuff for the POWHEG correction.
Definition:
SMZDecayer.h:505
Herwig::SMZDecayer::mu2_
double mu2_
The square of the reduced mass.
Definition:
SMZDecayer.h:486
Herwig::SMZDecayer::NLO_
bool NLO_
Whether or not to give an LO or NLO normalisation.
Definition:
SMZDecayer.h:536
ThePEG
Herwig::SMZDecayer::_wavebar
vector< SpinorBarWaveFunction > _wavebar
Barred spinors for the decay.
Definition:
SMZDecayer.h:427
Herwig::SMZDecayer::d_m_
Energy d_m_
Quark mass.
Definition:
SMZDecayer.h:439
Herwig::SMZDecayer::mZ_
Energy mZ_
The Z mass.
Definition:
SMZDecayer.h:476
Herwig::SMZDecayer::EPS_
static const double EPS_
Cut-off parameter.
Definition:
SMZDecayer.h:464
Herwig::SMZDecayer::d_kt1_
double d_kt1_
The initial kappa-tilde values for radiation from the quark.
Definition:
SMZDecayer.h:454
Herwig::SMZDecayer::_wave
vector< SpinorWaveFunction > _wave
Spinors for the decay.
Definition:
SMZDecayer.h:422
Herwig::DecayIntegrator::MEOption
MEOption
Enum for the matrix element option.
Definition:
DecayIntegrator.h:79
Herwig::SMZDecayer::d_kt2_
double d_kt2_
The initial kappa-tilde values for radiation from the antiquark.
Definition:
SMZDecayer.h:459
Herwig::SMZDecayer::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition:
SMZDecayer.h:186
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::SMZDecayer
The SMZDecayer is designed to perform the decay of the Z boson to the Standard Model fermions...
Definition:
SMZDecayer.h:31
Herwig::SMZDecayer::_vectors
vector< VectorWaveFunction > _vectors
Polarization vectors for the decay.
Definition:
SMZDecayer.h:417
Herwig::SMZDecayer::mu_
double mu_
The reduced mass.
Definition:
SMZDecayer.h:481
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
Herwig::SMZDecayer::quark_
vector< Lorentz5Momentum > quark_
The fermion momenta.
Definition:
SMZDecayer.h:515
Herwig::SMZDecayer::d_Q_
Energy d_Q_
CM energy.
Definition:
SMZDecayer.h:434
Herwig::PerturbativeDecayer
The PerturbativeDecayer class is the base class for perturbative decays in Herwig and implements the ...
Definition:
PerturbativeDecayer.h:23
Herwig::SMZDecayer::mz2_
Energy2 mz2_
Higgs mass squared.
Definition:
SMZDecayer.h:530
Herwig::SMZDecayer::aS_
double aS_
The strong coupling.
Definition:
SMZDecayer.h:491
Herwig::SMZDecayer::scale_
Energy2 scale_
The scale.
Definition:
SMZDecayer.h:496
Herwig::SMZDecayer::zboson_
PPtr zboson_
The Z boson.
Definition:
SMZDecayer.h:525
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::SMZDecayer::hasPOWHEGCorrection
virtual POWHEGType hasPOWHEGCorrection()
Has a POWHEG style correction.
Definition:
SMZDecayer.h:80
Herwig::SMZDecayer::_rho
RhoDMatrix _rho
Spin density matrix for the decay.
Definition:
SMZDecayer.h:412
ThePEG::ParticleVector
vector< PPtr > ParticleVector
ThePEG::RhoDMatrix
Herwig::SMZDecayer::d_rho_
double d_rho_
The rho parameter.
Definition:
SMZDecayer.h:444
Herwig::SMZDecayer::hasMECorrection
virtual bool hasMECorrection()
Virtual members to be overridden by inheriting classes which implement hard corrections.
Definition:
SMZDecayer.h:48
Generated on Sat Apr 11 2020 14:50:31 for Herwig by
1.8.13