herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MatchboxAmplitudehggg.h
1 // -*- C++ -*-
2 //
3 // MatchboxAmplitudehggg.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_MatchboxAmplitudehggg_H
10 #define Herwig_MatchboxAmplitudehggg_H
11 //
12 // This is the declaration of the MatchboxAmplitudehggg 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 ~MatchboxAmplitudehggg();
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(); }
101 
105  virtual void flushCaches() {
108  }
109 
110 public:
111  /*
112  * The interfaced THooftMass
113  */
114  Energy interfaceTHooft;
121  void persistentOutput(PersistentOStream & os) const;
122 
128  void persistentInput(PersistentIStream & is, int version);
130 
137  static void Init();
138 
139 protected:
140 
147  virtual IBPtr clone() const;
148 
153  virtual IBPtr fullclone() const;
155 
156 
157 // If needed, insert declarations of virtual function defined in the
158 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
159 
160 protected:
161 
169  virtual void doinit();
170 
175  virtual void doinitrun();
177 
178 private:
179 
184  MatchboxAmplitudehggg & operator=(const MatchboxAmplitudehggg &) = delete;
185 
186 };
187 
188 }
189 
190 #endif /* Herwig_MatchboxAmplitudehggg_H */
191 
std::complex< double > Complex
virtual Energy2 mu2() const
Return the value of the dimensional regularization parameter.
virtual unsigned int orderInGs() const
Return the (tree-level) order in in which this matrix element is given.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
MatchboxAmplitude is the base class for amplitude implementations inside Matchbox.
virtual void flushCaches()
Flush all cashes.
virtual void flushCaches()
Flush all cashes.
virtual bool isBDK() const
Evaluate the amplitude for the given colour tensor id and helicity assignment.
-*- C++ -*-
vector< PDPtr > PDVector
virtual unsigned int orderInGem() const
Return the (tree-level) order in in which this matrix element is given.
virtual bool haveOneLoop() const
Return true, if this amplitude is capable of calculating one-loop (QCD) corrections.
MatchboxCurrents.