00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef ThePEG_MEQQ2GG_H
00010 #define ThePEG_MEQQ2GG_H
00011
00012
00013 #include "ThePEG/MatrixElement/ME2to2QCD.h"
00014
00015 namespace ThePEG {
00016
00025 class MEQQ2GG: 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
00080
00085 double colB() const
00086 {
00087 return tHat()/uHat() - 2.0*sqr(tHat()/sHat());
00088 }
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<MEQQ2GG> initMEQQ2GG;
00122
00126 MEQQ2GG & operator=(const MEQQ2GG &);
00127
00128 };
00129
00130 }
00131
00132
00133 namespace ThePEG {
00134
00139 template <>
00140 struct BaseClassTrait<MEQQ2GG,1>: public ClassTraitsType {
00142 typedef ME2to2QCD NthBase;
00143 };
00144
00147 template <>
00148 struct ClassTraits<MEQQ2GG>: public ClassTraitsBase<MEQQ2GG> {
00150 static string className() { return "ThePEG::MEQQ2GG"; }
00154 static string library() { return "MEQCD.so"; }
00155 };
00156
00159 }
00160
00161 #endif