ThePEG  1.8.0
MENCDIS.h
1 // -*- C++ -*-
2 //
3 // MENCDIS.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_MENCDIS_H
10 #define ThePEG_MENCDIS_H
11 // This is the declaration of the MENCDIS class.
12 
13 #include "ThePEG/MatrixElement/ME2to2QCD.h"
14 // #include "MENCDIS.fh"
15 // #include "MENCDIS.xh"
16 
17 namespace ThePEG {
18 
30 class MENCDIS: public ME2to2QCD {
31 
32 public:
33 
39  MENCDIS();
40 
44  MENCDIS(const MENCDIS &);
45 
49  virtual ~MENCDIS();
51 
52 public:
53 
60  virtual unsigned int orderInAlphaS() const;
61 
66  virtual unsigned int orderInAlphaEW() const;
67 
75  virtual double me2() const;
76 
80  virtual void getDiagrams() const;
81 
90  colourGeometries(tcDiagPtr diag) const;
91 
100  virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const;
101 
105  virtual Energy2 scale() const;
107 
108 public:
109 
116  void persistentOutput(PersistentOStream & os) const;
117 
123  void persistentInput(PersistentIStream & is, int version);
125 
129  static void Init();
130 
131 protected:
132 
139  virtual IBPtr clone() const;
140 
145  virtual IBPtr fullclone() const;
147 
155  virtual void doinit();
157 
158 protected:
159 
163  Energy2 mZ2;
164 
168  mutable double lastG;
169 
173  mutable double lastZ;
174 
175 private:
176 
181 
185  MENCDIS & operator=(const MENCDIS &);
186 
187 };
188 
193 template <>
194 struct BaseClassTrait<MENCDIS,1>: public ClassTraitsType {
196  typedef ME2to2QCD NthBase;
197 };
198 
201 template <>
202 struct ClassTraits<MENCDIS>: public ClassTraitsBase<MENCDIS> {
204  static string className() { return "ThePEG::MENCDIS"; }
208  static string library() { return "MENCDIS.so"; }
209 };
210 
213 }
214 
215 #endif /* ThePEG_MENCDIS_H */