ThePEG  1.8.0
MEee2gZ2qq.h
1 // -*- C++ -*-
2 //
3 // MEee2gZ2qq.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_MEee2gZ2qq_H
10 #define ThePEG_MEee2gZ2qq_H
11 // This is the declaration of the MEee2gZ2qq class.
12 
13 #include "ThePEG/MatrixElement/ME2to2QCD.h"
14 
15 namespace ThePEG {
16 
29 class MEee2gZ2qq: public ME2to2QCD {
30 
31 public:
32 
38  MEee2gZ2qq();
40 
41 public:
42 
49  virtual unsigned int orderInAlphaS() const;
50 
55  virtual unsigned int orderInAlphaEW() const;
56 
64  virtual double me2() const;
65 
69  virtual void getDiagrams() const;
70 
79  colourGeometries(tcDiagPtr diag) const;
80 
89  virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const;
90 
94  virtual Energy2 scale() const;
96 
97 public:
98 
105  void persistentOutput(PersistentOStream & os) const;
106 
112  void persistentInput(PersistentIStream & is, int version);
114 
118  static void Init();
119 
120 protected:
121 
128  virtual IBPtr clone() const;
129 
134  virtual IBPtr fullclone() const;
136 
144  virtual void doinit();
146 
147 protected:
148 
153  vector<double> coefs;
154 
158  Energy2 mZ2;
159 
163  Energy2 GZ2;
164 
168  mutable double lastCont;
169 
173  mutable double lastBW;
174 
175 private:
176 
181 
185  MEee2gZ2qq & operator=(const MEee2gZ2qq &);
186 
187 };
188 
193 template <>
194 struct BaseClassTrait<MEee2gZ2qq,1>: public ClassTraitsType {
196  typedef ME2to2QCD NthBase;
197 };
198 
201 template <>
202 struct ClassTraits<MEee2gZ2qq>: public ClassTraitsBase<MEee2gZ2qq> {
204  static string className() { return "ThePEG::MEee2gZ2qq"; }
208  static string library() { return "MEee2gZ2qq.so"; }
209 };
210 
213 }
214 
215 #endif /* ThePEG_MEee2gZ2qq_H */