herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MatchboxAmplitudehqqbarg.h
1 // -*- C++ -*-
2 //
3 // MatchboxAmplitudehqqbarg.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2019 The Herwig Collaboration
5 //
6 // Herwig is licenced under version 3 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef Herwig_MatchboxAmplitudehqqbarg_H
10 #define Herwig_MatchboxAmplitudehqqbarg_H
11 //
12 // This is the declaration of the MatchboxAmplitudehqqbarg class.
13 //
14 
15 #include "Herwig/MatrixElement/Matchbox/Base/MatchboxAmplitude.h"
16 #include "Herwig/MatrixElement/Matchbox/Builtin/Amplitudes/MatchboxCurrents.h"
17 
18 namespace Herwig {
19 
20 using namespace ThePEG;
21 
29  public MatchboxAmplitude, public MatchboxCurrents {
30 
31 public:
32 
39 
43  virtual ~MatchboxAmplitudehqqbarg();
45 
46 public:
47 
51  virtual bool canHandle(const PDVector&) const;
52 
57  virtual unsigned int orderInGs() const { return 3; }
58 
63  virtual unsigned int orderInGem() const { return 1; }
64 
69  virtual bool haveOneLoop() const { return false; }
70 
75  virtual void prepareAmplitudes(Ptr<MatchboxMEBase>::tcptr);
76 
81  virtual Complex evaluate(size_t, const vector<int>&, Complex&);
82 
87  //virtual Complex evaluateOneLoop(size_t, const vector<int>&);
88 
93  virtual bool isBDK() const { return true; }
94 
100  virtual Energy2 mu2() const { return lastSHat(); }
104  virtual void flushCaches() {
107  }
108 
109 public:
110 
117  void persistentOutput(PersistentOStream & os) const;
118 
124  void persistentInput(PersistentIStream & is, int version);
126 
133  static void Init();
134 
135 protected:
136 
143  virtual IBPtr clone() const;
144 
149  virtual IBPtr fullclone() const;
151 
152 
153 // If needed, insert declarations of virtual function defined in the
154 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
155 
156 protected:
157 
165  virtual void doinit();
166 
171  virtual void doinitrun();
173 
174 private:
175  /*
176  * The interfaced THooftMass
177  */
178  Energy interfaceTHooft;
183  MatchboxAmplitudehqqbarg & operator=(const MatchboxAmplitudehqqbarg &) = delete;
184 
185 };
186 
187 }
188 
189 #endif /* Herwig_MatchboxAmplitudehqqbarg_H */
std::complex< double > Complex
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
virtual bool haveOneLoop() const
Return true, if this amplitude is capable of calculating one-loop (QCD) corrections.
virtual bool isBDK() const
Evaluate the amplitude for the given colour tensor id and helicity assignment.
MatchboxAmplitude is the base class for amplitude implementations inside Matchbox.
virtual unsigned int orderInGem() const
Return the (tree-level) order in in which this matrix element is given.
virtual void flushCaches()
Flush all cashes.
virtual unsigned int orderInGs() const
Return the (tree-level) order in in which this matrix element is given.
-*- C++ -*-
vector< PDPtr > PDVector
virtual Energy2 mu2() const
Return the value of the dimensional regularization parameter.
virtual void flushCaches()
Flush all cashes.
MatchboxCurrents.