|
|
|||
File indexing completed on 2026-08-06 09:24:18
0001 // -*- C++ -*- 0002 // 0003 // O2AlphaS.h is a part of Herwig - A multi-purpose Monte Carlo event generator 0004 // Copyright (C) 2002-2019 The Herwig Collaboration 0005 // 0006 // Herwig is licenced under version 3 of the GPL, see COPYING for details. 0007 // Please respect the MCnet academic guidelines, see GUIDELINES for details. 0008 // 0009 #ifndef HERWIG_O2AlphaS_H 0010 #define HERWIG_O2AlphaS_H 0011 // 0012 // This is the declaration of the O2AlphaS class. 0013 // 0014 0015 #include "ThePEG/StandardModel/AlphaSBase.h" 0016 0017 namespace Herwig { 0018 0019 using namespace ThePEG; 0020 0021 /** 0022 * The O2AlphaS class is the implementation of the two-loop 0023 * \f$\alpha_S\f$ in the same way as in FORTRAN HERWIG. 0024 * 0025 * The input value of \f$\Lambda_{\rm QCD}\f$ is in the \f$\bar{MS}\f$ 0026 * scheme and can either be converted to a Monte Carlo scheme, as in the 0027 * FORTRAN program, or left in the \f$\bar{MS}\f$ scheme to evaluate 0028 * the running coupling 0029 * 0030 * @see \ref O2AlphaSInterfaces "The interfaces" 0031 * defined for O2AlphaS. 0032 */ 0033 class O2AlphaS: public AlphaSBase { 0034 0035 public: 0036 0037 /** 0038 * The default constructor. 0039 */ 0040 O2AlphaS() : _lambdaQCD(180.*MeV), _bcoeff(6,0.0), _ccoeff(6,0.0), 0041 _lambdas(7), _threshold(6), _match(6,0.0), _copt(0) {} 0042 0043 /** @name Virtual functions to override those in the base class */ 0044 //@{ 0045 /** 0046 * The \f$\alpha_S\f$. Return the QCD coupling for a given \a scale 0047 * using the given standard model object \a sm. 0048 */ 0049 virtual double value(Energy2 scale, const StandardModelBase & sm) const; 0050 0051 /** 0052 * Return the flavour thresholds used. The returned vector contains 0053 * (in position <code>i</code>) the scales when the active number of 0054 * flavours changes from <code>i</code> to <code>i+1</code>. 0055 */ 0056 virtual vector<Energy2> flavourThresholds() const; 0057 0058 /** 0059 * Return the \f$\Lambda_{QCD}\f$ used for different numbers of 0060 * active flavours. 0061 */ 0062 virtual vector<Energy> LambdaQCDs() const; 0063 //@} 0064 0065 public: 0066 0067 /** @name Functions used by the persistent I/O system. */ 0068 //@{ 0069 /** 0070 * Function used to write out object persistently. 0071 * @param os the persistent output stream written to. 0072 */ 0073 void persistentOutput(PersistentOStream & os) const; 0074 0075 /** 0076 * Function used to read in object persistently. 0077 * @param is the persistent input stream read from. 0078 * @param version the version number of the object when written. 0079 */ 0080 void persistentInput(PersistentIStream & is, int version); 0081 //@} 0082 0083 /** 0084 * The standard Init function used to initialize the interfaces. 0085 * Called exactly once for each class by the class description system 0086 * before the main function starts or 0087 * when this class is dynamically loaded. 0088 */ 0089 static void Init(); 0090 0091 protected: 0092 0093 /** @name Clone Methods. */ 0094 //@{ 0095 /** 0096 * Make a simple clone of this object. 0097 * @return a pointer to the new object. 0098 */ 0099 virtual IBPtr clone() const {return new_ptr(*this);} 0100 0101 /** Make a clone of this object, possibly modifying the cloned object 0102 * to make it sane. 0103 * @return a pointer to the new object. 0104 */ 0105 virtual IBPtr fullclone() const {return new_ptr(*this);} 0106 //@} 0107 0108 0109 protected: 0110 0111 /** @name Standard Interfaced functions. */ 0112 //@{ 0113 /** 0114 * Initialize this object after the setup phase before saving an 0115 * EventGenerator to disk. 0116 * @throws InitException if object could not be initialized properly. 0117 */ 0118 virtual void doinit(); 0119 //@} 0120 0121 0122 private: 0123 0124 /** 0125 * The assignment operator is private and must never be called. 0126 * In fact, it should not even be implemented. 0127 */ 0128 O2AlphaS & operator=(const O2AlphaS &) = delete; 0129 0130 private: 0131 0132 /** 0133 * The value of \f$\Lambda_{\rm QCD}\f$ 5-flavours 0134 * in the \f$\bar{\rm MS}\f$ scheme 0135 */ 0136 Energy _lambdaQCD; 0137 0138 /** 0139 * The values of the leading-order \f$\beta\f$-function coefficients 0140 */ 0141 vector<double> _bcoeff; 0142 0143 /** 0144 * The values of the next-to-leading-order \f$\beta\f$-function coefficients 0145 */ 0146 vector<double> _ccoeff; 0147 0148 /** 0149 * The values of \f$\Lambda_{\rm QCD}\f$ for the diffferent number of flavours 0150 */ 0151 vector<Energy> _lambdas; 0152 0153 /** 0154 * The flavour thresholds 0155 */ 0156 vector<Energy> _threshold; 0157 0158 /** 0159 * The constants for matching 0160 */ 0161 vector<double> _match; 0162 /** 0163 * Option for the coupling 0164 */ 0165 unsigned int _copt; 0166 }; 0167 0168 } 0169 0170 #endif /* HERWIG_O2AlphaS_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|