ThePEG  1.8.0
AlphaSBase.h
1 // -*- C++ -*-
2 //
3 // AlphaSBase.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_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 
72 public:
73 
80  void persistentOutput(PersistentOStream & os) const;
81 
87  void persistentInput(PersistentIStream & is, int version);
89 
93  static void Init();
94 
95 protected:
96 
99 
105  virtual void doinit();
106 
108 
109 private:
110 
115  vector<Energy2> theFlavourThresholds;
116 
122  vector<Energy> theLambdaQCDs;
123 
124 private:
125 
130 
134  AlphaSBase & operator=(const AlphaSBase &);
135 
136 };
137 
142 template <>
143 struct BaseClassTrait<AlphaSBase,1>: public ClassTraitsType {
145  typedef RunningCoupling NthBase;
146 };
147 
150 template <>
151 struct ClassTraits<AlphaSBase>: public ClassTraitsBase<AlphaSBase> {
153  static string className() { return "ThePEG::AlphaSBase"; }
154 };
155 
158 }
159 
160 #endif /* ThePEG_AlphaSBase_H */
PersistentIStream is used to read persistent objects from a stream where they were previously written...
Energy LambdaQCD(unsigned int nflav) const
Return the used for nflav active flavours.
Definition: AlphaSBase.h:64
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30
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.
unsigned int Nf(Energy2 scale) const
Return the number of avtive quark flavours.
Definition: AlphaSBase.h:54
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...
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 & operator=(const AlphaSBase &)
Private and non-existent assignment operator.
AlphaSBase is an abstract base class used by the StandardModelBase to implement the QCD coupling...
Definition: AlphaSBase.h:28
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
vector< Energy > theLambdaQCDs
The values of corresponding to theFlavourThresholds, set from the virtual functions in the initializ...
Definition: AlphaSBase.h:122
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:129
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:115
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
RunningCoupling an abstract base class unifying the treatment of running couplings in ThePEG...
This template class allows the compiler to check calculations with physical quantities for dimensiona...
Definition: PhysicalQty.h:81
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.
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52