00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef ThePEG_MEQQ2QQ_H
00010 #define ThePEG_MEQQ2QQ_H
00011
00012
00013 #include "ThePEG/MatrixElement/ME2to2QCD.h"
00014
00015
00016
00017 namespace ThePEG {
00018
00027 class MEQQ2QQ: public ME2to2QCD {
00028
00029 public:
00030
00040 virtual double me2() const;
00041
00045 virtual void getDiagrams() const;
00046
00054 virtual Selector<const ColourLines *>
00055 colourGeometries(tcDiagPtr diag) const;
00056
00065 virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const;
00067
00068 protected:
00069
00077 double colA() const
00078 {
00079 return (sqr(uHat()) + sqr(sHat()))/sqr(tHat());
00080 }
00081
00082
00087 double colB() const
00088 {
00089 return (sqr(tHat()) + sqr(sHat()))/sqr(uHat());
00090 }
00092
00093 public:
00094
00098 static void Init();
00099
00100 protected:
00101
00108 virtual IBPtr clone() const;
00109
00114 virtual IBPtr fullclone() const;
00116
00117 private:
00118
00122 static NoPIOClassDescription<MEQQ2QQ> initMEQQ2QQ;
00123
00127 MEQQ2QQ & operator=(const MEQQ2QQ &);
00128
00129 };
00130
00131 }
00132
00133
00134 namespace ThePEG {
00135
00140 template <>
00141 struct BaseClassTrait<MEQQ2QQ,1>: public ClassTraitsType {
00143 typedef ME2to2QCD NthBase;
00144 };
00145
00148 template <>
00149 struct ClassTraits<MEQQ2QQ>: public ClassTraitsBase<MEQQ2QQ> {
00151 static string className() { return "ThePEG::MEQQ2QQ"; }
00155 static string library() { return "MEQCD.so"; }
00156 };
00157
00160 }
00161
00162 #endif