herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
MatrixElement
Matchbox
Base
MatchboxOLPME.h
1
// -*- C++ -*-
2
//
3
// MatchboxOLPME.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_MatchboxOLPME_H
10
#define Herwig_MatchboxOLPME_H
11
//
12
// This is the declaration of the MatchboxOLPME class.
13
//
14
15
#include "Herwig/MatrixElement/Matchbox/Base/MatchboxAmplitude.h"
16
17
namespace
Herwig
{
18
19
using namespace
ThePEG
;
20
27
class
MatchboxOLPME
:
public
MatchboxAmplitude
{
28
29
public
:
30
34
MatchboxOLPME
();
35
36
public
:
37
41
virtual
bool
canHandle
(
const
PDVector
& p,
42
Ptr<MatchboxFactory>::tptr,
43
bool
)
const
;
44
49
virtual
void
orderInGs
(
unsigned
int
ogs) {
theOrderInGs
= ogs; }
50
55
virtual
unsigned
int
orderInGs
()
const
{
return
theOrderInGs
; }
56
61
virtual
void
orderInGem
(
unsigned
int
oge) {
theOrderInGem
= oge; }
62
67
virtual
unsigned
int
orderInGem
()
const
{
return
theOrderInGem
; }
68
72
virtual
bool
isOLPTree
()
const
{
return
true
; }
73
77
virtual
bool
isOLPLoop
()
const
{
return
true
; }
78
83
virtual
bool
haveColourFlows
()
const
{
return
false
; }
84
88
virtual
void
setXComb
(tStdXCombPtr xc);
89
94
virtual
void
prepareAmplitudes
(Ptr<MatchboxMEBase>::tcptr) {}
95
99
virtual
double
me2
()
const
;
100
104
virtual
double
colourCorrelatedME2
(pair<int,int> ij)
const
;
105
109
virtual
double
largeNColourCorrelatedME2
(pair<int,int>,
110
Ptr<ColourBasis>::tptr)
const
;
111
115
virtual
double
largeNME2
(Ptr<ColourBasis>::tptr largeNBasis)
const
;
116
120
virtual
double
spinColourCorrelatedME2
(pair<int,int> ij,
121
const
SpinCorrelationTensor
& c)
const
;
122
126
virtual
double
spinCorrelatedME2
(pair<int,int> ij,
127
const
SpinCorrelationTensor
& c)
const
;
128
132
virtual
bool
treeAmplitudes
()
const
{
return
false
; }
133
138
virtual
bool
haveOneLoop
()
const
{
return
true
; }
139
144
virtual
bool
onlyOneLoop
()
const
{
return
false
; }
145
149
virtual
bool
oneLoopAmplitudes
()
const
{
return
false
; }
150
155
virtual
bool
isExpanded
()
const
{
return
true
; }
156
162
virtual
Energy2
mu2
()
const
;
163
167
virtual
bool
hasRunningAlphaS
()
const
;
168
172
virtual
bool
hasRunningAlphaEW
()
const
;
173
177
virtual
double
oneLoopDoublePole
()
const
;
178
182
virtual
double
oneLoopSinglePole
()
const
;
183
188
virtual
void
prepareOneLoopAmplitudes
(Ptr<MatchboxMEBase>::tcptr) {}
189
193
virtual
double
oneLoopInterference
()
const
;
194
195
public
:
196
200
virtual
void
evalSubProcess
()
const
= 0;
201
205
virtual
void
evalColourCorrelator
(pair<int,int> ij)
const
= 0;
206
210
virtual
void
evalSpinColourCorrelator
(pair<int,int> ij)
const
= 0;
211
215
virtual
void
evalSpinCorrelator
(pair<int,int> ij)
const
;
216
217
public
:
218
225
void
persistentOutput
(
PersistentOStream
& os)
const
;
226
232
void
persistentInput
(
PersistentIStream
& is,
int
version);
234
241
static
void
Init
();
242
243
244
// If needed, insert declarations of virtual function defined in the
245
// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
246
247
248
protected
:
249
257
virtual
void
doinit
();
258
263
virtual
void
doinitrun
();
265
269
static
string
&
optionalContractFile
() {
270
static
string
s =
""
;
271
return
s;
272
}
273
277
static
bool
&
didStartOLP
() {
278
static
bool
f =
false
;
279
return
f;
280
}
281
282
private
:
283
288
MatchboxOLPME
&
operator=
(
const
MatchboxOLPME
&) =
delete
;
289
294
unsigned
int
theOrderInGs
;
295
300
unsigned
int
theOrderInGem
;
301
306
bool
theSetMuToMuR
;
307
312
bool
theUseRunningAlphaS
;
313
318
bool
theUseRunningAlphaEW
;
319
320
};
321
322
}
323
324
#endif
/* Herwig_MatchboxOLPME_H */
Herwig::MatchboxAmplitude
MatchboxAmplitude is the base class for amplitude implementations inside Matchbox.
Definition:
MatchboxAmplitude.h:111
Herwig::MatchboxOLPME
MatchboxOLPME implements OLP interfaces.
Definition:
MatchboxOLPME.h:27
Herwig::MatchboxOLPME::orderInGem
virtual unsigned int orderInGem() const
Return the (tree-level) order in in which this matrix element is given.
Definition:
MatchboxOLPME.h:67
Herwig::MatchboxOLPME::spinCorrelatedME2
virtual double spinCorrelatedME2(pair< int, int > ij, const SpinCorrelationTensor &c) const
Return the spin correlated matrix element.
Herwig::MatchboxOLPME::doinitrun
virtual void doinitrun()
Initialize this object.
Herwig::MatchboxOLPME::colourCorrelatedME2
virtual double colourCorrelatedME2(pair< int, int > ij) const
Return the colour correlated matrix element.
Herwig::MatchboxOLPME::treeAmplitudes
virtual bool treeAmplitudes() const
Return true, if tree-level contributions will be evaluated at amplitude level.
Definition:
MatchboxOLPME.h:132
Herwig::MatchboxOLPME::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Herwig::MatchboxOLPME::MatchboxOLPME
MatchboxOLPME()
The default constructor.
Herwig::MatchboxOLPME::evalSubProcess
virtual void evalSubProcess() const =0
Call OLP_EvalSubProcess and fill in the results.
Herwig::MatchboxOLPME::theUseRunningAlphaEW
bool theUseRunningAlphaEW
Use the running alpha_ew instead of the reference alpha_ew.
Definition:
MatchboxOLPME.h:318
Herwig::MatchboxOLPME::hasRunningAlphaEW
virtual bool hasRunningAlphaEW() const
Indicate that this amplitude is running alphaew by itself.
Herwig::MatchboxOLPME::isOLPLoop
virtual bool isOLPLoop() const
Return true, if this amplitude is handled by a BLHA one-loop provider.
Definition:
MatchboxOLPME.h:77
Herwig::MatchboxOLPME::prepareOneLoopAmplitudes
virtual void prepareOneLoopAmplitudes(Ptr< MatchboxMEBase >::tcptr)
Calculate the one-loop amplitudes for the phasespace point stored in lastXComb, if provided.
Definition:
MatchboxOLPME.h:188
Herwig::MatchboxOLPME::largeNME2
virtual double largeNME2(Ptr< ColourBasis >::tptr largeNBasis) const
Return the largeN matrix element squared.
Herwig::MatchboxOLPME::mu2
virtual Energy2 mu2() const
Return the value of the dimensional regularization parameter.
Herwig::MatchboxOLPME::optionalContractFile
static string & optionalContractFile()
Set an optional contract file name to be used.
Definition:
MatchboxOLPME.h:269
Herwig::MatchboxOLPME::evalSpinCorrelator
virtual void evalSpinCorrelator(pair< int, int > ij) const
Fill in results for the given spin correlator; may not be supported.
Herwig::MatchboxOLPME::operator=
MatchboxOLPME & operator=(const MatchboxOLPME &)=delete
The assignment operator is private and must never be called.
Herwig::MatchboxOLPME::onlyOneLoop
virtual bool onlyOneLoop() const
Return true, if this amplitude only provides one-loop (QCD) corrections.
Definition:
MatchboxOLPME.h:144
Herwig::MatchboxOLPME::evalSpinColourCorrelator
virtual void evalSpinColourCorrelator(pair< int, int > ij) const =0
Fill in results for the given colour/spin correlator.
Herwig::MatchboxOLPME::isOLPTree
virtual bool isOLPTree() const
Return true, if this amplitude is handled by a BLHA one-loop provider.
Definition:
MatchboxOLPME.h:72
Herwig::MatchboxOLPME::orderInGs
virtual unsigned int orderInGs() const
Return the (tree-level) order in in which this matrix element is given.
Definition:
MatchboxOLPME.h:55
Herwig::MatchboxOLPME::oneLoopSinglePole
virtual double oneLoopSinglePole() const
If defined, return the coefficient of the pole in epsilon.
Herwig::MatchboxOLPME::theUseRunningAlphaS
bool theUseRunningAlphaS
Use the running alpha_s instead of the reference alpha_s.
Definition:
MatchboxOLPME.h:312
Herwig::MatchboxOLPME::theSetMuToMuR
bool theSetMuToMuR
Set the value of the dimensional regularization parameter to the value of the renormalization scale.
Definition:
MatchboxOLPME.h:306
Herwig::MatchboxOLPME::canHandle
virtual bool canHandle(const PDVector &p, Ptr< MatchboxFactory >::tptr, bool) const
Return true, if this amplitude can handle the given process.
Herwig::MatchboxOLPME::oneLoopAmplitudes
virtual bool oneLoopAmplitudes() const
Return true, if one-loop contributions will be evaluated at amplitude level.
Definition:
MatchboxOLPME.h:149
Herwig::MatchboxOLPME::spinColourCorrelatedME2
virtual double spinColourCorrelatedME2(pair< int, int > ij, const SpinCorrelationTensor &c) const
Return the colour and spin correlated matrix element.
Herwig::MatchboxOLPME::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::MatchboxOLPME::oneLoopInterference
virtual double oneLoopInterference() const
Return the one-loop/tree interference.
Herwig::MatchboxOLPME::largeNColourCorrelatedME2
virtual double largeNColourCorrelatedME2(pair< int, int >, Ptr< ColourBasis >::tptr) const
Return the large-N colour correlated matrix element.
Herwig::MatchboxOLPME::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::MatchboxOLPME::me2
virtual double me2() const
Return the matrix element squared.
Herwig::MatchboxOLPME::orderInGs
virtual void orderInGs(unsigned int ogs)
Set the (tree-level) order in in which this matrix element should be evaluated.
Definition:
MatchboxOLPME.h:49
Herwig::MatchboxOLPME::setXComb
virtual void setXComb(tStdXCombPtr xc)
Set the xcomb object.
Herwig::MatchboxOLPME::theOrderInGem
unsigned int theOrderInGem
The (tree-level) order in in which this matrix element is given.
Definition:
MatchboxOLPME.h:300
Herwig::MatchboxOLPME::orderInGem
virtual void orderInGem(unsigned int oge)
Set the (tree-level) order in in which this matrix element should be evaluated.
Definition:
MatchboxOLPME.h:61
Herwig::MatchboxOLPME::theOrderInGs
unsigned int theOrderInGs
The (tree-level) order in in which this matrix element is given.
Definition:
MatchboxOLPME.h:294
Herwig::MatchboxOLPME::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::MatchboxOLPME::isExpanded
virtual bool isExpanded() const
Return true, if one loop corrections are given in the conventions of everything expanded.
Definition:
MatchboxOLPME.h:155
Herwig::MatchboxOLPME::prepareAmplitudes
virtual void prepareAmplitudes(Ptr< MatchboxMEBase >::tcptr)
Calculate the tree level amplitudes for the phasespace point stored in lastXComb.
Definition:
MatchboxOLPME.h:94
Herwig::MatchboxOLPME::oneLoopDoublePole
virtual double oneLoopDoublePole() const
If defined, return the coefficient of the pole in epsilon^2.
Herwig::MatchboxOLPME::evalColourCorrelator
virtual void evalColourCorrelator(pair< int, int > ij) const =0
Fill in results for the given colour correlator.
Herwig::MatchboxOLPME::haveColourFlows
virtual bool haveColourFlows() const
Return true, if the colour basis is capable of assigning colour flows.
Definition:
MatchboxOLPME.h:83
Herwig::MatchboxOLPME::didStartOLP
static bool & didStartOLP()
Indicate that the OLP has been started.
Definition:
MatchboxOLPME.h:277
Herwig::MatchboxOLPME::hasRunningAlphaS
virtual bool hasRunningAlphaS() const
Indicate that this amplitude is running alphas by itself.
Herwig::MatchboxOLPME::haveOneLoop
virtual bool haveOneLoop() const
Return true, if this amplitude is capable of calculating one-loop (QCD) corrections.
Definition:
MatchboxOLPME.h:138
Herwig::SpinCorrelationTensor
SpinCorrelationTensor represents a spin correlation tensor of the form.
Definition:
SpinCorrelationTensor.h:28
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::PDVector
vector< PDPtr > PDVector
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6