00001 // -*- C++ -*- 00002 // 00003 // MEGG2QQ.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_MEGG2QQ_H 00010 #define ThePEG_MEGG2QQ_H 00011 // This is the declaration of the MEGG2QQ class. 00012 00013 #include "ThePEG/MatrixElement/ME2to2QCD.h" 00014 00015 namespace ThePEG { 00016 00025 class MEGG2QQ: public ME2to2QCD { 00026 00027 public: 00028 00038 virtual double me2() const; 00039 00043 virtual void getDiagrams() const; 00044 00052 virtual Selector<const ColourLines *> 00053 colourGeometries(tcDiagPtr diag) const; 00054 00063 virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const; 00065 00066 protected: 00067 00075 double colA() const 00076 { 00077 return uHat()/tHat() - 2.0*sqr(uHat()/sHat()); 00078 } 00079 00084 double colB() const 00085 { 00086 return tHat()/uHat() - 2.0*sqr(tHat()/sHat()); 00087 } 00089 00090 public: 00091 00095 static void Init(); 00096 00097 protected: 00098 00105 virtual IBPtr clone() const; 00106 00111 virtual IBPtr fullclone() const; 00113 00114 private: 00115 00119 static NoPIOClassDescription<MEGG2QQ> initMEGG2QQ; 00120 00124 MEGG2QQ & operator=(const MEGG2QQ &); 00125 00126 }; 00127 00128 } 00129 00130 00131 namespace ThePEG { 00132 00137 template <> 00138 struct BaseClassTrait<MEGG2QQ,1>: public ClassTraitsType { 00140 typedef ME2to2QCD NthBase; 00141 }; 00142 00145 template <> 00146 struct ClassTraits<MEGG2QQ>: public ClassTraitsBase<MEGG2QQ> { 00148 static string className() { return "ThePEG::MEGG2QQ"; } 00152 static string library() { return "MEQCD.so"; } 00153 }; 00154 00157 } 00158 00159 #endif /* ThePEG_MEGG2QQ_H */