ThePEG  1.8.0
O1AlphaS.h
1 // -*- C++ -*-
2 //
3 // O1AlphaS.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_O1AlphaS_H
10 #define ThePEG_O1AlphaS_H
11 // This is the declaration of the O1AlphaS class.
12 
13 #include "AlphaSBase.h"
14 
15 namespace ThePEG {
16 
27 class O1AlphaS: public AlphaSBase {
28 
29 public:
30 
37  : theLambdaQCD(0.25*GeV), theLambdaFlavour(4),
38  theMaxFlav(6), Q0(ZERO) {}
40 
41 public:
42 
49  virtual double value(Energy2 scale, const StandardModelBase &) const;
50 
55  virtual unsigned int nloops () const { return 1; }
56 
62  virtual vector<Energy2> flavourThresholds() const;
63 
68  virtual vector<Energy> LambdaQCDs() const;
70 
74  int getMaxFlav() const { return theMaxFlav; }
75 
76 public:
77 
84  void persistentOutput(PersistentOStream & os) const;
85 
91  void persistentInput(PersistentIStream & is, int version);
93 
97  static void Init();
98 
99 protected:
100 
107  virtual IBPtr clone() const;
108 
113  virtual IBPtr fullclone() const;
115 
116 
117 private:
118 
126 
131 
136 
141 
142 private:
143 
148 
152  O1AlphaS & operator=(const O1AlphaS &);
153 
154 };
155 
160 template <>
161 struct BaseClassTrait<O1AlphaS,1>: public ClassTraitsType {
163  typedef AlphaSBase NthBase;
164 };
165 
169 template <>
170 struct ClassTraits<O1AlphaS>: public ClassTraitsBase<O1AlphaS> {
172  static string className() { return "ThePEG::O1AlphaS"; }
176  static string library() { return "O1AlphaS.so"; }
177 };
178 
181 }
182 
183 #endif /* ThePEG_O1AlphaS_H */