herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
ShowerAlphaQED.h
1 // -*- C++ -*-
2 //
3 // ShowerAlphaQED.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_ShowerAlphaQED_H
10 #define HERWIG_ShowerAlphaQED_H
11 //
12 // This is the declaration of the ShowerAlphaQED class.
13 //
14 
15 #include "Herwig/Shower/ShowerAlpha.h"
16 
17 namespace Herwig {
18 
19 using namespace ThePEG;
20 
34 class ShowerAlphaQED: public ShowerAlpha {
35 
36 public:
37 
43  ShowerAlphaQED() : ShowerAlpha(), _alpha(1./137.), couplingSource_(1)
44  {}
46 
47 public:
48 
62  virtual double value(const Energy2 scale) const;
63 
68  virtual double overestimateValue() const;
69 
73  virtual double ratio(const Energy2 scale,double factor=1.) const;
75 
76 public:
77 
84  void persistentOutput(PersistentOStream & os) const;
85 
91  void persistentInput(PersistentIStream & is, int version);
93 
100  static void Init();
101 
102 protected:
103 
110  inline virtual IBPtr clone() const {return new_ptr(*this);}
111 
116  inline virtual IBPtr fullclone() const {return new_ptr(*this);}
118 
119 protected:
120 
126  virtual void doinit();
127 
128 private:
129 
135 
140  ShowerAlphaQED & operator=(const ShowerAlphaQED &) = delete;
141 
142 private:
143 
148  double _alpha;
149 
153  unsigned int couplingSource_;
154 };
155 
156 }
157 
158 #include "ThePEG/Utilities/ClassTraits.h"
159 
160 namespace ThePEG {
161 
166 template <>
167 struct BaseClassTrait<Herwig::ShowerAlphaQED,1> {
169  typedef Herwig::ShowerAlpha NthBase;
170 };
171 
174 template <>
175 struct ClassTraits<Herwig::ShowerAlphaQED>
176  : public ClassTraitsBase<Herwig::ShowerAlphaQED> {
178  static string className() { return "Herwig::ShowerAlphaQED"; }
186  static string library() { return "HwShower.so"; }
187 };
188 
191 }
192 
193 #endif /* HERWIG_ShowerAlphaQED_H */
ShowerAlphaQED()
The default constructor.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
double _alpha
The value of the coupling, as we are producing real photons this is always .
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
This concrete class provides the definition of the pure virtual function value(scale) for ...
virtual IBPtr clone() const
Make a simple clone of this object.
static ClassDescription< ShowerAlphaQED > initShowerAlphaQED
The static object used to initialize the description of this class.
This class is the abstract class from which all types of running couplings used in the Showering deri...
Definition: ShowerAlpha.h:49
-*- C++ -*-
unsigned int couplingSource_
Source of coupling value.