00001 // -*- C++ -*- 00002 // 00003 // MEqq2qq1.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_MEqq2qq_H 00010 #define ThePEG_MEqq2qq_H 00011 // This is the declaration of the MEqq2qq class. 00012 00013 #include "ThePEG/MatrixElement/ME2to2QCD.h" 00014 00015 namespace ThePEG { 00016 00025 class MEqq2qq: 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 (sqr(tHat()) + sqr(uHat()))/sqr(sHat()) + 00078 interference()? -double(sqr(uHat())/(3.0*sHat()*tHat())): 0.0; 00079 } 00080 00085 double colB() const 00086 { 00087 return (sqr(uHat()) + sqr(sHat()))/sqr(tHat()) + 00088 interference()? -double(sqr(uHat())/(3.0*sHat()*tHat())): 0.0; 00089 } 00091 00092 public: 00093 00097 static void Init(); 00098 00099 protected: 00100 00107 virtual IBPtr clone() const; 00108 00113 virtual IBPtr fullclone() const; 00115 00116 private: 00117 00121 static NoPIOClassDescription<MEqq2qq> initMEqq2qq; 00122 00126 MEqq2qq & operator=(const MEqq2qq &); 00127 00128 }; 00129 00130 } 00131 00132 00133 namespace ThePEG { 00134 00139 template <> 00140 struct BaseClassTrait<MEqq2qq,1>: public ClassTraitsType { 00142 typedef ME2to2QCD NthBase; 00143 }; 00144 00147 template <> 00148 struct ClassTraits<MEqq2qq>: public ClassTraitsBase<MEqq2qq> { 00150 static string className() { return "ThePEG::MEqq2qq"; } 00154 static string library() { return "MEQCD.so"; } 00155 }; 00156 00159 } 00160 00161 #endif /* ThePEG_MEqq2qq_H */