herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
Decay
PerturbativeDecayer.h
1
// -*- C++ -*-
2
#ifndef Herwig_PerturbativeDecayer_H
3
#define Herwig_PerturbativeDecayer_H
4
//
5
// This is the declaration of the PerturbativeDecayer class.
6
//
7
8
#include "Herwig/Decay/DecayIntegrator.h"
9
#include "Herwig/Shower/ShowerAlpha.h"
10
#include "Herwig/Shower/ShowerInteraction.h"
11
12
namespace
Herwig
{
13
14
using namespace
ThePEG
;
15
23
class
PerturbativeDecayer
:
public
DecayIntegrator
{
24
25
protected
:
26
30
enum
dipoleType
{FFa, FFc, IFa, IFc, IFba, IFbc, FFg};
31
35
enum
phaseSpaceRegion
{emissionFromB,emissionFromC,emissionFromA1,emissionFromA2,deadZone};
36
40
struct
DipoleType
{
41
42
DipoleType
() {}
43
44
DipoleType
(
dipoleType
a,
ShowerInteraction
b)
45
: type(a), interaction(b)
46
{}
47
48
dipoleType
type;
49
50
ShowerInteraction
interaction;
51
};
52
53
public
:
54
58
PerturbativeDecayer
() : inter_(
ShowerInteraction
::QCD),
59
pTmin_(GeV), useMEforT2_(true),
60
C_(5.), ymax_(10.), phaseOpt_(1),
61
pT_(
ZERO
),mb_(
ZERO
), e_(0.),
62
s_(0.), e2_(0.), s2_(0.), enhance_(1.)
63
{}
64
68
virtual
POWHEGType
hasPOWHEGCorrection
() {
return
No;}
69
73
virtual
RealEmissionProcessPtr generateHardest(RealEmissionProcessPtr);
74
78
virtual
RealEmissionProcessPtr applyHardMatrixElementCorrection(RealEmissionProcessPtr);
79
80
public
:
81
88
void
persistentOutput(
PersistentOStream
& os)
const
;
89
95
void
persistentInput(
PersistentIStream
& is,
int
version);
97
104
static
void
Init();
105
106
protected
:
107
111
virtual
double
matrixElementRatio(
const
Particle
& inpart,
const
ParticleVector
& decay2,
112
const
ParticleVector
& decay3,
MEOption
meopt,
113
ShowerInteraction
inter);
114
118
bool
identifyDipoles(vector<DipoleType> & dipoles,
119
PPtr
& aProgenitor,
120
PPtr
& bProgenitor,
121
PPtr
& cProgenitor,
122
ShowerInteraction
inter)
const
;
123
127
ShowerAlphaPtr
alphaS
() {
return
alphaS_;}
128
132
ShowerAlphaPtr
alphaEM
() {
return
alphaEM_;}
133
137
vector<Lorentz5Momentum> hardMomenta(
PPtr
in,
PPtr
emitter,
138
PPtr
spectator,
139
const
vector<DipoleType> & dipoles,
140
int
i,
bool
inDeadZone);
141
145
bool
calcMomenta(
int
j, Energy pT,
double
y,
double
phi,
double
& xg,
146
double
& xs,
double
& xe,
double
& xe_z,
147
vector<Lorentz5Momentum>& particleMomenta);
148
152
bool
psCheck(
const
double
xg,
const
double
xs);
153
157
pair<double,double> calculateDipole(
const
DipoleType
& dipoleId,
158
const
Particle
& inpart,
159
const
ParticleVector
& decay3);
160
164
double
dipoleSpinFactor(
tcPDPtr
emitter,
double
z);
165
169
double
colourCoeff(
tcPDPtr
emitter,
tcPDPtr
spectator,
170
tcPDPtr
other,
DipoleType
dipole);
171
175
void
getColourLines(RealEmissionProcessPtr real);
176
180
RealEmissionProcessPtr getHardEvent(RealEmissionProcessPtr born,
181
bool
inDeadZone,
182
ShowerInteraction
inter);
183
187
bool
inTotalDeadZone(
double
xg,
double
xs,
188
const
vector<DipoleType> & dipoles,
189
int
i);
190
194
phaseSpaceRegion
inInitialFinalDeadZone(
double
xg,
double
xa,
double
a,
double
c)
const
;
195
199
phaseSpaceRegion
inFinalFinalDeadZone(
double
xb,
double
xc,
double
b,
double
c)
const
;
200
204
bool
useMEforT2
()
const
{
return
useMEforT2_;}
205
206
protected
:
207
215
const
Energy &
pT
()
const
{
return
pT_;}
216
220
const
Energy &
mb
()
const
{
return
mb_;}
221
225
const
double
&
e
()
const
{
return
e_;}
226
230
const
double
&
s
()
const
{
return
s_;}
231
235
const
double
&
e2
()
const
{
return
e2_;}
236
240
const
double
&
s2
()
const
{
return
s2_;}
242
243
private
:
244
249
PerturbativeDecayer
& operator=(
const
PerturbativeDecayer
&) =
delete
;
250
251
private
:
252
260
ShowerInteraction
inter_
;
261
265
ShowerAlphaPtr
alphaS_
;
266
270
ShowerAlphaPtr
alphaEM_
;
271
275
Energy
pTmin_
;
276
282
bool
useMEforT2_
;
283
287
double
C_
;
288
292
double
ymax_
;
293
297
unsigned
int
phaseOpt_
;
299
300
private
:
301
309
Energy
pT_
;
310
314
Energy
mb_
;
315
319
double
e_
;
320
324
double
s_
;
325
329
double
e2_
;
330
334
double
s2_
;
335
339
mutable
double
enhance_
;
341
};
342
343
}
344
345
#endif
/* Herwig_PerturbativeDecayer_H */
ThePEG::PPtr
ThePEG::Ptr< Particle >::pointer PPtr
Herwig::PerturbativeDecayer::alphaEM_
ShowerAlphaPtr alphaEM_
Coupling for the generation of hard QED radiation.
Definition:
PerturbativeDecayer.h:270
ThePEG::PersistentIStream
Herwig::PerturbativeDecayer::pT_
Energy pT_
Mmeber variables for the kinematics of the hard emission.
Definition:
PerturbativeDecayer.h:309
Herwig::PerturbativeDecayer::s2_
double s2_
Reduced mass of spectator child particle squared.
Definition:
PerturbativeDecayer.h:334
ThePEG::Particle
Herwig::ShowerInteraction
ShowerInteraction
Handy header file to be included in all Shower classes.
Definition:
ShowerInteraction.h:23
Herwig::PerturbativeDecayer::useMEforT2_
bool useMEforT2_
This flag determines whether the T2 region in the decay shower (JHEP12(2003)_045) is populated by the...
Definition:
PerturbativeDecayer.h:282
Herwig::PerturbativeDecayer::alphaEM
ShowerAlphaPtr alphaEM()
Coupling for the generation of hard QED radiation.
Definition:
PerturbativeDecayer.h:132
ThePEG::PersistentOStream
Herwig::PerturbativeDecayer::mb_
Energy mb_
Mass of decaying particle.
Definition:
PerturbativeDecayer.h:314
Herwig::PerturbativeDecayer::ymax_
double ymax_
Maximum value for y.
Definition:
PerturbativeDecayer.h:292
Herwig::PerturbativeDecayer::e2
const double & e2() const
Reduced mass of emitter child particle squared.
Definition:
PerturbativeDecayer.h:235
ThePEG
Herwig::PerturbativeDecayer::PerturbativeDecayer
PerturbativeDecayer()
The default constructor.
Definition:
PerturbativeDecayer.h:58
Herwig::PerturbativeDecayer::alphaS_
ShowerAlphaPtr alphaS_
Coupling for the generation of hard QCD radiation.
Definition:
PerturbativeDecayer.h:265
Herwig::PerturbativeDecayer::DipoleType
Type of dipole.
Definition:
PerturbativeDecayer.h:40
Herwig::PerturbativeDecayer::alphaS
ShowerAlphaPtr alphaS()
Coupling for the generation of hard QCD radiation.
Definition:
PerturbativeDecayer.h:127
Herwig::DecayIntegrator::MEOption
MEOption
Enum for the matrix element option.
Definition:
DecayIntegrator.h:79
Herwig::PerturbativeDecayer::phaseOpt_
unsigned int phaseOpt_
Option for phase-space sampling.
Definition:
PerturbativeDecayer.h:297
Herwig::PerturbativeDecayer::s2
const double & s2() const
Reduced mass of spectator child particle squared.
Definition:
PerturbativeDecayer.h:240
Herwig::PerturbativeDecayer::C_
double C_
Prefactor for the sampling.
Definition:
PerturbativeDecayer.h:287
Herwig::HwDecayerBase::POWHEGType
POWHEGType
Virtual members to be overridden by inheriting classes which implement hard corrections.
Definition:
HwDecayerBase.h:76
Herwig::PerturbativeDecayer::inter_
ShowerInteraction inter_
Members for the generation of the hard radiation.
Definition:
PerturbativeDecayer.h:260
Herwig::PerturbativeDecayer::e_
double e_
Reduced mass of emitter child particle.
Definition:
PerturbativeDecayer.h:319
Herwig::DecayIntegrator
Main class for Decayers implementing multi-channel phase space integration.
Definition:
DecayIntegrator.h:62
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
Herwig::PerturbativeDecayer
The PerturbativeDecayer class is the base class for perturbative decays in Herwig and implements the ...
Definition:
PerturbativeDecayer.h:23
Herwig::PerturbativeDecayer::s_
double s_
Reduced mass of spectator child particle.
Definition:
PerturbativeDecayer.h:324
Herwig::PerturbativeDecayer::pT
const Energy & pT() const
Access to the kinematics for inheriting classes.
Definition:
PerturbativeDecayer.h:215
Herwig::PerturbativeDecayer::hasPOWHEGCorrection
virtual POWHEGType hasPOWHEGCorrection()
Has a POWHEG style correction.
Definition:
PerturbativeDecayer.h:68
Herwig::PerturbativeDecayer::enhance_
double enhance_
Enhancement prefactor for special cases.
Definition:
PerturbativeDecayer.h:339
Herwig::PerturbativeDecayer::pTmin_
Energy pTmin_
Minimum .
Definition:
PerturbativeDecayer.h:275
Herwig::PerturbativeDecayer::e
const double & e() const
Reduced mass of emitter child particle.
Definition:
PerturbativeDecayer.h:225
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::PerturbativeDecayer::phaseSpaceRegion
phaseSpaceRegion
Phase-space region for an emission (assumes .
Definition:
PerturbativeDecayer.h:35
Herwig::PerturbativeDecayer::useMEforT2
bool useMEforT2() const
For me corrections use the shower or me for the T2 region.
Definition:
PerturbativeDecayer.h:204
Herwig::PerturbativeDecayer::e2_
double e2_
Reduced mass of emitter child particle squared.
Definition:
PerturbativeDecayer.h:329
Herwig::PerturbativeDecayer::dipoleType
dipoleType
Type of dipole.
Definition:
PerturbativeDecayer.h:30
Herwig::PerturbativeDecayer::s
const double & s() const
Reduced mass of spectator child particle.
Definition:
PerturbativeDecayer.h:230
ThePEG::ParticleVector
vector< PPtr > ParticleVector
Herwig::PerturbativeDecayer::mb
const Energy & mb() const
Mass of decaying particle.
Definition:
PerturbativeDecayer.h:220
ZERO
constexpr ZeroUnit ZERO
Generated on Sat Apr 11 2020 14:50:31 for Herwig by
1.8.13