00001 // -*- C++ -*- 00002 // 00003 // MENCDIS.h is a part of ThePEG - Toolkit for HEP Event Generation 00004 // Copyright (C) 1999-2007 Leif Lonnblad 00005 // 00006 // ThePEG is licenced under version 2 of the GPL, see COPYING for details. 00007 // Please respect the MCnet academic guidelines, see GUIDELINES for details. 00008 // 00009 #ifndef ThePEG_MENCDIS_H 00010 #define ThePEG_MENCDIS_H 00011 // This is the declaration of the MENCDIS class. 00012 00013 #include "ThePEG/MatrixElement/ME2to2QCD.h" 00014 // #include "MENCDIS.fh" 00015 // #include "MENCDIS.xh" 00016 00017 namespace ThePEG { 00018 00030 class MENCDIS: public ME2to2QCD { 00031 00032 public: 00033 00039 MENCDIS(); 00040 00044 MENCDIS(const MENCDIS &); 00045 00049 virtual ~MENCDIS(); 00051 00052 public: 00053 00060 virtual unsigned int orderInAlphaS() const; 00061 00066 virtual unsigned int orderInAlphaEW() const; 00067 00075 virtual double me2() const; 00076 00080 virtual void getDiagrams() const; 00081 00089 virtual Selector<const ColourLines *> 00090 colourGeometries(tcDiagPtr diag) const; 00091 00100 virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const; 00101 00105 virtual Energy2 scale() const; 00107 00108 public: 00109 00116 void persistentOutput(PersistentOStream & os) const; 00117 00123 void persistentInput(PersistentIStream & is, int version); 00125 00129 static void Init(); 00130 00131 protected: 00132 00139 virtual IBPtr clone() const; 00140 00145 virtual IBPtr fullclone() const; 00147 00155 virtual void doinit(); 00157 00158 protected: 00159 00163 Energy2 mZ2; 00164 00168 mutable double lastG; 00169 00173 mutable double lastZ; 00174 00175 private: 00176 00180 static ClassDescription<MENCDIS> initMENCDIS; 00181 00185 MENCDIS & operator=(const MENCDIS &); 00186 00187 }; 00188 00193 template <> 00194 struct BaseClassTrait<MENCDIS,1>: public ClassTraitsType { 00196 typedef ME2to2QCD NthBase; 00197 }; 00198 00201 template <> 00202 struct ClassTraits<MENCDIS>: public ClassTraitsBase<MENCDIS> { 00204 static string className() { return "ThePEG::MENCDIS"; } 00208 static string library() { return "MENCDIS.so"; } 00209 }; 00210 00213 } 00214 00215 #endif /* ThePEG_MENCDIS_H */