thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
RunningCoupling.h
1 // -*- C++ -*-
2 //
3 // RunningCoupling.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 1999-2019 Leif Lonnblad, (C) 2009 Simon Platzer
5 //
6 // ThePEG 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 ThePEG_RunningCoupling_H
10 #define ThePEG_RunningCoupling_H
11 // This is the declaration of the RunningCoupling class.
12 
13 #include "ThePEG/Interface/Interfaced.h"
14 #include "ThePEG/Repository/EventGenerator.h"
15 #include "StandardModelBase.fh"
16 
17 namespace ThePEG {
18 
27 class RunningCoupling: public Interfaced {
28 
29 public:
30 
35 
38 
43  virtual double value (Energy2 scale, const StandardModelBase & sm) const = 0;
44 
50  virtual unsigned int nloops () const { return 0; }
51 
53 
58  double value(Energy2 scale) const {
59  return value(scale,*(generator()->standardModel()));
60  }
61 
68  virtual double overestimateValue (Energy2 scale) const {
69  return value(scale);
70  }
71 
78  virtual double ratioToOverestimate (Energy2) const {
79  return 1.;
80  }
81 
86  double scaleFactor () const { return theScaleFactor; }
87 
88 public:
89 
96  void persistentOutput(PersistentOStream & os) const;
97 
103  void persistentInput(PersistentIStream & is, int version);
105 
109  static void Init();
110 
111 private:
112 
117 
121  RunningCoupling & operator=(const RunningCoupling &) = delete;
122 
128 
129 };
130 
135 template <>
138  typedef Interfaced NthBase;
139 };
140 
143 template <>
144 struct ClassTraits<RunningCoupling>: public ClassTraitsBase<RunningCoupling> {
146  static string className() { return "ThePEG::RunningCoupling"; }
147 };
148 
151 }
152 
153 #endif /* ThePEG_RunningCoupling_H */
PersistentIStream is used to read persistent objects from a stream where they were previously written...
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
StandardModelBase is used to handle standard model parameters in an EventGenerator.
virtual double value(Energy2 scale, const StandardModelBase &sm) const =0
Return the value of the coupling at a given scale using the given standard model object, sm.
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
static void Init()
Standard Init function used to initialize the interface.
A concreate implementation of ClassDescriptionBase describing an abstract class with persistent data...
RunningCoupling & operator=(const RunningCoupling &)=delete
Private and non-existent assignment operator.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
double value(Energy2 scale) const
Return the value of the coupling at a given scale using the StandardModelBase object used by the Even...
double theScaleFactor
The scale factor used to rescale the argument of the running coupling.
virtual double overestimateValue(Energy2 scale) const
Return an overestimate to the running coupling at the given scale.
static AbstractClassDescription< RunningCoupling > initRunningCoupling
Describe an abstract class without persistent data.
tEGPtr generator() const
Return a pointer to the EventGenerator controlling the run.
Definition: Interfaced.h:99
double scaleFactor() const
Return the scale factor, which may be used to globally rescale the argument of the running coupling...
virtual double ratioToOverestimate(Energy2) const
Return the ratio of the exact to the overestimated value of the running coupling. ...
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual unsigned int nloops() const
Return the number of loops contributing to the running this coupling.
The Interfaced class is derived from the InterfacedBase class adding a couple of things particular to...
Definition: Interfaced.h:38
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
RunningCoupling an abstract base class unifying the treatment of running couplings in ThePEG...
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
RunningCoupling()
The default constructor.
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52