herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
Shower
Dipole
AlphaS
nlo_alpha_s.h
1
// -*- C++ -*-
2
3
// couplings/nlo_alpha_s.h is part of matchbox
4
// (C) 2008 Simon Platzer -- sp@particle.uni-karlsruhe.de
5
6
#ifndef matchbox_couplings_nlo_alpha_s_h
7
#define matchbox_couplings_nlo_alpha_s_h
8
9
#include "alpha_s.h"
10
11
namespace
matchbox
{
12
13
using namespace
ThePEG
;
14
21
class
nlo_alpha_s
22
:
public
alpha_s
{
23
24
public
:
25
31
nlo_alpha_s
();
32
36
virtual
~
nlo_alpha_s
();
38
39
public
:
40
43
virtual
double
operator () (Energy2 scale,
44
Energy2 lambda2,
45
unsigned
int
nf)
const
;
46
48
virtual
unsigned
int
nloops
()
const
{
return
2; }
49
50
public
:
51
58
void
persistentOutput(
PersistentOStream
& os)
const
;
59
65
void
persistentInput(
PersistentIStream
& is,
int
version);
67
74
static
void
Init();
75
76
protected
:
77
80
86
virtual
inline
void
doinit
() {
87
freezing_scale_ *= scale_factor();
88
alpha_s::doinit
();
89
}
90
92
93
protected
:
94
101
virtual
IBPtr
clone()
const
;
102
107
virtual
IBPtr
fullclone()
const
;
109
110
private
:
111
116
static
ClassDescription<nlo_alpha_s>
initnlo_alpha_s
;
117
122
nlo_alpha_s
& operator=(
const
nlo_alpha_s
&) =
delete
;
123
124
private
:
125
126
struct
rg_solution
{
127
128
inline
double
operator () (
double
alpha) {
129
130
double
beta0 = (33.-2.*nf)/(12.*Constants::pi);
131
double
beta1 = (153.-19.*nf)/(24.*
sqr
(Constants::pi));
132
133
return
((1./alpha)+(beta1/beta0)*log(alpha/(beta0+beta1*alpha))- beta0*slog);
134
135
}
136
137
double
slog;
138
unsigned
int
nf;
139
140
};
141
142
Energy freezing_scale_;
143
144
bool
exact_evaluation_;
145
146
static
rg_solution
& rg () {
147
static
rg_solution
rg_;
148
return
rg_;
149
}
150
151
static
gsl::bisection_root_solver<rg_solution,100>
& rg_solver () {
152
static
gsl::bisection_root_solver<rg_solution,100>
rg_solver_(rg());
153
return
rg_solver_;
154
}
155
156
bool
two_largeq_terms_;
157
158
};
159
160
}
161
162
#include "ThePEG/Utilities/ClassTraits.h"
163
164
namespace
ThePEG
{
165
170
template
<>
171
struct
BaseClassTrait
<matchbox::
nlo_alpha_s
,1> {
173
typedef
matchbox::alpha_s
NthBase;
174
};
175
178
template
<>
179
struct
ClassTraits
<matchbox::
nlo_alpha_s
>
180
:
public
ClassTraitsBase
<matchbox::nlo_alpha_s> {
182
static
string
className() {
return
"matchbox::nlo_alpha_s"
; }
190
static
string
library() {
return
"HwDipoleShowerAlphaS.so"
; }
191
};
192
195
}
196
197
#endif
/* matchbox_couplings_nlo_alpha_s_h */
ThePEG::PersistentIStream
ThePEG::ClassDescription
matchbox::nlo_alpha_s::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Definition:
nlo_alpha_s.h:86
ThePEG::PersistentOStream
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
sqr
constexpr auto sqr(const T &x) -> decltype(x *x)
matchbox::nlo_alpha_s
NLO running alpha_s.
Definition:
nlo_alpha_s.h:21
matchbox::alpha_s::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Definition:
alpha_s.h:241
ThePEG
matchbox
Definition:
alpha_s.h:18
matchbox::nlo_alpha_s::nloops
virtual unsigned int nloops() const
return the number of loops which determine this running
Definition:
nlo_alpha_s.h:48
matchbox::alpha_s
Base class for the strong coupling.
Definition:
alpha_s.h:96
ThePEG::ClassTraits
matchbox::gsl::bisection_root_solver
wrapper araound the bisection root solver
Definition:
gsl.h:23
matchbox::nlo_alpha_s::rg_solution
Definition:
nlo_alpha_s.h:126
ThePEG::BaseClassTrait
matchbox::nlo_alpha_s::initnlo_alpha_s
static ClassDescription< nlo_alpha_s > initnlo_alpha_s
The static object used to initialize the description of this class.
Definition:
nlo_alpha_s.h:116
ThePEG::ClassTraitsBase
Generated on Sat Apr 11 2020 14:50:31 for Herwig by
1.8.13