herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
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
18namespace Herwig {
19
20using namespace ThePEG;
21
29 public MatchboxAmplitude, public MatchboxCurrents {
30
31public:
32
37
38public:
39
43 virtual bool canHandle(const PDVector&) const;
44
49 virtual unsigned int orderInGs() const { return 3; }
50
55 virtual unsigned int orderInGem() const { return 1; }
56
61 virtual bool haveOneLoop() const { return false; }
62
67 virtual void prepareAmplitudes(Ptr<MatchboxMEBase>::tcptr);
68
73 virtual Complex evaluate(size_t, const vector<int>&, Complex&);
74
79 //virtual Complex evaluateOneLoop(size_t, const vector<int>&);
80
85 virtual bool isBDK() const { return true; }
86
92 virtual Energy2 mu2() const { return lastSHat(); }
93
97 virtual void flushCaches() {
100 }
101
102public:
103 /*
104 * The interfaced THooftMass
105 */
106 Energy interfaceTHooft;
114
120 void persistentInput(PersistentIStream & is, int version);
122
129 static void Init();
130
131protected:
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
152protected:
153
161 virtual void doinit();
162
167 virtual void doinitrun();
169
170private:
171
177
178};
179
180}
181
182#endif /* Herwig_MatchboxAmplitudehggg_H */
183
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 bool isBDK() const
Evaluate the amplitude for the given colour tensor id and helicity assignment.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual Complex evaluate(size_t, const vector< int > &, Complex &)
Evaluate the amplitude for the given colour tensor id and helicity assignment.
MatchboxAmplitudehggg & operator=(const MatchboxAmplitudehggg &)=delete
The assignment operator is private and must never be called.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual bool canHandle(const PDVector &) const
Return true, if this amplitude can handle the given process.
virtual IBPtr clone() const
Make a simple clone of this object.
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 prepareAmplitudes(Ptr< MatchboxMEBase >::tcptr)
Calculate the tree level amplitudes for the phasespace point stored in lastXComb.
MatchboxAmplitudehggg()
The default constructor.
virtual void doinitrun()
Initialize this object.
virtual void flushCaches()
Flush all cashes.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
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.
static void Init()
The standard Init function used to initialize the interfaces.
-*- C++ -*-
vector< PDPtr > PDVector
std::complex< double > Complex
ThePEG::Ptr< InterfacedBase >::pointer IBPtr