00001 // -*- C++ -*- 00002 // 00003 // MEee2gZ2qq.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_MEee2gZ2qq_H 00010 #define ThePEG_MEee2gZ2qq_H 00011 // This is the declaration of the MEee2gZ2qq class. 00012 00013 #include "ThePEG/MatrixElement/ME2to2QCD.h" 00014 00015 namespace ThePEG { 00016 00029 class MEee2gZ2qq: public ME2to2QCD { 00030 00031 public: 00032 00038 MEee2gZ2qq(); 00040 00041 public: 00042 00049 virtual unsigned int orderInAlphaS() const; 00050 00055 virtual unsigned int orderInAlphaEW() const; 00056 00064 virtual double me2() const; 00065 00069 virtual void getDiagrams() const; 00070 00078 virtual Selector<const ColourLines *> 00079 colourGeometries(tcDiagPtr diag) const; 00080 00089 virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const; 00090 00094 virtual Energy2 scale() const; 00096 00097 public: 00098 00105 void persistentOutput(PersistentOStream & os) const; 00106 00112 void persistentInput(PersistentIStream & is, int version); 00114 00118 static void Init(); 00119 00120 protected: 00121 00128 virtual IBPtr clone() const; 00129 00134 virtual IBPtr fullclone() const; 00136 00144 virtual void doinit(); 00146 00147 protected: 00148 00153 vector<double> coefs; 00154 00158 Energy2 mZ2; 00159 00163 Energy2 GZ2; 00164 00168 mutable double lastCont; 00169 00173 mutable double lastBW; 00174 00175 private: 00176 00180 static ClassDescription<MEee2gZ2qq> initMEee2gZ2qq; 00181 00185 MEee2gZ2qq & operator=(const MEee2gZ2qq &); 00186 00187 }; 00188 00193 template <> 00194 struct BaseClassTrait<MEee2gZ2qq,1>: public ClassTraitsType { 00196 typedef ME2to2QCD NthBase; 00197 }; 00198 00201 template <> 00202 struct ClassTraits<MEee2gZ2qq>: public ClassTraitsBase<MEee2gZ2qq> { 00204 static string className() { return "ThePEG::MEee2gZ2qq"; } 00208 static string library() { return "MEee2gZ2qq.so"; } 00209 }; 00210 00213 } 00214 00215 #endif /* ThePEG_MEee2gZ2qq_H */