herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
MatrixElement
Matchbox
InsertionOperators
DipoleMIOperator.h
1
// -*- C++ -*-
2
//
3
// DipoleMIOperator.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_DipoleMIOperator_H
10
#define HERWIG_DipoleMIOperator_H
11
//
12
// This is the declaration of the DipoleMIOperator class.
13
//
14
15
#include "Herwig/MatrixElement/Matchbox/InsertionOperators/MatchboxInsertionOperator.h"
16
#include "Herwig/MatrixElement/Matchbox/Base/MatchboxMEBase.h"
17
18
namespace
Herwig
{
19
20
using namespace
ThePEG
;
21
33
class
DipoleMIOperator
:
public
MatchboxInsertionOperator
{
34
35
public
:
36
42
DipoleMIOperator
();
43
47
virtual
~DipoleMIOperator
();
49
50
public
:
51
56
virtual
void
setXComb
(tStdXCombPtr xc);
57
62
virtual
bool
apply
(
const
cPDVector
&)
const
;
63
68
bool
apply
(
tcPDPtr
)
const
;
69
74
vector<int>
NLightJetVec
()
const
;
75
80
vector<int>
NHeavyJetVec
()
const
;
81
86
vector<int>
NLightBornVec
()
const
;
87
92
vector<int>
NHeavyBornVec
()
const
;
93
98
vector<int>
NLightProtonVec
()
const
;
99
105
virtual
double
me2
()
const
;
106
110
virtual
double
oneLoopDoublePole
()
const
;
111
115
virtual
double
oneLoopSinglePole
()
const
;
116
117
public
:
118
122
template
<
class
T>
123
inline
T
rootOfKallen
(T a, T b, T c)
const
{
124
return
sqrt
( a*a + b*b + c*c - 2.*( a*b+a*c+b*c ) ); }
125
126
public
:
127
134
void
persistentOutput
(
PersistentOStream
& os)
const
;
135
141
void
persistentInput
(
PersistentIStream
& is,
int
version);
143
150
static
void
Init
();
151
152
protected
:
153
160
virtual
IBPtr
clone
()
const
;
161
166
virtual
IBPtr
fullclone
()
const
;
168
169
private
:
170
174
double
CA
;
175
179
double
CF
;
180
184
double
gammaQuark
;
185
189
double
gammaGluon
;
190
208
double
betaZero
;
209
213
double
KQuark
;
214
218
double
KGluon
;
219
220
private
:
221
225
// double Vj(const ParticleData&, const ParticleData&, Energy2, double, bool=false) const;
226
double
Vj
(
const
ParticleData
&,
const
ParticleData
&, Energy2,
double
,
double
,
int
,
bool
=
false
)
const
;
227
231
double
VsDoublePole
(
const
ParticleData
&,
const
ParticleData
&)
const
;
232
236
double
VsSinglePole
(
const
ParticleData
&,
const
ParticleData
&, Energy2)
const
;
237
241
double
GammaQuark
(
const
ParticleData
&)
const
;
242
246
double
GammaGluon
()
const
;
247
251
double
GammaQuarkSinglePole
(
const
ParticleData
&)
const
;
252
256
double
GammaGluonSinglePole
()
const
;
257
258
private
:
259
264
DipoleMIOperator
&
operator=
(
const
DipoleMIOperator
&) =
delete
;
265
266
};
267
268
}
269
270
#endif
/* HERWIG_DipoleMIOperator_H */
Herwig::DipoleMIOperator
DipoleMIOperator implements the I(\epsilon) insertion operator for the massive case....
Definition:
DipoleMIOperator.h:33
Herwig::DipoleMIOperator::gammaGluon
double gammaGluon
\gamma_g
Definition:
DipoleMIOperator.h:189
Herwig::DipoleMIOperator::oneLoopDoublePole
virtual double oneLoopDoublePole() const
If defined, return the coefficient of the pole in epsilon^2.
Herwig::DipoleMIOperator::CA
double CA
C_A.
Definition:
DipoleMIOperator.h:174
Herwig::DipoleMIOperator::apply
virtual bool apply(const cPDVector &) const
Return true, if this virtual correction applies to the given process.
Herwig::DipoleMIOperator::GammaGluon
double GammaGluon() const
\Gamma_g, finite term
Herwig::DipoleMIOperator::setXComb
virtual void setXComb(tStdXCombPtr xc)
Set the XComb object steering the Born matrix element this class represents virtual corrections to.
Herwig::DipoleMIOperator::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::DipoleMIOperator::DipoleMIOperator
DipoleMIOperator()
The default constructor.
Herwig::DipoleMIOperator::oneLoopSinglePole
virtual double oneLoopSinglePole() const
If defined, return the coefficient of the pole in epsilon.
Herwig::DipoleMIOperator::Vj
double Vj(const ParticleData &, const ParticleData &, Energy2, double, double, int, bool=false) const
V_j, non-singular terms.
Herwig::DipoleMIOperator::NLightProtonVec
vector< int > NLightProtonVec() const
Return a vector of PDG codes of the light flavours, which are contained in the proton particle group.
Herwig::DipoleMIOperator::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::DipoleMIOperator::NHeavyJetVec
vector< int > NHeavyJetVec() const
Return a vector of PDG codes of the heavy flavours, which are contained in the jet particle group.
Herwig::DipoleMIOperator::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::DipoleMIOperator::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::DipoleMIOperator::VsDoublePole
double VsDoublePole(const ParticleData &, const ParticleData &) const
V^{(s)}, double pole part in expanded convention.
Herwig::DipoleMIOperator::rootOfKallen
T rootOfKallen(T a, T b, T c) const
Triangular / Kallen function.
Definition:
DipoleMIOperator.h:123
Herwig::DipoleMIOperator::CF
double CF
C_F.
Definition:
DipoleMIOperator.h:179
Herwig::DipoleMIOperator::VsSinglePole
double VsSinglePole(const ParticleData &, const ParticleData &, Energy2) const
V^{(s)}, single pole part in expanded convention.
Herwig::DipoleMIOperator::GammaQuarkSinglePole
double GammaQuarkSinglePole(const ParticleData &) const
\Gamma_q, single pole term
Herwig::DipoleMIOperator::me2
virtual double me2() const
Evaluate the finite virtual correction for the variables supplied through the Born XComb object and p...
Herwig::DipoleMIOperator::betaZero
double betaZero
\beta_0 The Matchbox convention is \beta_0=\gamma_g.
Definition:
DipoleMIOperator.h:208
Herwig::DipoleMIOperator::operator=
DipoleMIOperator & operator=(const DipoleMIOperator &)=delete
The assignment operator is private and must never be called.
Herwig::DipoleMIOperator::gammaQuark
double gammaQuark
\gamma_q
Definition:
DipoleMIOperator.h:184
Herwig::DipoleMIOperator::NHeavyBornVec
vector< int > NHeavyBornVec() const
Return a vector of PDG codes of the heavy flavours, which are contained in the associated Born sub-pr...
Herwig::DipoleMIOperator::KQuark
double KQuark
K_q.
Definition:
DipoleMIOperator.h:213
Herwig::DipoleMIOperator::KGluon
double KGluon
K_g.
Definition:
DipoleMIOperator.h:218
Herwig::DipoleMIOperator::apply
bool apply(tcPDPtr) const
Return true, if contributions exist to the given parton.
Herwig::DipoleMIOperator::NLightBornVec
vector< int > NLightBornVec() const
Return a vector of PDG codes of the light flavours, which are contained in the associated Born sub-pr...
Herwig::DipoleMIOperator::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::DipoleMIOperator::NLightJetVec
vector< int > NLightJetVec() const
Return a vector of PDG codes of the light flavours, which are contained in the jet particle group.
Herwig::DipoleMIOperator::GammaQuark
double GammaQuark(const ParticleData &) const
\Gamma_q, finite term
Herwig::DipoleMIOperator::GammaGluonSinglePole
double GammaGluonSinglePole() const
\Gamma_g, single pole term
Herwig::DipoleMIOperator::~DipoleMIOperator
virtual ~DipoleMIOperator()
The destructor.
Herwig::MatchboxInsertionOperator
MatchboxInsertionOperator is the base class for insertion operators.
Definition:
MatchboxInsertionOperator.h:39
ThePEG::ParticleData
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::sqrt
double sqrt(int x)
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
ThePEG::cPDVector
vector< cPDPtr > cPDVector
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6