ThePEG  1.8.0
MEQG2QG.h
1 // -*- C++ -*-
2 //
3 // MEQG2QG.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 1999-2011 Leif Lonnblad
5 //
6 // ThePEG is licenced under version 2 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef ThePEG_MEQG2QG_H
10 #define ThePEG_MEQG2QG_H
11 // This is the declaration of the MEQG2QG class.
12 
13 #include "ThePEG/MatrixElement/ME2to2QCD.h"
14 
15 namespace ThePEG {
16 
25 class MEQG2QG: public ME2to2QCD {
26 
27 public:
28 
38  virtual double me2() const;
39 
43  virtual void getDiagrams() const;
44 
53  colourGeometries(tcDiagPtr diag) const;
54 
63  virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const;
65 
66 protected:
67 
75  double colA1() const
76  {
77  return ( interference()? 2.25: 2.0 )*sqr(uHat()/tHat());
78  }
79 
84  double colB1() const
85  {
86  return ( interference()? 2.25: 2.0 )*sqr(sHat()/tHat());
87  }
88 
93  double colA2() const { return -uHat()/sHat(); }
94 
99  double colB2() const { return -sHat()/uHat(); }
101 
102 public:
103 
107  static void Init();
108 
109 protected:
110 
117  virtual IBPtr clone() const;
118 
123  virtual IBPtr fullclone() const;
125 
126 private:
127 
132 
136  MEQG2QG & operator=(const MEQG2QG &);
137 
138 };
139 
140 }
141 
142 
143 namespace ThePEG {
144 
149 template <>
150 struct BaseClassTrait<MEQG2QG,1>: public ClassTraitsType {
152  typedef ME2to2QCD NthBase;
153 };
154 
157 template <>
158 struct ClassTraits<MEQG2QG>: public ClassTraitsBase<MEQG2QG> {
160  static string className() { return "ThePEG::MEQG2QG"; }
164  static string library() { return "MEQCD.so"; }
165 };
166 
169 }
170 
171 #endif /* ThePEG_MEQG2QG_H */