thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
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 
15 namespace ThePEG {
16 
28 class AlphaSBase: public RunningCoupling {
29 
30 public:
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 
79 public:
80 
87  void persistentOutput(PersistentOStream & os) const;
88 
94  void persistentInput(PersistentIStream & is, int version);
96 
100  static void Init();
101 
102 protected:
103 
106 
112  virtual void doinit();
113 
115 
116 private:
117 
123  vector<Energy> theQuarkMasses;
124 
129  vector<Energy2> theFlavourThresholds;
130 
136  vector<Energy> theLambdaQCDs;
137 
138 private:
139 
144 
148  AlphaSBase & operator=(const AlphaSBase &) = delete;
149 
150 };
151 
156 template <>
157 struct BaseClassTrait<AlphaSBase,1>: public ClassTraitsType {
159  typedef RunningCoupling NthBase;
160 };
161 
164 template <>
165 struct ClassTraits<AlphaSBase>: public ClassTraitsBase<AlphaSBase> {
167  static string className() { return "ThePEG::AlphaSBase"; }
168 };
169 
172 }
173 
174 #endif /* ThePEG_AlphaSBase_H */
unsigned int Nf(Energy2 scale) const
Return the number of avtive quark flavours.
Definition: AlphaSBase.h:54
PersistentIStream is used to read persistent objects from a stream where they were previously written...
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
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30
static void Init()
Standard Init function used to initialize the interface.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
A concreate implementation of ClassDescriptionBase describing an abstract class with persistent data...
Energy LambdaQCD(Energy2 scale) const
Return the used for corresponding given scale.
Definition: AlphaSBase.h:69
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
AlphaSBase is an abstract base class used by the StandardModelBase to implement the QCD coupling...
Definition: AlphaSBase.h:28
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
vector< Energy > theLambdaQCDs
The values of corresponding to theFlavourThresholds, set from the virtual functions in the initializ...
Definition: AlphaSBase.h:136
virtual vector< Energy2 > flavourThresholds() const =0
Return the flavour thresholds used.
static AbstractClassDescription< AlphaSBase > initAlphaSBase
Describe an abstract class with persistent data.
Definition: AlphaSBase.h:143
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
AlphaSBase & operator=(const AlphaSBase &)=delete
Private and non-existent assignment operator.
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
RunningCoupling an abstract base class unifying the treatment of running couplings in ThePEG...
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Energy LambdaQCD(unsigned int nflav) const
Return the used for nflav active flavours.
Definition: AlphaSBase.h:64
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52