herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
O2AlphaS.h
1 // -*- C++ -*-
2 //
3 // O2AlphaS.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2019 The Herwig Collaboration
5 //
6 // Herwig 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 HERWIG_O2AlphaS_H
10 #define HERWIG_O2AlphaS_H
11 //
12 // This is the declaration of the O2AlphaS class.
13 //
14 
15 #include "ThePEG/StandardModel/AlphaSBase.h"
16 
17 namespace Herwig {
18 
19 using namespace ThePEG;
20 
33 class O2AlphaS: public AlphaSBase {
34 
35 public:
36 
40  O2AlphaS() : _lambdaQCD(180.*MeV), _bcoeff(6,0.0), _ccoeff(6,0.0),
41  _lambdas(7), _threshold(6), _match(6,0.0), _copt(0) {}
42 
49  virtual double value(Energy2 scale, const StandardModelBase & sm) const;
50 
56  virtual vector<Energy2> flavourThresholds() const;
57 
62  virtual vector<Energy> LambdaQCDs() const;
64 
65 public:
66 
73  void persistentOutput(PersistentOStream & os) const;
74 
80  void persistentInput(PersistentIStream & is, int version);
82 
89  static void Init();
90 
91 protected:
92 
99  virtual IBPtr clone() const {return new_ptr(*this);}
100 
105  virtual IBPtr fullclone() const {return new_ptr(*this);}
107 
108 
109 protected:
110 
118  virtual void doinit();
120 
121 
122 private:
123 
128  O2AlphaS & operator=(const O2AlphaS &) = delete;
129 
130 private:
131 
136  Energy _lambdaQCD;
137 
141  vector<double> _bcoeff;
142 
146  vector<double> _ccoeff;
147 
151  vector<Energy> _lambdas;
152 
156  vector<Energy> _threshold;
157 
161  vector<double> _match;
165  unsigned int _copt;
166 };
167 
168 }
169 
170 #endif /* HERWIG_O2AlphaS_H */
virtual IBPtr clone() const
Make a simple clone of this object.
Definition: O2AlphaS.h:99
vector< double > _match
The constants for matching.
Definition: O2AlphaS.h:161
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
unsigned int _copt
Option for the coupling.
Definition: O2AlphaS.h:165
The O2AlphaS class is the implementation of the two-loop in the same way as in FORTRAN HERWIG...
Definition: O2AlphaS.h:33
vector< Energy > _threshold
The flavour thresholds.
Definition: O2AlphaS.h:156
vector< Energy > _lambdas
The values of for the diffferent number of flavours.
Definition: O2AlphaS.h:151
vector< double > _ccoeff
The values of the next-to-leading-order -function coefficients.
Definition: O2AlphaS.h:146
Energy _lambdaQCD
The value of 5-flavours in the scheme.
Definition: O2AlphaS.h:136
O2AlphaS()
The default constructor.
Definition: O2AlphaS.h:40
-*- C++ -*-
vector< double > _bcoeff
The values of the leading-order -function coefficients.
Definition: O2AlphaS.h:141
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition: O2AlphaS.h:105