herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MatchboxAmplitudeqqbarttbarg.h
1 // -*- C++ -*-
2 //
3 // MatchboxAmplitudeqqbarttbarg.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_MatchboxAmplitudeqqbarttbarg_H
10 #define Herwig_MatchboxAmplitudeqqbarttbarg_H
11 //
12 // This is the declaration of the MatchboxAmplitudeqqbarttbarg class.
13 //
14 
15 #include "Herwig/MatrixElement/Matchbox/Base/MatchboxAmplitude.h"
16 #include "Herwig/MatrixElement/Matchbox/Builtin/Amplitudes/MatchboxCurrents.h"
17 #include "MG_qqx2ttxg.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 
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  MatchboxAmplitudeqqbarttbarg & operator=(const MatchboxAmplitudeqqbarttbarg &) = 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_MatchboxAmplitudeqqbarttbarg_H */
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.
std::complex< double > Complex
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 bool haveOneLoop() const
Return true, if this amplitude is capable of calculating one-loop (QCD) corrections.
virtual bool noCorrelations() const
Return true, if this amplitude will not require colour correlations.
virtual void flushCaches()
Flush all cashes.
virtual unsigned int orderInGem() const
Return the (tree-level) order in in which this matrix element is given.
virtual void flushCaches()
Flush all cashes.
-*- C++ -*-
vector< PDPtr > PDVector
MatchboxCurrents.