ThePEG  1.8.0
MEqq2qq1.h
1 // -*- C++ -*-
2 //
3 // MEqq2qq1.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 
15 namespace ThePEG {
16 
25 class MEqq2qq: 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 colA() const
76  {
77  return (sqr(tHat()) + sqr(uHat()))/sqr(sHat()) +
78  (interference()? -double(sqr(uHat())/(3.0*sHat()*tHat())): 0.0);
79  }
80 
85  double colB() const
86  {
87  return (sqr(uHat()) + sqr(sHat()))/sqr(tHat()) +
88  (interference()? -double(sqr(uHat())/(3.0*sHat()*tHat())): 0.0);
89  }
91 
92 public:
93 
97  static void Init();
98 
99 protected:
100 
107  virtual IBPtr clone() const;
108 
113  virtual IBPtr fullclone() const;
115 
116 private:
117 
122 
126  MEqq2qq & operator=(const MEqq2qq &);
127 
128 };
129 
130 }
131 
132 
133 namespace ThePEG {
134 
139 template <>
140 struct BaseClassTrait<MEqq2qq,1>: public ClassTraitsType {
142  typedef ME2to2QCD NthBase;
143 };
144 
147 template <>
148 struct ClassTraits<MEqq2qq>: public ClassTraitsBase<MEqq2qq> {
150  static string className() { return "ThePEG::MEqq2qq"; }
154  static string library() { return "MEQCD.so"; }
155 };
156 
159 }
160 
161 #endif /* ThePEG_MEqq2qq_H */