thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
StandardModelBase.h
1// -*- C++ -*-
2//
3// StandardModelBase.h is a part of ThePEG - Toolkit for HEP Event Generation
4// Copyright (C) 1999-2019 Leif Lonnblad
5//
6// ThePEG 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 ThePEG_StandardModelBase_H
10#define ThePEG_StandardModelBase_H
11// This is the declaration of the StandardModelBase class.
12
14#include "AlphaEMBase.h"
15#include "CKMBase.h"
16#include "AlphaSBase.h"
17// #include "StandardModelBase.fh"
18// #include "StandardModelBase.xh"
19
20namespace ThePEG {
21
39
52
53public:
54
61
67
68public:
69
73 unsigned int families() const { return theFamilies; }
74
75public:
76
77
82 unsigned int ewScheme() const { return theElectroWeakScheme; }
83
87 void ewScheme(unsigned int s) { theElectroWeakScheme = s; }
88
90
93 double alphaEM() const { return theAlphaEM; }
94
98 double alphaEMMZ() const { return theAlphaEMMZ; }
99
104 double alphaEMME(Energy2 scale) const {
106 return alphaEM(scale);
107 else if(scale>1e-6*GeV2)
108 return theAlphaEMMZ;
109 else
110 return theAlphaEM;
111 }
112
116 double alphaEM(Energy2 scale) const {
117 return theRunningAlphaEM->value(scale, *this);
118 }
119
124
128 double sin2ThetaW() const { return theSin2ThetaW; }
129
134
138 double enu() const { return theEnu; }
139
143 double ee() const { return theEe; }
144
148 double eu() const { return theEu; }
149
153 double ed() const { return theEd; }
154
158 double vnu() const { return theVnu; }
159
163 double ve() const { return theVe; }
164
168 double vu() const { return theVu; }
169
173 double vd() const { return theVd; }
174
178 double anu() const { return theAnu; }
179
183 double ae() const { return theAe; }
184
188 double au() const { return theAu; }
189
193 double ad() const { return theAd; }
194
198 tCKMPtr CKM() const { return theCKM; }
199
205 double CKM(unsigned int uf, unsigned int df) const;
206
211 double CKM(const ParticleData & uType,
212 const ParticleData & dType) const;
214
215public:
216
222 unsigned int Nc() const { return theNc; }
223
227 unsigned int Nf(Energy2 scale) const {
228 return theRunningAlphaS->Nf(scale);
229 }
230
234 double alphaS() const { return theAlphaS; }
235
239 double alphaS(Energy2 scale) const {
240 return theRunningAlphaS->value(scale, *this);
241 }
242
247 return theRunningAlphaS;
248 }
249
253 Energy LambdaQCD(unsigned int nflav) const {
254 return theRunningAlphaS->LambdaQCD(nflav);
255 }
256
260 Energy LambdaQCD(Energy2 scale) const { return LambdaQCD(Nf(scale)); }
262
263public:
264
265
273
279 void persistentInput(PersistentIStream & is, int version);
281
285 static void Init();
286
290 virtual bool preInitialize() const {
291 return true;
292 }
293
294protected:
295
302 virtual IBPtr clone() const;
303
308 virtual IBPtr fullclone() const;
310
311
312protected:
313
316
322 virtual void doinit();
324
325private:
326
330 unsigned int theFamilies;
331
336
341
347
352
357
361 double theEnu;
362
366 double theEe;
367
371 double theEu;
372
376 double theEd;
377
381 double theVnu;
382
386 double theVe;
387
391 double theVu;
392
396 double theVd;
397
401 double theAnu;
402
406 double theAe;
407
411 double theAu;
412
416 double theAd;
417
423
429
433 mutable vector< vector<double> > theCKM2Matrix;
434
438 unsigned int theNc;
439
443 double theAlphaS;
444
450
455
460
461private:
462
467
472
473};
474
479template <>
482 typedef Interfaced NthBase;
483};
484
487template <>
488struct ClassTraits<StandardModelBase>:
489 public ClassTraitsBase<StandardModelBase> {
491 static string className() { return "ThePEG::StandardModelBase"; }
492};
493
496}
497
498#endif /* ThePEG_StandardModelBase_H */
This is the main config header file for ThePEG.
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
The Interfaced class is derived from the InterfacedBase class adding a couple of things particular to...
Definition: Interfaced.h:38
ParticleData inherits from InterfacedBase and represents the properties of a particle type.
Definition: ParticleData.h:36
PersistentIStream is used to read persistent objects from a stream where they were previously written...
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
Definition: RCPtr.h:519
StandardModelBase is used to handle standard model parameters in an EventGenerator.
static void Init()
Standard Init function used to initialize the interface.
double sin2ThetaW() const
Return .
long recalculateEW
If true, the electro-weak couplings are derived from in the initialization.
double ae() const
The axial charged lepton- coupling.
double alphaEM() const
Constant .
StandardModelBase & operator=(const StandardModelBase &)=delete
Private and non-existent assignment operator.
double vnu() const
The vector neutrino- coupling.
double theAlphaS
The fixed strong coupling.
double theVe
Vector coupling between a fundamental fermion and Z^0.
unsigned int ewScheme() const
Return the electroweak scheme used.
tCKMPtr CKM() const
Return a pointer to the CKMBase object used.
Ptr< AlphaSBase >::transient_pointer tASPtr
Declare a transient pointer to an AlphaSBase object.
unsigned int theElectroWeakScheme
Electroweak scheme.
double ve() const
The vector charged lepton- coupling.
virtual bool preInitialize() const
Overloaded function from Interfaced.
double theAnu
Axial coupling between a fundamental fermions and Z^0.
double enu() const
The neutrino-photon coupling.
void ewScheme(unsigned int s)
Set the electroweak scheme used.
unsigned int Nf(Energy2 scale) const
Return the number of avtive quark flavours for a given scale.
unsigned int theNc
The number of colours;.
double alphaEMME(Energy2 scale) const
The electromagnetic coupling for vertex classes in a well defined self-consistent EW scheme if reques...
double theEnu
Coupling between a fundamental fermion and the photon.
StandardModelBase()
Default constructor.
Energy LambdaQCD(unsigned int nflav) const
Return the for nflav active flavours.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
double CKM(unsigned int uf, unsigned int df) const
Return a square of the element of the Cabibbo-Kobayashi-Maskawa Matrix.
unsigned int families() const
Return the number of families assumed in the standard model.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
double theVu
Vector coupling between a fundamental fermion and Z^0.
double theEd
Coupling between a fundamental fermion and the photon.
double ed() const
The down-type-photon coupling.
double alphaS(Energy2 scale) const
Return the running strong coupling for a given scale.
double ee() const
The charged lepton-photon coupling.
double theVnu
Vector coupling between a fundamental fermion and Z^0.
double vu() const
The vector up-type- coupling.
Energy LambdaQCD(Energy2 scale) const
Return the for the given scale.
double theAu
Axial coupling between a fundamental fermions and Z^0.
Ptr< AlphaEMBase >::transient_pointer tAEMPtr
Declare a transient pointer to an AlphaEMBase object.
double CKM(const ParticleData &uType, const ParticleData &dType) const
Return the square of the elements of the Cabibbo-Kobayashi-Maskawa Matrix.
vector< vector< double > > theCKM2Matrix
The matrix of squared CKM elements set from theCKM at initialization.
unsigned int theFamilies
The number of families.
Ptr< AlphaSBase >::pointer ASPtr
Declare a pointer to an AlphaSBase object.
double theAe
Axial coupling between a fundamental fermions and Z^0.
InvEnergy2 theGF
The Fermi contants .
Ptr< CKMBase >::pointer CKMPtr
Declare a pointer to n CKMBase object.
InvEnergy2 fermiConstant() const
The Fermi constant.
double alphaEMMZ() const
Constant .
unsigned int Nc() const
Return the number of colours.
virtual ~StandardModelBase()
Destructor.
double theAlphaEMMZ
The constant .
virtual IBPtr clone() const
Make a simple clone of this object.
Ptr< CKMBase >::transient_pointer tCKMPtr
Declare a transient pointer to a CKMBase object.
tAEMPtr alphaEMPtr() const
Return a pointer to the object handling .
double theAlphaEM
The constant .
double alphaEM(Energy2 scale) const
Running .
double theAd
Axial coupling between a fundamental fermions and Z^0.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
double au() const
The axial up-type- coupling.
tASPtr alphaSPtr() const
Return a pointer to the object handling .
double alphaS() const
Return the constant strong coupling constant.
Ptr< AlphaEMBase >::pointer AEMPtr
Declare a pointer to an AlphaEMBase object.
double theEe
Coupling between a fundamental fermion and the photon.
ASPtr theRunningAlphaS
Pointer to an object capable of calculating the running .
double anu() const
The axial neutrino- coupling.
unsigned int theBosonWidthOption
Option for the calculation of the W/Z widths.
double vd() const
The vector down-type- coupling.
CKMPtr theCKM
A pointer to an object representing the Cabibbo-Kobayashi-Maskawa matrix.
double eu() const
The up-type-photon coupling.
AEMPtr theRunningAlphaEM
Pointer to an object capable of calculating the running .
double ad() const
The axial down-type- coupling.
double theVd
Vector coupling between a fundamental fermion and Z^0.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
static ClassDescription< StandardModelBase > initStandardModelBase
Describe a concrete class with persistent data.
double theEu
Coupling between a fundamental fermion and the photon.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition: ClassTraits.h:161
static string className()
Return the name of class T.
Definition: ClassTraits.h:66
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30