herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
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
#include "Herwig/Models/StandardModel/StandardCKM.h"
17
18
namespace
Herwig
{
19
20
using namespace
ThePEG
;
21
28
class
OpenLoopsProcInfo
{
29
30
public
:
31
35
OpenLoopsProcInfo
() {}
36
40
OpenLoopsProcInfo
(
int
HID
,
int
GID
,
string
procstr,
string
typestr)
41
:
theHOlpId
(
HID
),
theGOlpId
(
GID
),
theProcstr
(procstr),
theTypestr
(typestr) {}
42
46
int
HID
()
const
{
return
theHOlpId
; }
47
51
int
GID
()
const
{
return
theGOlpId
; }
52
56
const
string
&
Pstr
()
const
{
return
theProcstr
; }
57
61
const
string
&
Tstr
()
const
{
return
theTypestr
; }
62
66
void
setGID
(
int
g) {
theGOlpId
=g; }
67
71
void
setOAs
(
int
i) {
orderAlphas
=i; }
72
76
int
orderAs
() {
return
orderAlphas
; }
77
78
private
:
79
83
int
theHOlpId
;
84
88
int
theGOlpId
;
89
93
string
theProcstr
;
94
98
string
theTypestr
;
99
103
int
orderAlphas
;
104
105
public
:
106
110
void
persistentOutput
(
PersistentOStream
& os)
const
{
111
os <<
theHOlpId
<<
theGOlpId
<<
theProcstr
<<
theTypestr
<<
orderAlphas
;
112
}
113
117
void
persistentInput
(
PersistentIStream
&is) {
118
is >>
theHOlpId
>>
theGOlpId
>>
theProcstr
>>
theTypestr
>>
orderAlphas
;
119
}
120
121
};
122
129
class
OpenLoopsAmplitude
:
public
MatchboxOLPME
{
130
131
public
:
132
138
OpenLoopsAmplitude
();
139
143
virtual
~OpenLoopsAmplitude
();
145
146
public
:
147
148
virtual
void
fillOrderFile(
const
map<pair<Process,int>,
int
>& procs);
149
150
151
virtual
bool
isCS
()
const
{
return
false
; }
152
virtual
bool
isExpanded
()
const
{
return
true
; }
153
virtual
bool
isBDK
()
const
{
return
false
; }
154
//virtual bool isDR() const { return true; }
160
virtual
bool
checkOLPContract
();
161
165
virtual
void
startOLP
(
const
string
&,
int
& status);
166
172
// virtual Energy2 mu2() const { return lastSHat(); }
173
178
virtual
bool
startOLP
(
const
map<pair<Process,int>,
int
>& procs);
179
180
185
virtual
bool
hasInitialAverage
()
const
{
return
true
; }
186
191
virtual
bool
hasFinalStateSymmetry
()
const
{
return
true
; }
192
196
void
evalSubProcess
()
const
;
197
201
virtual
void
evalColourCorrelator
(pair<int,int> ij)
const
;
202
203
207
virtual
void
evalSpinColourCorrelator
(pair<int,int> ij)
const
;
208
209
213
virtual
double
spinColourCorrelatedME2
(pair<int,int> ij,
214
const
SpinCorrelationTensor
& c)
const
;
215
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
protected
:
244
251
virtual
IBPtr
clone
()
const
;
252
257
virtual
IBPtr
fullclone
()
const
;
259
260
virtual
void
doinitrun
();
261
262
263
// If needed, insert declarations of virtual function defined in the
264
// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
265
266
267
private
:
268
273
OpenLoopsAmplitude
&
operator=
(
const
OpenLoopsAmplitude
&) =
delete
;
274
278
mutable
vector<double>
colourCorrelatorResults
;
279
283
mutable
vector<double>
spinColourCorrelatorResults
;
284
285
289
static
vector< int >
idpair
;
290
291
296
map<int , OpenLoopsProcInfo >
processmap
;
297
298
302
bool
theHiggsEff
;
303
308
bool
use_cms
;
309
310
314
bool
theCollierLib
=
true
;
315
321
int
psp_tolerance
;
322
327
bool
theDiagonal
;
328
329
333
static
string
OpenLoopsLibs_
;
334
338
static
string
OpenLoopsPrefix_
;
339
340
345
void
setOpenLoopsLibs
(
string
p);
346
string
getOpenLoopsLibs()
const
;
347
348
void
setOpenLoopsPrefix(
string
p);
349
string
getOpenLoopsPrefix()
const
;
350
351
352
353
354
};
355
356
}
357
358
#endif
/* Herwig_OpenLoopsAmplitude_H */
Herwig::MatchboxOLPME
MatchboxOLPME implements OLP interfaces.
Definition:
MatchboxOLPME.h:27
Herwig::OpenLoopsAmplitude
OpenLoopsAmplitude implements an interface to OpenLoops.
Definition:
OpenLoopsAmplitude.h:129
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:151
Herwig::OpenLoopsAmplitude::startOLP
virtual bool startOLP(const map< pair< Process, int >, int > &procs)
Return the value of the dimensional regularization parameter.
Herwig::OpenLoopsAmplitude::spinColourCorrelatedME2
virtual double spinColourCorrelatedME2(pair< int, int > ij, const SpinCorrelationTensor &c) const
Return the colour and spin correlated matrix element.
Herwig::OpenLoopsAmplitude::spinColourCorrelatorResults
vector< double > spinColourCorrelatorResults
Store spin colour correlator results.
Definition:
OpenLoopsAmplitude.h:283
Herwig::OpenLoopsAmplitude::OpenLoopsPrefix_
static string OpenLoopsPrefix_
Location of the OpenLoops.
Definition:
OpenLoopsAmplitude.h:338
Herwig::OpenLoopsAmplitude::psp_tolerance
int psp_tolerance
parameter to set Phase space tolerance for massiv particles.
Definition:
OpenLoopsAmplitude.h:321
Herwig::OpenLoopsAmplitude::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::OpenLoopsAmplitude::hasInitialAverage
virtual bool hasInitialAverage() const
Return true, if this amplitude already includes averaging over incoming parton's quantum numbers.
Definition:
OpenLoopsAmplitude.h:185
Herwig::OpenLoopsAmplitude::setOpenLoopsLibs
void setOpenLoopsLibs(string p)
Helper functions to make long strings static.
Herwig::OpenLoopsAmplitude::checkOLPContract
virtual bool checkOLPContract()
Start the one loop provider, if appropriate, giving order and contract files.
Herwig::OpenLoopsAmplitude::operator=
OpenLoopsAmplitude & operator=(const OpenLoopsAmplitude &)=delete
The assignment operator is private and must never be called.
Herwig::OpenLoopsAmplitude::evalColourCorrelator
virtual void evalColourCorrelator(pair< int, int > ij) const
Fill in results for the given colour correlator.
Herwig::OpenLoopsAmplitude::startOLP
virtual void startOLP(const string &, int &status)
Start the one loop provider, if appropriate.
Herwig::OpenLoopsAmplitude::evalSpinColourCorrelator
virtual void evalSpinColourCorrelator(pair< int, int > ij) const
Fill in results for the given colour/spin correlator.
Herwig::OpenLoopsAmplitude::idpair
static vector< int > idpair
first is the olp id from herwig, second the answer from openloops
Definition:
OpenLoopsAmplitude.h:289
Herwig::OpenLoopsAmplitude::processmap
map< int, OpenLoopsProcInfo > processmap
Helper map to store information in different procs.
Definition:
OpenLoopsAmplitude.h:296
Herwig::OpenLoopsAmplitude::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::OpenLoopsAmplitude::theHiggsEff
bool theHiggsEff
Interface for Higgs Effective.
Definition:
OpenLoopsAmplitude.h:302
Herwig::OpenLoopsAmplitude::colourCorrelatorResults
vector< double > colourCorrelatorResults
Store colour correlator results.
Definition:
OpenLoopsAmplitude.h:278
Herwig::OpenLoopsAmplitude::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::OpenLoopsAmplitude::evalSubProcess
void evalSubProcess() const
Call OLP_EvalSubProcess and fill in the results.
Herwig::OpenLoopsAmplitude::hasFinalStateSymmetry
virtual bool hasFinalStateSymmetry() const
Return true, if this amplitude already includes symmetry factors for identical outgoing particles.
Definition:
OpenLoopsAmplitude.h:191
Herwig::OpenLoopsAmplitude::isBDK
virtual bool isBDK() const
Return true, if one loop corrections are given in the conventions of BDK.
Definition:
OpenLoopsAmplitude.h:153
Herwig::OpenLoopsAmplitude::doinitrun
virtual void doinitrun()
Initialize this object.
Herwig::OpenLoopsAmplitude::use_cms
bool use_cms
Complex Mass Scheme.
Definition:
OpenLoopsAmplitude.h:308
Herwig::OpenLoopsAmplitude::isExpanded
virtual bool isExpanded() const
Return true, if one loop corrections are given in the conventions of everything expanded.
Definition:
OpenLoopsAmplitude.h:152
Herwig::OpenLoopsAmplitude::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::OpenLoopsAmplitude::OpenLoopsLibs_
static string OpenLoopsLibs_
Location of the OpenLoops libraries.
Definition:
OpenLoopsAmplitude.h:333
Herwig::OpenLoopsAmplitude::theDiagonal
bool theDiagonal
True, if a diagonal CKM matrix should be assumed.
Definition:
OpenLoopsAmplitude.h:327
Herwig::OpenLoopsAmplitude::~OpenLoopsAmplitude
virtual ~OpenLoopsAmplitude()
The destructor.
Herwig::OpenLoopsAmplitude::theCollierLib
bool theCollierLib
Use of Collier Lib (arXiv:1604.06792), available since OpenLoops 1.3.0.
Definition:
OpenLoopsAmplitude.h:314
Herwig::OpenLoopsAmplitude::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::OpenLoopsAmplitude::OpenLoopsAmplitude
OpenLoopsAmplitude()
The default constructor.
Herwig::OpenLoopsProcInfo
Process information for OpenLoops.
Definition:
OpenLoopsAmplitude.h:28
Herwig::OpenLoopsProcInfo::GID
int GID() const
Document me.
Definition:
OpenLoopsAmplitude.h:51
Herwig::OpenLoopsProcInfo::Pstr
const string & Pstr() const
Document me.
Definition:
OpenLoopsAmplitude.h:56
Herwig::OpenLoopsProcInfo::orderAs
int orderAs()
Document me.
Definition:
OpenLoopsAmplitude.h:76
Herwig::OpenLoopsProcInfo::OpenLoopsProcInfo
OpenLoopsProcInfo(int HID, int GID, string procstr, string typestr)
Construct giving data.
Definition:
OpenLoopsAmplitude.h:40
Herwig::OpenLoopsProcInfo::setGID
void setGID(int g)
Document me.
Definition:
OpenLoopsAmplitude.h:66
Herwig::OpenLoopsProcInfo::theGOlpId
int theGOlpId
Document me.
Definition:
OpenLoopsAmplitude.h:88
Herwig::OpenLoopsProcInfo::HID
int HID() const
Document me.
Definition:
OpenLoopsAmplitude.h:46
Herwig::OpenLoopsProcInfo::theProcstr
string theProcstr
Document me.
Definition:
OpenLoopsAmplitude.h:93
Herwig::OpenLoopsProcInfo::persistentOutput
void persistentOutput(PersistentOStream &os) const
Write to persistent stream.
Definition:
OpenLoopsAmplitude.h:110
Herwig::OpenLoopsProcInfo::OpenLoopsProcInfo
OpenLoopsProcInfo()
Default constructor.
Definition:
OpenLoopsAmplitude.h:35
Herwig::OpenLoopsProcInfo::setOAs
void setOAs(int i)
Document me.
Definition:
OpenLoopsAmplitude.h:71
Herwig::OpenLoopsProcInfo::theHOlpId
int theHOlpId
Document me.
Definition:
OpenLoopsAmplitude.h:83
Herwig::OpenLoopsProcInfo::theTypestr
string theTypestr
Document me.
Definition:
OpenLoopsAmplitude.h:98
Herwig::OpenLoopsProcInfo::Tstr
const string & Tstr() const
Document me.
Definition:
OpenLoopsAmplitude.h:61
Herwig::OpenLoopsProcInfo::orderAlphas
int orderAlphas
Document me.
Definition:
OpenLoopsAmplitude.h:103
Herwig::OpenLoopsProcInfo::persistentInput
void persistentInput(PersistentIStream &is)
Read from persistent stream.
Definition:
OpenLoopsAmplitude.h:117
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::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6