thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
AlphaSBase.h
1// -*- C++ -*-
2//
3// AlphaSBase.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_AlphaSBase_H
10#define ThePEG_AlphaSBase_H
11// This is the declaration of the AlphaSBase class.
12
13#include "RunningCoupling.h"
14
15namespace ThePEG {
16
29
30public:
31
39 virtual vector<Energy2> flavourThresholds() const = 0;
40
45 virtual vector<Energy> LambdaQCDs() const = 0;
47
54 unsigned int Nf(Energy2 scale) const {
55 unsigned int i = 0;
56 while ( i < theFlavourThresholds.size() &&
57 theFlavourThresholds[i] < scale ) ++i;
58 return i;
59 }
60
64 Energy LambdaQCD(unsigned int nflav) const { return theLambdaQCDs[nflav]; }
65
69 Energy LambdaQCD(Energy2 scale) const { return theLambdaQCDs[Nf(scale)]; }
71
77 const vector<Energy>& quarkMasses() const { return theQuarkMasses; }
78
79public:
80
88
94 void persistentInput(PersistentIStream & is, int version);
96
100 static void Init();
101
102protected:
103
106
112 virtual void doinit();
113
115
116private:
117
123 vector<Energy> theQuarkMasses;
124
129 vector<Energy2> theFlavourThresholds;
130
136 vector<Energy> theLambdaQCDs;
137
138private:
139
144
148 AlphaSBase & operator=(const AlphaSBase &) = delete;
149
150};
151
156template <>
157struct BaseClassTrait<AlphaSBase,1>: public ClassTraitsType {
159 typedef RunningCoupling NthBase;
160};
161
164template <>
165struct ClassTraits<AlphaSBase>: public ClassTraitsBase<AlphaSBase> {
167 static string className() { return "ThePEG::AlphaSBase"; }
168};
169
172}
173
174#endif /* ThePEG_AlphaSBase_H */
A concreate implementation of ClassDescriptionBase describing an abstract class with persistent data.
AlphaSBase is an abstract base class used by the StandardModelBase to implement the QCD coupling,...
Definition: AlphaSBase.h:28
const vector< Energy > & quarkMasses() const
Return the quark masses to be used; if not empty these masses should be considered instead of the one...
Definition: AlphaSBase.h:77
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
AlphaSBase & operator=(const AlphaSBase &)=delete
Private and non-existent assignment operator.
vector< Energy > theQuarkMasses
The quark masses to be used; if not empty these masses should be considered instead of the ones set i...
Definition: AlphaSBase.h:123
unsigned int Nf(Energy2 scale) const
Return the number of avtive quark flavours.
Definition: AlphaSBase.h:54
Energy LambdaQCD(Energy2 scale) const
Return the used for corresponding given scale.
Definition: AlphaSBase.h:69
static void Init()
Standard Init function used to initialize the interface.
Energy LambdaQCD(unsigned int nflav) const
Return the used for nflav active flavours.
Definition: AlphaSBase.h:64
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
vector< Energy > theLambdaQCDs
The values of corresponding to theFlavourThresholds, set from the virtual functions in the initializ...
Definition: AlphaSBase.h:136
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
static AbstractClassDescription< AlphaSBase > initAlphaSBase
Describe an abstract class with persistent data.
Definition: AlphaSBase.h:143
virtual vector< Energy2 > flavourThresholds() const =0
Return the flavour thresholds used.
virtual vector< Energy > LambdaQCDs() const =0
Return the used for different numbers of active flavours.
vector< Energy2 > theFlavourThresholds
Flavour thresholds, set from the virtual functions in the initialization.
Definition: AlphaSBase.h:129
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...
RunningCoupling an abstract base class unifying the treatment of running couplings in ThePEG.
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