|
|
|||
File indexing completed on 2026-08-06 09:24:23
0001 // -*- C++ -*- 0002 0003 // couplings/lo_alpha_s.h is part of matchbox 0004 // (C) 2008 Simon Platzer -- sp@particle.uni-karlsruhe.de 0005 0006 #ifndef matchbox_couplings_lo_alpha_s_h 0007 #define matchbox_couplings_lo_alpha_s_h 0008 0009 #include "alpha_s.h" 0010 0011 namespace matchbox { 0012 0013 using namespace ThePEG; 0014 0015 /** 0016 * LO running alpha_s 0017 * 0018 * @see \ref lo_alpha_sInterfaces "The interfaces" 0019 * defined for lo_alpha_s. 0020 */ 0021 class lo_alpha_s 0022 : public alpha_s { 0023 0024 public: 0025 0026 /** 0027 * The default constructor. 0028 */ 0029 lo_alpha_s(); 0030 0031 public: 0032 0033 /// return alpha_s as function of scale, QCD scale 0034 /// and number of active flavours 0035 virtual double operator () (Energy2 scale, 0036 Energy2 lambda2, 0037 unsigned int nf) const; 0038 0039 /// return the number of loops which determine this running 0040 virtual unsigned int nloops () const { return 1; } 0041 0042 public: 0043 0044 /** @name Functions used by the persistent I/O system. */ 0045 //@{ 0046 /** 0047 * Function used to write out object persistently. 0048 * @name os the persistent output stream written to. 0049 */ 0050 void persistentOutput(PersistentOStream & os) const; 0051 0052 /** 0053 * Function used to read in object persistently. 0054 * @name is the persistent input stream read from. 0055 * @name version the version number of the object when written. 0056 */ 0057 void persistentInput(PersistentIStream & is, int version); 0058 //@} 0059 0060 /** 0061 * The standard Init function used to initialize the interfaces. 0062 * Called exactly once for each class by the class description system 0063 * before the main function starts or 0064 * when this class is dynamically loaded. 0065 */ 0066 static void Init(); 0067 0068 protected: 0069 0070 /** @name Standard Interfaced functions. */ 0071 //@{ 0072 0073 /** 0074 * Initialize this object after the setup phase before saving an 0075 * EventGenerator to disk. 0076 * @throws InitException if object could not be initialized properly. 0077 */ 0078 virtual inline void doinit() { 0079 freezing_scale_ *= scale_factor(); 0080 alpha_s::doinit(); 0081 } 0082 0083 //@} 0084 0085 protected: 0086 0087 /** @name Clone Methods. */ 0088 //@{ 0089 /** 0090 * Make a simple clone of this object. 0091 * @return a pointer to the new object. 0092 */ 0093 virtual IBPtr clone() const; 0094 0095 /** Make a clone of this object, possibly modifying the cloned object 0096 * to make it sane. 0097 * @return a pointer to the new object. 0098 */ 0099 virtual IBPtr fullclone() const; 0100 //@} 0101 0102 private: 0103 0104 /** 0105 * The static object used to initialize the description of this class. 0106 * Indicates that this is an abstract class with persistent data. 0107 */ 0108 static ClassDescription<lo_alpha_s> initlo_alpha_s; 0109 0110 /** 0111 * The assignment operator is private and must never be called. 0112 * In fact, it should not even be implemented. 0113 */ 0114 lo_alpha_s & operator=(const lo_alpha_s &) = delete; 0115 0116 private: 0117 0118 Energy freezing_scale_; 0119 0120 }; 0121 0122 } 0123 0124 #include "ThePEG/Utilities/ClassTraits.h" 0125 0126 namespace ThePEG { 0127 0128 /** @cond TRAITSPECIALIZATIONS */ 0129 0130 /** This template specialization informs ThePEG about the 0131 * base classes of lo_alpha_s. */ 0132 template <> 0133 struct BaseClassTrait<matchbox::lo_alpha_s,1> { 0134 /** Typedef of the first base class of lo_alpha_s. */ 0135 typedef matchbox::alpha_s NthBase; 0136 }; 0137 0138 /** This template specialization informs ThePEG about the name of 0139 * the lo_alpha_s class and the shared object where it is defined. */ 0140 template <> 0141 struct ClassTraits<matchbox::lo_alpha_s> 0142 : public ClassTraitsBase<matchbox::lo_alpha_s> { 0143 /** Return a platform-independent class name */ 0144 static string className() { return "matchbox::lo_alpha_s"; } 0145 /** 0146 * The name of a file containing the dynamic library where the class 0147 * lo_alpha_s is implemented. It may also include several, space-separated, 0148 * libraries if the class lo_alpha_s depends on other classes (base classes 0149 * excepted). In this case the listed libraries will be dynamically 0150 * linked in the order they are specified. 0151 */ 0152 static string library() { return "HwDipoleShowerAlphaS.so"; } 0153 }; 0154 0155 /** @endcond */ 0156 0157 } 0158 0159 #endif /* matchbox_couplings_lo_alpha_s_h */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|