herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MatchboxAmplitudeggttbarg.h
1 // -*- C++ -*-
2 //
3 // MatchboxAmplitudeggttbarg.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_MatchboxAmplitudeggttbarg_H
10 #define Herwig_MatchboxAmplitudeggttbarg_H
11 //
12 // This is the declaration of the MatchboxAmplitudeggttbarg class.
13 //
14 
15 #include "Herwig/MatrixElement/Matchbox/Base/MatchboxAmplitude.h"
16 #include "Herwig/MatrixElement/Matchbox/Builtin/Amplitudes/MatchboxCurrents.h"
17 #include "MG_gg2ttxg.h"
18 #include "HelAmps_sm.h"
19 
20 namespace Herwig {
21 
22 using namespace ThePEG;
23 
31  public MatchboxAmplitude, public MatchboxCurrents {
32 
33 public:
34 
41 
45  virtual ~MatchboxAmplitudeggttbarg();
47 
48 public:
49 
53  virtual bool canHandle(const PDVector&) const;
54 
59  virtual unsigned int orderInGs() const {return 3; }
60 
65  virtual unsigned int orderInGem() const { return 0; }
66 
70  virtual bool noCorrelations() const { return true; }
71 
76  virtual bool haveOneLoop() const { return false; }
77 
82  virtual void prepareAmplitudes(Ptr<MatchboxMEBase>::tcptr);
83 
88  virtual Complex evaluate(size_t, const vector<int>&, Complex&);
89 
95  virtual Energy2 mu2() const { return lastSHat(); }
96 
100  virtual void flushCaches() {
103  }
104 
105 public:
106 
113  void persistentOutput(PersistentOStream & os) const;
114 
120  void persistentInput(PersistentIStream & is, int version);
122 
129  static void Init();
130 
131 protected:
132 
139  virtual IBPtr clone() const;
140 
145  virtual IBPtr fullclone() const;
147 
148 
149 // If needed, insert declarations of virtual function defined in the
150 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
151 
152 protected:
153 
161  virtual void doinit();
162 
167  virtual void doinitrun();
168 
170 
171 private:
172 
177  MatchboxAmplitudeggttbarg & operator=(const MatchboxAmplitudeggttbarg &) = delete;
178 
182  double mom0 [4];
183  double mom1 [4];
184  double mom2 [4];
185  double mom3 [4];
186  double mom4 [4];
187 
191  void setupParams(map<string, double> & MGParams);
192 
196  map<string,double> MGParams_;
197 
198 };
199 
200 }
201 
202 #endif /* Herwig_MatchboxAmplitudeggttbarg_H */
std::complex< double > Complex
virtual unsigned int orderInGs() const
Return the (tree-level) order in in which this matrix element is given.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
map< string, double > MGParams_
Stores parameters needed in MG_process.
MatchboxAmplitude is the base class for amplitude implementations inside Matchbox.
virtual void flushCaches()
Flush all cashes.
virtual bool haveOneLoop() const
Return true, if this amplitude is capable of calculating one-loop (QCD) corrections.
virtual Energy2 mu2() const
Return the value of the dimensional regularization parameter.
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 bool noCorrelations() const
Return true, if this amplitude will not require colour correlations.
-*- C++ -*-
vector< PDPtr > PDVector
MatchboxCurrents.