ThePEG  1.8.0
MEQQ2QQ3.h
1 // -*- C++ -*-
2 //
3 // MEQQ2QQ3.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_MEQQ2QQ_H
10 #define ThePEG_MEQQ2QQ_H
11 // This is the declaration of the MEQQ2QQ class.
12 
13 #include "ThePEG/MatrixElement/ME2to2QCD.h"
14 // #include "MEQQ2QQ.fh"
15 // #include "MEQQ2QQ.xh"
16 
17 namespace ThePEG {
18 
27 class MEQQ2QQ: public ME2to2QCD {
28 
29 public:
30 
40  virtual double me2() const;
41 
45  virtual void getDiagrams() const;
46 
55  colourGeometries(tcDiagPtr diag) const;
56 
65  virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const;
67 
68 protected:
69 
77  double colA() const
78  {
79  return (sqr(uHat()) + sqr(sHat()))/sqr(tHat());
80  }
81 
82 
87  double colB() const
88  {
89  return (sqr(tHat()) + sqr(sHat()))/sqr(uHat());
90  }
92 
93 public:
94 
98  static void Init();
99 
100 protected:
101 
108  virtual IBPtr clone() const;
109 
114  virtual IBPtr fullclone() const;
116 
117 private:
118 
123 
127  MEQQ2QQ & operator=(const MEQQ2QQ &);
128 
129 };
130 
131 }
132 
133 
134 namespace ThePEG {
135 
140 template <>
141 struct BaseClassTrait<MEQQ2QQ,1>: public ClassTraitsType {
143  typedef ME2to2QCD NthBase;
144 };
145 
148 template <>
149 struct ClassTraits<MEQQ2QQ>: public ClassTraitsBase<MEQQ2QQ> {
151  static string className() { return "ThePEG::MEQQ2QQ"; }
155  static string library() { return "MEQCD.so"; }
156 };
157 
160 }
161 
162 #endif /* ThePEG_MEQQ2QQ_H */