herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
MatrixElement
Matchbox
InsertionOperators
MatchboxInsertionOperator.h
1
// -*- C++ -*-
2
//
3
// MatchboxInsertionOperator.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_MatchboxInsertionOperator_H
10
#define HERWIG_MatchboxInsertionOperator_H
11
//
12
// This is the declaration of the MatchboxInsertionOperator class.
13
//
14
15
#include "ThePEG/Handlers/HandlerBase.h"
16
#include "ThePEG/Handlers/StandardXComb.h"
17
#include "ThePEG/Handlers/LastXCombInfo.h"
18
#include "Herwig/MatrixElement/Matchbox/InsertionOperators/MatchboxInsertionOperator.fh"
19
#include "Herwig/MatrixElement/Matchbox/Utility/LastMatchboxXCombInfo.h"
20
#include "Herwig/MatrixElement/Matchbox/Base/MatchboxMEBase.fh"
21
#include "Herwig/MatrixElement/Matchbox/MatchboxFactory.fh"
22
23
namespace
Herwig
{
24
25
using namespace
ThePEG
;
26
36
class
MatchboxInsertionOperator
:
37
public
HandlerBase
,
38
public
LastXCombInfo
<StandardXComb>,
39
public
LastMatchboxXCombInfo
{
40
41
public
:
42
48
MatchboxInsertionOperator
();
49
53
virtual
~
MatchboxInsertionOperator
();
55
56
public
:
57
61
Ptr<MatchboxFactory>::tptr factory()
const
;
62
65
70
virtual
bool
apply(
const
cPDVector
&)
const
= 0;
71
76
Ptr<MatchboxMEBase>::tptr lastBorn()
const
;
77
82
virtual
void
setXComb
(tStdXCombPtr xc) {
83
theLastXComb = xc;
84
lastMatchboxXComb(xc);
85
}
86
87
91
virtual
void
setAlpha
(
double
)
const
{assert(
false
);}
92
93
94
99
virtual
int
nDimAdditional
()
const
{
return
0; }
100
102
105
106
111
virtual
bool
isDRbar()
const
;
117
virtual
bool
isDR()
const
;
122
virtual
bool
isCS()
const
;
127
virtual
bool
isBDK()
const
;
132
virtual
bool
isExpanded()
const
;
136
virtual
double
oneLoopDoublePole
()
const
{
return
0.; }
137
141
virtual
double
oneLoopSinglePole
()
const
{
return
0.; }
142
144
147
153
virtual
double
me2()
const
= 0;
154
160
virtual
CrossSection dSigHatDR()
const
;
161
162
167
virtual
CrossSection
dSigHatDRAlphaDiff
(
double
alpha)
const
{
168
setAlpha(alpha);
169
CrossSection res=dSigHatDR();
170
setAlpha(1.);
171
return
res-dSigHatDR();
172
}
173
175
178
184
virtual
void
flushCaches
() {}
185
189
Ptr<MatchboxInsertionOperator>::ptr
cloneMe
()
const
{
190
return
dynamic_ptr_cast<Ptr<MatchboxInsertionOperator>::ptr>(clone());
191
}
192
196
virtual
void
cloneDependencies(
const
std::string& prefix =
""
);
197
199
200
public
:
201
208
void
persistentOutput(
PersistentOStream
& os)
const
;
209
215
void
persistentInput(
PersistentIStream
& is,
int
version);
217
224
static
void
Init();
225
226
227
// If needed, insert declarations of virtual function defined in the
228
// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
229
230
private
:
231
236
MatchboxInsertionOperator
& operator=(
const
MatchboxInsertionOperator
&) =
delete
;
237
238
};
239
240
}
241
242
#endif
/* HERWIG_MatchboxInsertionOperator_H */
ThePEG::PersistentIStream
Herwig::MatchboxInsertionOperator::nDimAdditional
virtual int nDimAdditional() const
Return the number of additional random variables needed to calculate this virtual correction...
Definition:
MatchboxInsertionOperator.h:99
Herwig::MatchboxInsertionOperator::cloneMe
Ptr< MatchboxInsertionOperator >::ptr cloneMe() const
Clone this insertion operator.
Definition:
MatchboxInsertionOperator.h:189
Herwig::MatchboxInsertionOperator::oneLoopSinglePole
virtual double oneLoopSinglePole() const
If defined, return the coefficient of the pole in epsilon.
Definition:
MatchboxInsertionOperator.h:141
ThePEG::PersistentOStream
ThePEG::LastXCombInfo
Herwig::MatchboxInsertionOperator::flushCaches
virtual void flushCaches()
Inform this matrix element that a new phase space point is about to be generated, so all caches shoul...
Definition:
MatchboxInsertionOperator.h:184
Herwig::MatchboxInsertionOperator::setXComb
virtual void setXComb(tStdXCombPtr xc)
Set the XComb object steering the Born matrix element this class represents virtual corrections to...
Definition:
MatchboxInsertionOperator.h:82
Herwig::MatchboxInsertionOperator::oneLoopDoublePole
virtual double oneLoopDoublePole() const
If defined, return the coefficient of the pole in epsilon^2.
Definition:
MatchboxInsertionOperator.h:136
ThePEG
Herwig::LastMatchboxXCombInfo
Provide easy access to MatchboxXComb XComb extensions.
Definition:
LastMatchboxXCombInfo.h:27
ThePEG::cPDVector
vector< cPDPtr > cPDVector
Herwig::MatchboxInsertionOperator
MatchboxInsertionOperator is the base class for insertion operators.
Definition:
MatchboxInsertionOperator.h:36
ThePEG::HandlerBase
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::MatchboxInsertionOperator::setAlpha
virtual void setAlpha(double) const
Set parameters for new alpha parameter.
Definition:
MatchboxInsertionOperator.h:91
Herwig::MatchboxInsertionOperator::dSigHatDRAlphaDiff
virtual CrossSection dSigHatDRAlphaDiff(double alpha) const
Evaluate the difference of dSigHatDR with and without alpha parameter.
Definition:
MatchboxInsertionOperator.h:167
Generated on Sat Apr 11 2020 14:50:30 for Herwig by
1.8.13