Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:38:31

0001 // -*- C++ -*-
0002 //
0003 // AlphaEMBase.h is a part of ThePEG - Toolkit for HEP Event Generation
0004 // Copyright (C) 1999-2019 Leif Lonnblad
0005 //
0006 // ThePEG 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 ThePEG_AlphaEMBase_H
0010 #define ThePEG_AlphaEMBase_H
0011 // This is the declaration of the AlphaEMBase class.
0012 
0013 #include "RunningCoupling.h"
0014 
0015 namespace ThePEG {
0016 
0017 /**
0018  * AlphaEMBase an abstract base class used by the StandardModelBase
0019  * class to implement the electro-magnetic coupling. Concrete
0020  * sub-classes must implement the value(Energy2, const
0021  * StandardModelBase &) function.
0022  *
0023  * @see \ref AlphaEMBaseInterfaces "The interfaces"
0024  * defined for AlphaEMBase.
0025  * @see StandardModelBase
0026  */
0027 class AlphaEMBase: public RunningCoupling {
0028 
0029 public:
0030 
0031   /**
0032    * Standard Init function used to initialize the interface.
0033    */
0034   static void Init();
0035 
0036 private:
0037 
0038   /**
0039    * Describe an abstract class without persistent data.
0040    */
0041   static AbstractNoPIOClassDescription<AlphaEMBase> initAlphaEMBase;
0042 
0043   /**
0044    *  Private and non-existent assignment operator.
0045    */
0046   AlphaEMBase & operator=(const AlphaEMBase &) = delete;
0047 
0048 };
0049 
0050 /** @cond TRAITSPECIALIZATIONS */
0051 
0052 /** This template specialization informs ThePEG about the base classes
0053  *  of AlphaEMBase. */
0054 template <>
0055 struct BaseClassTrait<AlphaEMBase,1>: public ClassTraitsType {
0056   /** Typedef of the first base class of AlphaEMBase. */
0057   typedef RunningCoupling NthBase;
0058 };
0059 
0060 /** This template specialization informs ThePEG about the name of the
0061  *  AlphaEMBase class. */
0062 template <>
0063 struct ClassTraits<AlphaEMBase>: public ClassTraitsBase<AlphaEMBase> {
0064   /** Return a platform-independent class name */
0065   static string className() { return "ThePEG::AlphaEMBase"; }
0066 };
0067 
0068 /** @endcond */
0069 
0070 }
0071 
0072 #endif /* ThePEG_AlphaEMBase_H */