herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
MatrixElement
Matchbox
External
OpenLoops
OpenLoopsAmplitude.h
1
// -*- C++ -*-
2
//
3
// OpenLoopsAmplitude.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_OpenLoopsAmplitude_H
10
#define Herwig_OpenLoopsAmplitude_H
11
//
12
// This is the declaration of the OpenLoopsAmplitude class.
13
//
14
15
#include "Herwig/MatrixElement/Matchbox/Base/MatchboxOLPME.h"
16
17
namespace
Herwig
{
18
19
using namespace
ThePEG
;
20
27
class
OpenLoopsProcInfo
{
28
29
public
:
30
34
OpenLoopsProcInfo
() {}
35
39
OpenLoopsProcInfo
(
int
HID,
int
GID,
string
procstr,
string
typestr)
40
: theHOlpId(HID), theGOlpId(GID), theProcstr(procstr), theTypestr(typestr) {}
41
45
int
HID
()
const
{
return
theHOlpId; }
46
50
int
GID
()
const
{
return
theGOlpId; }
51
55
const
string
&
Pstr
()
const
{
return
theProcstr; }
56
60
const
string
&
Tstr
()
const
{
return
theTypestr; }
61
65
void
setGID
(
int
g) { theGOlpId=g; }
66
70
void
setOAs
(
int
i) { orderAlphas=i; }
71
75
int
orderAs
() {
return
orderAlphas; }
76
77
private
:
78
82
int
theHOlpId
;
83
87
int
theGOlpId
;
88
92
string
theProcstr
;
93
97
string
theTypestr
;
98
102
int
orderAlphas
;
103
104
public
:
105
109
void
persistentOutput
(
PersistentOStream
& os)
const
{
110
os << theHOlpId << theGOlpId << theProcstr << theTypestr << orderAlphas;
111
}
112
116
void
persistentInput
(
PersistentIStream
&is) {
117
is >> theHOlpId >> theGOlpId >> theProcstr >> theTypestr >> orderAlphas;
118
}
119
120
};
121
128
class
OpenLoopsAmplitude
:
public
MatchboxOLPME
{
129
130
public
:
131
137
OpenLoopsAmplitude
();
138
142
virtual
~
OpenLoopsAmplitude
();
144
145
public
:
146
147
virtual
void
fillOrderFile(
const
map<pair<Process,int>,
int
>& procs);
148
149
150
virtual
bool
isCS
()
const
{
return
false
; }
151
virtual
bool
isExpanded
()
const
{
return
true
; }
152
virtual
bool
isBDK
()
const
{
return
false
; }
153
//virtual bool isDR() const { return true; }
159
virtual
bool
checkOLPContract();
160
164
virtual
void
startOLP(
const
string
&,
int
& status);
165
171
// virtual Energy2 mu2() const { return lastSHat(); }
172
177
virtual
bool
startOLP(
const
map<pair<Process,int>,
int
>& procs);
178
179
184
virtual
bool
hasInitialAverage
()
const
{
return
true
; }
185
190
virtual
bool
hasFinalStateSymmetry
()
const
{
return
true
; }
191
195
void
evalSubProcess()
const
;
196
200
virtual
void
evalColourCorrelator(pair<int,int> ij)
const
;
201
202
206
virtual
void
evalSpinColourCorrelator(pair<int,int> ij)
const
;
207
208
212
virtual
double
spinColourCorrelatedME2(pair<int,int> ij,
213
const
SpinCorrelationTensor
& c)
const
;
214
215
216
public
:
217
224
void
persistentOutput(
PersistentOStream
& os)
const
;
225
231
void
persistentInput(
PersistentIStream
& is,
int
version);
233
240
static
void
Init();
241
242
protected
:
243
250
virtual
IBPtr
clone()
const
;
251
256
virtual
IBPtr
fullclone()
const
;
258
259
virtual
void
doinitrun();
260
261
262
// If needed, insert declarations of virtual function defined in the
263
// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
264
265
266
private
:
267
272
OpenLoopsAmplitude
& operator=(
const
OpenLoopsAmplitude
&) =
delete
;
273
277
mutable
vector<double>
colourCorrelatorResults
;
278
282
mutable
vector<double>
spinColourCorrelatorResults
;
283
284
288
static
vector< int >
idpair
;
289
290
295
map<int , OpenLoopsProcInfo >
processmap
;
296
297
301
bool
theHiggsEff
;
302
307
bool
use_cms
;
308
309
313
bool
theCollierLib=
true
;
314
320
int
psp_tolerance
;
321
325
static
string
OpenLoopsLibs_
;
326
330
static
string
OpenLoopsPrefix_
;
331
332
337
void
setOpenLoopsLibs(
string
p);
338
string
getOpenLoopsLibs()
const
;
339
340
void
setOpenLoopsPrefix(
string
p);
341
string
getOpenLoopsPrefix()
const
;
342
343
344
345
346
};
347
348
}
349
350
#endif
/* Herwig_OpenLoopsAmplitude_H */
Herwig::OpenLoopsProcInfo::HID
int HID() const
Document me.
Definition:
OpenLoopsAmplitude.h:45
ThePEG::PersistentIStream
Herwig::OpenLoopsProcInfo::persistentInput
void persistentInput(PersistentIStream &is)
Read from persistent stream.
Definition:
OpenLoopsAmplitude.h:116
Herwig::OpenLoopsProcInfo::Tstr
const string & Tstr() const
Document me.
Definition:
OpenLoopsAmplitude.h:60
Herwig::OpenLoopsProcInfo::GID
int GID() const
Document me.
Definition:
OpenLoopsAmplitude.h:50
ThePEG::PersistentOStream
Herwig::OpenLoopsProcInfo::theTypestr
string theTypestr
Document me.
Definition:
OpenLoopsAmplitude.h:97
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Herwig::OpenLoopsProcInfo::theHOlpId
int theHOlpId
Document me.
Definition:
OpenLoopsAmplitude.h:82
Herwig::OpenLoopsAmplitude::isCS
virtual bool isCS() const
Return true, if one loop corrections are given in the conventions of the integrated dipoles...
Definition:
OpenLoopsAmplitude.h:150
Herwig::OpenLoopsAmplitude::isExpanded
virtual bool isExpanded() const
Return true, if one loop corrections are given in the conventions of everything expanded.
Definition:
OpenLoopsAmplitude.h:151
Herwig::OpenLoopsAmplitude::psp_tolerance
int psp_tolerance
parameter to set Phase space tolerance for massiv particles.
Definition:
OpenLoopsAmplitude.h:320
Herwig::OpenLoopsProcInfo::setGID
void setGID(int g)
Document me.
Definition:
OpenLoopsAmplitude.h:65
Herwig::OpenLoopsProcInfo::orderAs
int orderAs()
Document me.
Definition:
OpenLoopsAmplitude.h:75
ThePEG
Herwig::OpenLoopsProcInfo::Pstr
const string & Pstr() const
Document me.
Definition:
OpenLoopsAmplitude.h:55
Herwig::OpenLoopsAmplitude::idpair
static vector< int > idpair
first is the olp id from herwig, second the answer from openloops
Definition:
OpenLoopsAmplitude.h:288
Herwig::OpenLoopsProcInfo::OpenLoopsProcInfo
OpenLoopsProcInfo()
Default constructor.
Definition:
OpenLoopsAmplitude.h:34
Herwig::OpenLoopsAmplitude::theHiggsEff
bool theHiggsEff
Interface for Higgs Effective.
Definition:
OpenLoopsAmplitude.h:301
Herwig::OpenLoopsAmplitude::processmap
map< int, OpenLoopsProcInfo > processmap
Helper map to store information in different procs.
Definition:
OpenLoopsAmplitude.h:295
Herwig::OpenLoopsAmplitude::hasFinalStateSymmetry
virtual bool hasFinalStateSymmetry() const
Return true, if this amplitude already includes symmetry factors for identical outgoing particles...
Definition:
OpenLoopsAmplitude.h:190
Herwig::OpenLoopsAmplitude::OpenLoopsPrefix_
static string OpenLoopsPrefix_
Location of the OpenLoops.
Definition:
OpenLoopsAmplitude.h:330
Herwig::OpenLoopsProcInfo::theProcstr
string theProcstr
Document me.
Definition:
OpenLoopsAmplitude.h:92
Herwig::OpenLoopsProcInfo::theGOlpId
int theGOlpId
Document me.
Definition:
OpenLoopsAmplitude.h:87
Herwig::OpenLoopsProcInfo::orderAlphas
int orderAlphas
Document me.
Definition:
OpenLoopsAmplitude.h:102
Herwig::OpenLoopsProcInfo::setOAs
void setOAs(int i)
Document me.
Definition:
OpenLoopsAmplitude.h:70
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::OpenLoopsAmplitude::use_cms
bool use_cms
Complex Mass Scheme.
Definition:
OpenLoopsAmplitude.h:307
Herwig::OpenLoopsProcInfo::persistentOutput
void persistentOutput(PersistentOStream &os) const
Write to persistent stream.
Definition:
OpenLoopsAmplitude.h:109
Herwig::OpenLoopsAmplitude::isBDK
virtual bool isBDK() const
Return true, if one loop corrections are given in the conventions of BDK.
Definition:
OpenLoopsAmplitude.h:152
Herwig::OpenLoopsProcInfo::OpenLoopsProcInfo
OpenLoopsProcInfo(int HID, int GID, string procstr, string typestr)
Construct giving data.
Definition:
OpenLoopsAmplitude.h:39
Herwig::MatchboxOLPME
MatchboxOLPME implements OLP interfaces.
Definition:
MatchboxOLPME.h:27
Herwig::OpenLoopsProcInfo
Process information for OpenLoops.
Definition:
OpenLoopsAmplitude.h:27
Herwig::OpenLoopsAmplitude::OpenLoopsLibs_
static string OpenLoopsLibs_
Location of the OpenLoops libraries.
Definition:
OpenLoopsAmplitude.h:325
Herwig::OpenLoopsAmplitude::hasInitialAverage
virtual bool hasInitialAverage() const
Return true, if this amplitude already includes averaging over incoming parton's quantum numbers...
Definition:
OpenLoopsAmplitude.h:184
Herwig::OpenLoopsAmplitude::spinColourCorrelatorResults
vector< double > spinColourCorrelatorResults
Store spin colour correlator results.
Definition:
OpenLoopsAmplitude.h:282
Herwig::SpinCorrelationTensor
SpinCorrelationTensor represents a spin correlation tensor of the form.
Definition:
SpinCorrelationTensor.h:28
Herwig::OpenLoopsAmplitude
OpenLoopsAmplitude implements an interface to OpenLoops.
Definition:
OpenLoopsAmplitude.h:128
Herwig::OpenLoopsAmplitude::colourCorrelatorResults
vector< double > colourCorrelatorResults
Store colour correlator results.
Definition:
OpenLoopsAmplitude.h:277
Generated on Sat Apr 11 2020 14:50:31 for Herwig by
1.8.13