ThePEG  1.8.0
MEQQ2qq2.h
1 // -*- C++ -*-
2 //
3 // MEQQ2qq2.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(uHat()) + sqr(tHat()))/sqr(sHat());
78  }
80 
81 public:
82 
86  static void Init();
87 
88 protected:
89 
96  virtual IBPtr clone() const { return new_ptr(*this); }
97 
102  virtual IBPtr fullclone() const { return new_ptr(*this); }
104 
105 private:
106 
111 
115  MEQQ2qq & operator=(const MEQQ2qq &);
116 
117 };
118 
119 }
120 
121 
122 namespace ThePEG {
123 
128 template <>
129 struct BaseClassTrait<MEQQ2qq,1>: public ClassTraitsType {
131  typedef ME2to2QCD NthBase;
132 };
133 
136 template <>
137 struct ClassTraits<MEQQ2qq>: public ClassTraitsBase<MEQQ2qq> {
139  static string className() { return "ThePEG::MEQQ2qq"; }
143  static string library() { return "MEQCD.so"; }
144 };
145 
148 }
149 
150 #endif /* ThePEG_MEQQ2qq_H */