herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MatchboxAmplitudehbbbar.h
1// -*- C++ -*-
2//
3// MatchboxAmplitudebbbarh.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_MatchboxAmplitudehbbbar_H
10#define Herwig_MatchboxAmplitudehbbbar_H
11//
12// This is the declaration of the MatchboxAmplitudehbbbar 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 0; }
50
55 virtual unsigned int orderInGem() const { return 1; }
56
61 virtual bool haveOneLoop() const { return true; }
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
111
117 void persistentInput(PersistentIStream & is, int version);
119
126 static void Init();
127
128protected:
129
136 virtual IBPtr clone() const;
137
142 virtual IBPtr fullclone() const;
144
145
146// If needed, insert declarations of virtual function defined in the
147// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
148
149protected:
150
158 virtual void doinit();
159
164 virtual void doinitrun();
166
167private:
168
169 /*
170 * The interfaced up quark mass
171 */
172 Energy interfaceUMass;
173 /*
174 * The interfaced down quark mass
175 */
176 Energy interfaceDMass;
177 /*
178 * The interfaced strange quark mass
179 */
180 Energy interfaceSMass;
181 /*
182 * The interfaced charm quark mass
183 */
184 Energy interfaceCMass;
185 /*
186 * The interfaced bottom quark mass
187 */
188 Energy interfaceBMass;
189
195
196};
197
198}
199
200#endif /* Herwig_MatchboxAmplitudehbbbar_H */
MatchboxAmplitude is the base class for amplitude implementations inside Matchbox.
virtual void flushCaches()
Flush all cashes.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
MatchboxAmplitudehbbbar & operator=(const MatchboxAmplitudehbbbar &)=delete
The assignment operator is private and must never be called.
virtual Energy2 mu2() const
Return the value of the dimensional regularization parameter.
static void Init()
The standard Init function used to initialize the interfaces.
virtual bool canHandle(const PDVector &) const
Return true, if this amplitude can handle the given process.
virtual void flushCaches()
Flush all cashes.
virtual Complex evaluate(size_t, const vector< int > &, Complex &)
Evaluate the amplitude for the given colour tensor id and helicity assignment.
virtual IBPtr clone() const
Make a simple clone of this object.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
virtual void doinitrun()
Initialize this object.
virtual Complex evaluateOneLoop(size_t, const vector< int > &)
Evaluate the amplitude for the given colour tensor id and helicity assignment.
MatchboxAmplitudehbbbar()
The default constructor.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual bool isBDK() const
Return true, if one loop corrections are given in the conventions of BDK.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual void prepareAmplitudes(Ptr< MatchboxMEBase >::tcptr)
Calculate the tree level amplitudes for the phasespace point stored in lastXComb.
virtual unsigned int orderInGs() const
Return the (tree-level) order in in which this matrix element is given.
virtual unsigned int orderInGem() const
Return the (tree-level) order in in which this matrix element is given.
virtual bool haveOneLoop() const
Return true, if this amplitude is capable of calculating one-loop (QCD) corrections.
-*- C++ -*-
vector< PDPtr > PDVector
std::complex< double > Complex
ThePEG::Ptr< InterfacedBase >::pointer IBPtr