00001 // -*- C++ -*- 00002 // 00003 // MEQG2QG.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_MEQG2QG_H 00010 #define ThePEG_MEQG2QG_H 00011 // This is the declaration of the MEQG2QG class. 00012 00013 #include "ThePEG/MatrixElement/ME2to2QCD.h" 00014 00015 namespace ThePEG { 00016 00025 class MEQG2QG: 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 colA1() const 00076 { 00077 return ( interference()? 2.25: 2.0 )*sqr(uHat()/tHat()); 00078 } 00079 00084 double colB1() const 00085 { 00086 return ( interference()? 2.25: 2.0 )*sqr(sHat()/tHat()); 00087 } 00088 00093 double colA2() const { return -uHat()/sHat(); } 00094 00099 double colB2() const { return -sHat()/uHat(); } 00101 00102 public: 00103 00107 static void Init(); 00108 00109 protected: 00110 00117 virtual IBPtr clone() const; 00118 00123 virtual IBPtr fullclone() const; 00125 00126 private: 00127 00131 static NoPIOClassDescription<MEQG2QG> initMEQG2QG; 00132 00136 MEQG2QG & operator=(const MEQG2QG &); 00137 00138 }; 00139 00140 } 00141 00142 00143 namespace ThePEG { 00144 00149 template <> 00150 struct BaseClassTrait<MEQG2QG,1>: public ClassTraitsType { 00152 typedef ME2to2QCD NthBase; 00153 }; 00154 00157 template <> 00158 struct ClassTraits<MEQG2QG>: public ClassTraitsBase<MEQG2QG> { 00160 static string className() { return "ThePEG::MEQG2QG"; } 00164 static string library() { return "MEQCD.so"; } 00165 }; 00166 00169 } 00170 00171 #endif /* ThePEG_MEQG2QG_H */