herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
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
20namespace Herwig {
21
22using namespace ThePEG;
23
31 public MatchboxAmplitude, public MatchboxCurrents {
32
33public:
34
39
40public:
41
45 virtual bool canHandle(const PDVector&) const;
46
51 virtual unsigned int orderInGs() const {return 3; }
52
57 virtual unsigned int orderInGem() const { return 0; }
58
62 virtual bool noCorrelations() const { return true; }
63
68 virtual bool haveOneLoop() const { return false; }
69
74 virtual void prepareAmplitudes(Ptr<MatchboxMEBase>::tcptr);
75
80 virtual Complex evaluate(size_t, const vector<int>&, Complex&);
81
87 virtual Energy2 mu2() const { return lastSHat(); }
88
92 virtual void flushCaches() {
95 }
96
97public:
98
106
112 void persistentInput(PersistentIStream & is, int version);
114
121 static void Init();
122
123protected:
124
131 virtual IBPtr clone() const;
132
137 virtual IBPtr fullclone() const;
139
140
141// If needed, insert declarations of virtual function defined in the
142// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
143
144protected:
145
153 virtual void doinit();
154
159 virtual void doinitrun();
160
162
163private:
164
170
174 double mom0 [4];
175 double mom1 [4];
176 double mom2 [4];
177 double mom3 [4];
178 double mom4 [4];
179
183 void setupParams(map<string, double> & MGParams);
184
188 map<string,double> MGParams_;
189
190};
191
192}
193
194#endif /* Herwig_MatchboxAmplitudeqqbarttbarg_H */
MatchboxAmplitude is the base class for amplitude implementations inside Matchbox.
virtual void flushCaches()
Flush all cashes.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
double mom0[4]
Containers for external particle momenta.
MatchboxAmplitudeqqbarttbarg()
The default constructor.
virtual void flushCaches()
Flush all cashes.
virtual Energy2 mu2() const
Return the value of the dimensional regularization parameter.
static void Init()
The standard Init function used to initialize the interfaces.
void setupParams(map< string, double > &MGParams)
Fill MGParams_ with Herwig values of parameters.
virtual void prepareAmplitudes(Ptr< MatchboxMEBase >::tcptr)
Calculate the tree level amplitudes for the phasespace point stored in lastXComb.
virtual bool noCorrelations() const
Return true, if this amplitude will not require colour correlations.
virtual unsigned int orderInGs() const
Return the (tree-level) order in in which this matrix element is given.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
MatchboxAmplitudeqqbarttbarg & operator=(const MatchboxAmplitudeqqbarttbarg &)=delete
The assignment operator is private and must never be called.
map< string, double > MGParams_
Stores parameters needed in MG_process.
virtual bool haveOneLoop() const
Return true, if this amplitude is capable of calculating one-loop (QCD) corrections.
virtual IBPtr clone() const
Make a simple clone of this object.
virtual void doinitrun()
Initialize this object.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual Complex evaluate(size_t, const vector< int > &, Complex &)
Evaluate the amplitude for the given colour tensor id and helicity assignment.
virtual unsigned int orderInGem() const
Return the (tree-level) order in in which this matrix element is given.
virtual bool canHandle(const PDVector &) const
Return true, if this amplitude can handle the given process.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
-*- C++ -*-
vector< PDPtr > PDVector
std::complex< double > Complex
ThePEG::Ptr< InterfacedBase >::pointer IBPtr