herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MatchboxAmplitudehbbbarg.h
1 // -*- C++ -*-
2 //
3 // MatchboxAmplitudehbbbarg.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_MatchboxAmplitudehbbbarg_H
10 #define Herwig_MatchboxAmplitudehbbbarg_H
11 //
12 // This is the declaration of the MatchboxAmplitudehbbbarg 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 ~MatchboxAmplitudehbbbarg();
45 
46 public:
47 
51  virtual bool canHandle(const PDVector&) const;
52 
57  virtual unsigned int orderInGs() const { return 1; }
58 
63  virtual unsigned int orderInGem() const { return 1; }
64 
69  virtual bool haveOneLoop() const { return true; }
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 
118  void persistentOutput(PersistentOStream & os) const;
119 
125  void persistentInput(PersistentIStream & is, int version);
127 
134  static void Init();
135 
136 protected:
137 
144  virtual IBPtr clone() const;
145 
150  virtual IBPtr fullclone() const;
152 
153 
154 // If needed, insert declarations of virtual function defined in the
155 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
156 
157 protected:
158 
166  virtual void doinit();
167 
172  virtual void doinitrun();
174 private:
175 
176  /*
177  * The interfaced up quark mass
178  */
179  Energy interfaceUMass;
180  /*
181  * The interfaced down quark mass
182  */
183  Energy interfaceDMass;
184  /*
185  * The interfaced strange quark mass
186  */
187  Energy interfaceSMass;
188  /*
189  * The interfaced charm quark mass
190  */
191  Energy interfaceCMass;
192  /*
193  * The interfaced bottom quark mass
194  */
195  Energy interfaceBMass;
196 private:
197 
202  MatchboxAmplitudehbbbarg & operator=(const MatchboxAmplitudehbbbarg &) = delete;
203 
204 };
205 
206 }
207 
208 #endif /* Herwig_MatchboxAmplitudehbbbarg_H */
virtual bool haveOneLoop() const
Return true, if this amplitude is capable of calculating one-loop (QCD) corrections.
std::complex< double > Complex
virtual unsigned int orderInGs() const
Return the (tree-level) order in in which this matrix element is given.
virtual Energy2 mu2() const
Return the value of the dimensional regularization parameter.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
virtual unsigned int orderInGem() const
Return the (tree-level) order in in which this matrix element is given.
virtual void flushCaches()
Flush all cashes.
MatchboxAmplitude is the base class for amplitude implementations inside Matchbox.
virtual void flushCaches()
Flush all cashes.
-*- C++ -*-
vector< PDPtr > PDVector
MatchboxCurrents.
virtual bool isBDK() const
Evaluate the amplitude for the given colour tensor id and helicity assignment.