herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Decay
Perturbative
SMTopDecayer.h
1
// -*- C++ -*-
2
//
3
// SMTopDecayer.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_SMTopDecayer_H
10
#define HERWIG_SMTopDecayer_H
11
//
12
// This is the declaration of the SMTopDecayer class.
13
//
14
15
#include "Herwig/Decay/PerturbativeDecayer.h"
16
#include "ThePEG/Helicity/Vertex/AbstractFFVVertex.h"
17
#include "ThePEG/Helicity/Vertex/AbstractVVVVertex.h"
18
#include "Herwig/Decay/PhaseSpaceMode.h"
19
#include "Herwig/Models/StandardModel/StandardModel.h"
20
#include "Herwig/Shower/ShowerAlpha.fh"
21
22
namespace
Herwig
{
23
using namespace
ThePEG
;
24
using namespace
ThePEG::Helicity
;
25
33
class
SMTopDecayer
:
public
PerturbativeDecayer
{
34
35
public
:
36
40
SMTopDecayer
();
41
42
public
:
43
52
virtual
bool
hasMECorrection
() {
return
true
;}
53
57
virtual
void
initializeMECorrection
(RealEmissionProcessPtr ,
double
& ,
58
double
& );
59
72
virtual
bool
softMatrixElementVeto
(
PPtr
parent,
73
PPtr
progenitor,
74
const
bool
& fs,
75
const
Energy & highestpT,
76
const
vector<tcPDPtr> & ids,
77
const
double
& z,
78
const
Energy & scale,
79
const
Energy &
pT
);
80
84
virtual
POWHEGType
hasPOWHEGCorrection
() {
return
FSR;}
86
87
public
:
88
92
virtual
int
modeNumber
(
bool
& ,
tcPDPtr
,
const
tPDVector
& )
const
{
return
-1;}
93
100
virtual
bool
accept
(
tcPDPtr
parent,
const
tPDVector
& children)
const
;
101
108
virtual
ParticleVector
decay
(
const
Particle
& parent,
109
const
tPDVector
& children)
const
;
110
120
double
me2
(
const
int
ichan,
const
Particle
& part,
121
const
tPDVector
&
outgoing
,
122
const
vector<Lorentz5Momentum> & momenta,
123
MEOption
meopt)
const
;
124
128
virtual
void
constructSpinInfo
(
const
Particle
& part,
129
ParticleVector
outgoing
)
const
;
130
136
virtual
WidthCalculatorBasePtr
threeBodyMEIntegrator
(
const
DecayMode
& dm)
const
;
137
148
virtual
InvEnergy
threeBodydGammads
(
const
int
imode
,
const
Energy2 q2,
149
const
Energy2
s
,
const
Energy m1,
150
const
Energy m2,
const
Energy m3)
const
;
151
157
virtual
void
dataBaseOutput
(ofstream & os,
bool
header)
const
;
158
159
public
:
160
167
void
persistentOutput
(
PersistentOStream
& os)
const
;
168
174
void
persistentInput
(
PersistentIStream
& is,
int
version);
176
183
static
void
Init
();
184
185
protected
:
186
190
Energy6
dGammaIntegrand
(Energy2 mffb2, Energy2 mbf2, Energy mt, Energy
mb
,
191
Energy mf, Energy mfb, Energy mw)
const
;
192
193
protected
:
194
201
virtual
IBPtr
clone
()
const
{
return
new_ptr(*
this
);}
202
207
virtual
IBPtr
fullclone
()
const
{
return
new_ptr(*
this
);}
209
210
protected
:
211
219
virtual
void
doinit
();
220
225
virtual
void
doinitrun
();
227
228
protected
:
229
236
double
xgbcut
(
double
);
237
243
double
me
(
double
xw,
double
xg);
244
245
protected
:
246
250
virtual
double
matrixElementRatio
(
const
Particle
& inpart,
const
ParticleVector
& decay2,
251
const
ParticleVector
& decay3,
MEOption
meopt,
252
ShowerInteraction
inter);
253
257
double
loME
(
const
Particle
& inpart,
const
ParticleVector
&
decay
);
258
262
double
realME
(
const
Particle
& inpart,
const
ParticleVector
&
decay
,
263
ShowerInteraction
inter);
264
265
private
:
266
271
SMTopDecayer
&
operator=
(
const
SMTopDecayer
&) =
delete
;
272
276
AbstractFFVVertexPtr
FFWVertex_
;
277
281
AbstractFFVVertexPtr
FFGVertex_
;
282
286
AbstractFFVVertexPtr
FFPVertex_
;
287
291
AbstractVVVVertexPtr
WWWVertex_
;
292
300
vector<double>
_wquarkwgt
;
301
305
vector<double>
_wleptonwgt
;
307
311
PDPtr
_wplus
;
312
316
mutable
RhoDMatrix
_rho
;
317
321
mutable
vector<SpinorWaveFunction >
_inHalf
;
322
326
mutable
vector<SpinorWaveFunction >
_outHalf
;
327
331
mutable
vector<SpinorBarWaveFunction>
_inHalfBar
;
332
336
mutable
vector<SpinorBarWaveFunction>
_outHalfBar
;
337
341
Energy
_ma
;
342
346
Energy
_mc
;
347
351
Energy
_mt
;
352
356
Energy
_mg
;
357
361
double
_a
;
362
366
double
_c
;
367
371
double
_g
;
372
376
double
_ktb
;
377
381
double
_ktc
;
382
383
388
double
_xg_sampling
;
389
393
double
_initialenhance
;
394
398
double
_finalenhance
;
399
};
400
401
}
402
403
#endif
/* HERWIG_SMTopDecayer_H */
Herwig::DecayIntegrator::imode
int imode() const
The mode being used for this decay.
Definition:
DecayIntegrator.h:118
Herwig::DecayIntegrator::MEOption
MEOption
Enum for the matrix element option.
Definition:
DecayIntegrator.h:72
Herwig::HwDecayerBase::POWHEGType
POWHEGType
Virtual members to be overridden by inheriting classes which implement hard corrections.
Definition:
HwDecayerBase.h:76
Herwig::PerturbativeDecayer
The PerturbativeDecayer class is the base class for perturbative decays in Herwig and implements the ...
Definition:
PerturbativeDecayer.h:23
Herwig::PerturbativeDecayer::mb
const Energy & mb() const
Mass of decaying particle.
Definition:
PerturbativeDecayer.h:220
Herwig::PerturbativeDecayer::pT
const Energy & pT() const
Access to the kinematics for inheriting classes.
Definition:
PerturbativeDecayer.h:215
Herwig::PerturbativeDecayer::s
const double & s() const
Reduced mass of spectator child particle.
Definition:
PerturbativeDecayer.h:230
Herwig::SMTopDecayer
The SMTopDecayer performs decays of the top quark into the bottom quark and qqbar pairs or to the bot...
Definition:
SMTopDecayer.h:33
Herwig::SMTopDecayer::constructSpinInfo
virtual void constructSpinInfo(const Particle &part, ParticleVector outgoing) const
Construct the SpinInfos for the particles produced in the decay.
Herwig::SMTopDecayer::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition:
SMTopDecayer.h:207
Herwig::SMTopDecayer::_mg
Energy _mg
The gluon mass.
Definition:
SMTopDecayer.h:356
Herwig::SMTopDecayer::_finalenhance
double _finalenhance
The enhancement factor for final-state radiation.
Definition:
SMTopDecayer.h:398
Herwig::SMTopDecayer::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::SMTopDecayer::_outHalf
vector< SpinorWaveFunction > _outHalf
2nd spinor for the decay
Definition:
SMTopDecayer.h:326
Herwig::SMTopDecayer::FFGVertex_
AbstractFFVVertexPtr FFGVertex_
Pointer to the gluon vertex.
Definition:
SMTopDecayer.h:281
Herwig::SMTopDecayer::me2
double me2(const int ichan, const Particle &part, const tPDVector &outgoing, const vector< Lorentz5Momentum > &momenta, MEOption meopt) const
Return the matrix element squared for a given mode and phase-space channel.
Herwig::SMTopDecayer::FFPVertex_
AbstractFFVVertexPtr FFPVertex_
Pointer to the photon vertex.
Definition:
SMTopDecayer.h:286
Herwig::SMTopDecayer::hasPOWHEGCorrection
virtual POWHEGType hasPOWHEGCorrection()
Has a POWHEG style correction.
Definition:
SMTopDecayer.h:84
Herwig::SMTopDecayer::_wplus
PDPtr _wplus
Pointer to the .
Definition:
SMTopDecayer.h:311
Herwig::SMTopDecayer::_outHalfBar
vector< SpinorBarWaveFunction > _outHalfBar
2nd barred spinor for the decay
Definition:
SMTopDecayer.h:336
Herwig::SMTopDecayer::_rho
RhoDMatrix _rho
Spin density matrix for the decay.
Definition:
SMTopDecayer.h:316
Herwig::SMTopDecayer::_inHalfBar
vector< SpinorBarWaveFunction > _inHalfBar
1st barred spinor for the decay
Definition:
SMTopDecayer.h:331
Herwig::SMTopDecayer::_inHalf
vector< SpinorWaveFunction > _inHalf
1st spinor for the decay
Definition:
SMTopDecayer.h:321
Herwig::SMTopDecayer::SMTopDecayer
SMTopDecayer()
The default constructor.
Herwig::SMTopDecayer::realME
double realME(const Particle &inpart, const ParticleVector &decay, ShowerInteraction inter)
LO matrix element for .
Herwig::SMTopDecayer::softMatrixElementVeto
virtual bool softMatrixElementVeto(PPtr parent, PPtr progenitor, const bool &fs, const Energy &highestpT, const vector< tcPDPtr > &ids, const double &z, const Energy &scale, const Energy &pT)
Apply the soft matrix element correction.
Herwig::SMTopDecayer::_mc
Energy _mc
The mass of the bottom quark.
Definition:
SMTopDecayer.h:346
Herwig::SMTopDecayer::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::SMTopDecayer::FFWVertex_
AbstractFFVVertexPtr FFWVertex_
Pointer to the W vertex.
Definition:
SMTopDecayer.h:276
Herwig::SMTopDecayer::doinit
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
Herwig::SMTopDecayer::xgbcut
double xgbcut(double)
This function determines the point ( ) where the condition that be real supersedes that due to the e...
Herwig::SMTopDecayer::hasMECorrection
virtual bool hasMECorrection()
Virtual members to be overridden by inheriting classes which implement hard corrections.
Definition:
SMTopDecayer.h:52
Herwig::SMTopDecayer::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
SMTopDecayer.h:201
Herwig::SMTopDecayer::_xg_sampling
double _xg_sampling
This determines the hard matrix element importance sampling in _xg.
Definition:
SMTopDecayer.h:388
Herwig::SMTopDecayer::dataBaseOutput
virtual void dataBaseOutput(ofstream &os, bool header) const
Output the setup information for the particle database.
Herwig::SMTopDecayer::accept
virtual bool accept(tcPDPtr parent, const tPDVector &children) const
Check if this decayer can perfom the decay for a particular mode.
Herwig::SMTopDecayer::_wleptonwgt
vector< double > _wleptonwgt
Weight .
Definition:
SMTopDecayer.h:305
Herwig::SMTopDecayer::_wquarkwgt
vector< double > _wquarkwgt
Max weight for integration.
Definition:
SMTopDecayer.h:300
Herwig::SMTopDecayer::threeBodydGammads
virtual InvEnergy threeBodydGammads(const int imode, const Energy2 q2, const Energy2 s, const Energy m1, const Energy m2, const Energy m3) const
The differential three body decay rate with one integral performed.
Herwig::SMTopDecayer::_ktc
double _ktc
Two times the energy fraction of the gluon.
Definition:
SMTopDecayer.h:381
Herwig::SMTopDecayer::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::SMTopDecayer::_ktb
double _ktb
Two times the energy fraction of a.
Definition:
SMTopDecayer.h:376
Herwig::SMTopDecayer::dGammaIntegrand
Energy6 dGammaIntegrand(Energy2 mffb2, Energy2 mbf2, Energy mt, Energy mb, Energy mf, Energy mfb, Energy mw) const
The integrand for the integrate partial width.
Herwig::SMTopDecayer::modeNumber
virtual int modeNumber(bool &, tcPDPtr, const tPDVector &) const
Which of the possible decays is required.
Definition:
SMTopDecayer.h:92
Herwig::SMTopDecayer::loME
double loME(const Particle &inpart, const ParticleVector &decay)
LO matrix element for .
Herwig::SMTopDecayer::initializeMECorrection
virtual void initializeMECorrection(RealEmissionProcessPtr, double &, double &)
Initialize the ME correction.
Herwig::SMTopDecayer::_a
double _a
The mass ratio for the W.
Definition:
SMTopDecayer.h:361
Herwig::SMTopDecayer::WWWVertex_
AbstractVVVVertexPtr WWWVertex_
Pointer to the photon vertex.
Definition:
SMTopDecayer.h:291
Herwig::SMTopDecayer::me
double me(double xw, double xg)
Full matrix element with a factor of removed.
Herwig::SMTopDecayer::_g
double _g
The mass ratio for the gluon.
Definition:
SMTopDecayer.h:371
Herwig::SMTopDecayer::matrixElementRatio
virtual double matrixElementRatio(const Particle &inpart, const ParticleVector &decay2, const ParticleVector &decay3, MEOption meopt, ShowerInteraction inter)
Calculate matrix element ratio R/B.
Herwig::SMTopDecayer::_c
double _c
The mass ratio for the bottom.
Definition:
SMTopDecayer.h:366
Herwig::SMTopDecayer::operator=
SMTopDecayer & operator=(const SMTopDecayer &)=delete
The assignment operator is private and must never be called.
Herwig::SMTopDecayer::_mt
Energy _mt
The top mass.
Definition:
SMTopDecayer.h:351
Herwig::SMTopDecayer::decay
virtual ParticleVector decay(const Particle &parent, const tPDVector &children) const
For a given decay mode and a given particle instance, perform the decay and return the decay products...
Herwig::SMTopDecayer::_ma
Energy _ma
The mass of the W boson.
Definition:
SMTopDecayer.h:341
Herwig::SMTopDecayer::_initialenhance
double _initialenhance
The enhancement factor for initial-state radiation.
Definition:
SMTopDecayer.h:393
Herwig::SMTopDecayer::threeBodyMEIntegrator
virtual WidthCalculatorBasePtr threeBodyMEIntegrator(const DecayMode &dm) const
Method to return an object to calculate the 3 (or higher body) partial width.
Herwig::SMTopDecayer::doinitrun
virtual void doinitrun()
Initialize this object.
ThePEG::DecayMode
ThePEG::Particle
ThePEG::PersistentIStream
ThePEG::PersistentOStream
ThePEG::RhoDMatrix
Herwig::ShowerInteraction
ShowerInteraction
Handy header file to be included in all Shower classes.
Definition:
ShowerInteraction.h:23
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG::Helicity
ThePEG::Helicity::outgoing
outgoing
ThePEG
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tPDVector
vector< tPDPtr > tPDVector
ThePEG::PPtr
ThePEG::Ptr< Particle >::pointer PPtr
ThePEG::ParticleVector
vector< PPtr > ParticleVector
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
ThePEG::PDPtr
ThePEG::Ptr< ParticleData >::pointer PDPtr
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6