ThePEG
1.8.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
StandardModel
StandardModelBase.h
1
// -*- C++ -*-
2
//
3
// StandardModelBase.h is a part of ThePEG - Toolkit for HEP Event Generation
4
// Copyright (C) 1999-2011 Leif Lonnblad
5
//
6
// ThePEG is licenced under version 2 of the GPL, see COPYING for details.
7
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
8
//
9
#ifndef ThePEG_StandardModelBase_H
10
#define ThePEG_StandardModelBase_H
11
// This is the declaration of the StandardModelBase class.
12
13
#include "ThePEG/Config/ThePEG.h"
14
#include "AlphaEMBase.h"
15
#include "CKMBase.h"
16
#include "AlphaSBase.h"
17
// #include "StandardModelBase.fh"
18
// #include "StandardModelBase.xh"
19
20
namespace
ThePEG {
21
38
class
StandardModelBase
:
public
Interfaced
{
39
41
typedef
Ptr<AlphaEMBase>::pointer
AEMPtr
;
43
typedef
Ptr<AlphaSBase>::pointer
ASPtr
;
45
typedef
Ptr<CKMBase>::pointer
CKMPtr
;
47
typedef
Ptr<AlphaEMBase>::transient_pointer
tAEMPtr
;
49
typedef
Ptr<AlphaSBase>::transient_pointer
tASPtr
;
51
typedef
Ptr<CKMBase>::transient_pointer
tCKMPtr
;
52
53
public
:
54
60
StandardModelBase
();
61
65
virtual
~StandardModelBase
();
67
68
public
:
69
73
unsigned
int
families
()
const
{
return
theFamilies
; }
74
75
public
:
76
77
83
double
alphaEM
()
const
{
return
theAlphaEM
; }
84
88
double
alphaEMMZ
()
const
{
return
theAlphaEMMZ
; }
89
94
double
alphaEMME
(Energy2 scale) {
95
if
(
theElectroWeakScheme
==0)
96
return
alphaEM
(scale);
97
else
if
(scale>1e-6*GeV2)
98
return
theAlphaEMMZ
;
99
else
100
return
theAlphaEMMZ
;
101
}
102
106
double
alphaEM
(Energy2 scale)
const
{
107
return
theRunningAlphaEM
->value(scale, *
this
);
108
}
109
113
tAEMPtr
alphaEMPtr
()
const
{
return
theRunningAlphaEM
; }
114
118
double
sin2ThetaW
()
const
{
return
theSin2ThetaW
; }
119
123
InvEnergy2
fermiConstant
()
const
{
return
theGF
;}
124
128
double
enu
()
const
{
return
theEnu
; }
129
133
double
ee
()
const
{
return
theEe
; }
134
138
double
eu
()
const
{
return
theEu
; }
139
143
double
ed
()
const
{
return
theEd
; }
144
148
double
vnu
()
const
{
return
theVnu
; }
149
153
double
ve
()
const
{
return
theVe
; }
154
158
double
vu
()
const
{
return
theVu
; }
159
163
double
vd
()
const
{
return
theVd
; }
164
168
double
anu
()
const
{
return
theAnu
; }
169
173
double
ae
()
const
{
return
theAe
; }
174
178
double
au
()
const
{
return
theAu
; }
179
183
double
ad
()
const
{
return
theAd
; }
184
188
tCKMPtr
CKM
()
const
{
return
theCKM
; }
189
195
double
CKM
(
unsigned
int
uf,
unsigned
int
df)
const
;
196
201
double
CKM
(
const
ParticleData
& uType,
202
const
ParticleData
& dType)
const
;
204
205
public
:
206
212
unsigned
int
Nc
()
const
{
return
theNc
; }
213
217
unsigned
int
Nf
(Energy2 scale)
const
{
218
return
theRunningAlphaS
->Nf(scale);
219
}
220
224
double
alphaS
()
const
{
return
theAlphaS
; }
225
229
double
alphaS
(Energy2 scale)
const
{
230
return
theRunningAlphaS
->value(scale, *
this
);
231
}
232
236
tASPtr
alphaSPtr
()
const
{
237
return
theRunningAlphaS
;
238
}
239
243
Energy
LambdaQCD
(
unsigned
int
nflav)
const
{
244
return
theRunningAlphaS
->LambdaQCD(nflav);
245
}
246
250
Energy
LambdaQCD
(Energy2 scale)
const
{
return
LambdaQCD
(
Nf
(scale)); }
252
253
public
:
254
255
262
void
persistentOutput
(
PersistentOStream
& os)
const
;
263
269
void
persistentInput
(
PersistentIStream
& is,
int
version);
271
275
static
void
Init
();
276
280
virtual
bool
preInitialize
()
const
{
281
return
true
;
282
}
283
284
protected
:
285
292
virtual
IBPtr
clone
()
const
;
293
298
virtual
IBPtr
fullclone
()
const
;
300
301
302
protected
:
303
306
312
virtual
void
doinit
();
314
315
private
:
316
320
unsigned
int
theFamilies
;
321
325
double
theAlphaEM
;
326
330
double
theAlphaEMMZ
;
331
336
AEMPtr
theRunningAlphaEM
;
337
341
double
theSin2ThetaW
;
342
346
InvEnergy2
theGF
;
347
351
double
theEnu
;
352
356
double
theEe
;
357
361
double
theEu
;
362
366
double
theEd
;
367
371
double
theVnu
;
372
376
double
theVe
;
377
381
double
theVu
;
382
386
double
theVd
;
387
391
double
theAnu
;
392
396
double
theAe
;
397
401
double
theAu
;
402
406
double
theAd
;
407
412
long
recalculateEW
;
413
418
CKMPtr
theCKM
;
419
423
mutable
vector< vector<double> >
theCKM2Matrix
;
424
428
unsigned
int
theNc
;
429
433
double
theAlphaS
;
434
439
ASPtr
theRunningAlphaS
;
440
444
unsigned
int
theElectroWeakScheme
;
445
449
unsigned
int
theBosonWidthOption
;
450
451
private
:
452
456
static
ClassDescription<StandardModelBase>
initStandardModelBase
;
457
461
StandardModelBase
&
operator=
(
const
StandardModelBase
&);
462
463
};
464
469
template
<>
470
struct
BaseClassTrait
<
StandardModelBase
,1>:
public
ClassTraitsType
{
472
typedef
Interfaced
NthBase
;
473
};
474
477
template
<>
478
struct
ClassTraits<StandardModelBase>:
479
public
ClassTraitsBase<StandardModelBase> {
481
static
string
className
() {
return
"ThePEG::StandardModelBase"
; }
482
};
483
486
}
487
488
#endif
/* ThePEG_StandardModelBase_H */
Generated on Sat Jun 16 2012 16:51:05 for ThePEG by
1.8.1.1