00001 // -*- C++ -*- 00002 // 00003 // MEQq2Qq4.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(uHat()) + sqr(sHat()))/sqr(tHat()); 00078 } 00080 00081 public: 00082 00086 static void Init(); 00087 00088 protected: 00089 00096 virtual IBPtr clone() const { return new_ptr(*this); } 00097 00102 virtual IBPtr fullclone() const { return new_ptr(*this); } 00104 00105 private: 00106 00110 static NoPIOClassDescription<MEQq2Qq> initMEQq2Qq; 00111 00115 MEQq2Qq & operator=(const MEQq2Qq &); 00116 00117 }; 00118 00119 } 00120 00121 00122 namespace ThePEG { 00123 00128 template <> 00129 struct BaseClassTrait<MEQq2Qq,1>: public ClassTraitsType { 00131 typedef ME2to2QCD NthBase; 00132 }; 00133 00136 template <> 00137 struct ClassTraits<MEQq2Qq>: public ClassTraitsBase<MEQq2Qq> { 00139 static string className() { return "ThePEG::MEQq2Qq"; } 00143 static string library() { return "MEQCD.so"; } 00144 }; 00145 00148 } 00149 00150 #endif /* ThePEG_MEQq2Qq_H */