herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
MatrixElement
Matchbox
External
GoSam
GoSamAmplitude.h
1
// -*- C++ -*-
2
//
3
// GoSamAmplitude.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_GoSamAmplitude_H
10
#define Herwig_GoSamAmplitude_H
11
//
12
// This is the declaration of the GoSamAmplitude class.
13
//
14
15
#include "Herwig/MatrixElement/Matchbox/Base/MatchboxOLPME.h"
16
#include "ThePEG/Utilities/DynamicLoader.h"
17
18
19
namespace
Herwig
{
20
21
using namespace
ThePEG
;
22
23
24
class
gosamprocinfo
{
25
26
public
:
27
gosamprocinfo
(){};
28
gosamprocinfo
(
int
HID,
int
GID,
string
procstr,
string
typestr):
29
theHOlpId(HID),theGOlpId(GID),theProcstr(procstr),theTypestr(typestr){
30
}
31
~gosamprocinfo
(){}
32
int
HID()
const
{
return
theHOlpId;}
33
int
GID()
const
{
return
theGOlpId;}
34
string
Pstr()
const
{
return
theProcstr;}
35
string
Tstr()
const
{
return
theTypestr;}
36
void
setGID(
int
g){theGOlpId=g;}
37
void
setOAs(
int
i){ orderAlphas=i;}
38
int
orderAs(){
return
orderAlphas;}
39
void
setOAew(
int
j){ orderAlphaew=j;}
40
int
orderAew(){
return
orderAlphaew;}
41
private
:
42
int
theHOlpId;
43
int
theGOlpId;
44
string
theProcstr;
45
string
theTypestr;
46
int
orderAlphas;
47
int
orderAlphaew;
48
public
:
49
void
persistentOutput(
PersistentOStream
& os)
const
{os<<theHOlpId<<theGOlpId<<theProcstr<<theTypestr<<orderAlphas<<orderAlphaew;}
50
void
persistentInput(
PersistentIStream
&is) {is>>theHOlpId>>theGOlpId>>theProcstr>>theTypestr>>orderAlphas>>orderAlphaew;}
51
};
52
53
60
class
GoSamAmplitude
:
public
MatchboxOLPME
{
61
62
public
:
63
67
GoSamAmplitude
();
68
69
public
:
70
71
virtual
void
fillOrderFile(
const
map<pair<Process,int>,
int
>& procs,
string
OrderFileName);
72
73
virtual
bool
isCS
()
const
{
return
false
; }
74
virtual
bool
isExpanded
()
const
{
return
true
; }
75
virtual
bool
isBDK
()
const
{
return
false
; }
76
virtual
bool
isDR
()
const
{
return
isitDR; }
77
virtual
bool
isDRbar
()
const
{
return
false
;}
78
83
virtual
void
signOLP
(
const
string
&,
const
string
&);
84
85
virtual
bool
checkOLPContract(
string
contractFileName);
86
91
// virtual bool hasFinalStateSymmetry() const { return true; }
92
virtual
bool
hasFinalStateSymmetry
()
const
{
return
false
; }
93
94
virtual
bool
buildGoSam();
95
99
virtual
void
startOLP
(
const
string
&,
int
& status);
100
106
// virtual Energy2 mu2() const { return lastSHat(); }
107
112
virtual
bool
startOLP
(
const
map<pair<Process,int>,
int
>& procs);
113
117
void
evalSubProcess
()
const
;
118
122
virtual
void
evalColourCorrelator
(pair<int,int> ij)
const
;
123
129
virtual
LorentzVector<Complex>
plusPolarization
(
const
Lorentz5Momentum& p,
130
const
Lorentz5Momentum& n,
int
inc)
const
;
131
135
virtual
void
evalSpinColourCorrelator
(pair<int,int> ij)
const
;
136
137
void
getids()
const
;
138
139
int
accuracyTargetNegExp()
const
{
return
theAccuracyTarget; }
140
141
public
:
142
145
150
void
persistentOutput
(
PersistentOStream
& os)
const
;
151
157
void
persistentInput
(
PersistentIStream
& is,
int
version);
158
160
167
static
void
Init
();
168
169
170
protected
:
171
174
180
virtual
void
doinit
();
181
186
virtual
void
doinitrun
();
188
189
190
protected
:
191
194
199
virtual
IBPtr
clone
()
const
;
200
205
virtual
IBPtr
fullclone
()
const
;
206
208
209
210
// If needed, insert declarations of virtual function defined in the
211
// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
212
213
214
private
:
215
220
GoSamAmplitude
&
operator=
(
const
GoSamAmplitude
&) =
delete
;
221
225
mutable
vector<double>
colourCorrelatorResults
;
226
230
mutable
vector<double>
spinColourCorrelatorResults
;
231
235
mutable
vector<int>
idpair
;
236
240
mutable
vector<string>
idtypepair
;
241
245
map<int , gosamprocinfo >
processmap
;
246
247
mutable
string
gosamPathInterface;
248
mutable
string
gosamSetupInFileNameInterface;
249
mutable
string
gosamBuildScript;
250
251
mutable
string
gosamPath;
252
mutable
string
gosamSourcePath;
253
mutable
string
gosamInstallPath;
254
255
mutable
string
gosamSetupInFileName;
256
257
mutable
string
orderFileTitle;
258
mutable
string
contractFileTitle;
259
mutable
string
contractFileName;
260
mutable
string
orderFileName;
261
262
mutable
string
accuracyFileTitle;
263
mutable
string
accuracyFile;
264
int
theAccuracyTarget;
265
266
bool
theCodeExists;
267
bool
theFormOpt;
268
bool
theNinja;
269
bool
theHiggsEff;
270
bool
theMassiveLeptons;
271
272
int
theLoopInducedOption;
273
274
bool
isitDR;
275
276
mutable
bool
doneGoSamInit;
277
mutable
bool
doneGoSamInitRun;
278
282
vector<int>
massiveParticles
;
//theMassiveParticles;
283
287
void
setupGoSamIn
(
string
setupGoSamInFile);
288
289
protected
:
290
294
string
bindir_
;
295
299
string
pkgdatadir_
;
300
304
string
GoSamPrefix_
;
305
306
};
// end "class GoSamAmplitude: public MatchboxOLPME"
307
308
inline
PersistentOStream
&
operator<<
(
PersistentOStream
& os,
const
gosamprocinfo
& p) {
309
p.persistentOutput(os);
return
os;
310
}
311
312
inline
PersistentIStream
&
operator>>
(
PersistentIStream
& is, gosamprocinfo& p) {
313
p.persistentInput(is);
return
is;
314
}
315
316
}
// end "namespace Herwig"
317
318
#endif
/* Herwig_GoSamAmplitude_H */
Herwig::GoSamAmplitude
GoSamAmplitude implements an interface to GoSam.
Definition:
GoSamAmplitude.h:60
Herwig::GoSamAmplitude::GoSamPrefix_
string GoSamPrefix_
Location of GOSAM.
Definition:
GoSamAmplitude.h:304
Herwig::GoSamAmplitude::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::GoSamAmplitude::idpair
vector< int > idpair
first is the olp id from herwig, second the answer from gosam
Definition:
GoSamAmplitude.h:235
Herwig::GoSamAmplitude::processmap
map< int, gosamprocinfo > processmap
Map to store all processes handled by this Amplitude.
Definition:
GoSamAmplitude.h:245
Herwig::GoSamAmplitude::idtypepair
vector< string > idtypepair
first is the olp id from herwig, second the amplitude type
Definition:
GoSamAmplitude.h:240
Herwig::GoSamAmplitude::signOLP
virtual void signOLP(const string &, const string &)
Start the one loop provider, if appropriate, giving order and contract files.
Herwig::GoSamAmplitude::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::GoSamAmplitude::isDR
virtual bool isDR() const
Return true, if one loop corrections have been calculated in dimensional reduction.
Definition:
GoSamAmplitude.h:76
Herwig::GoSamAmplitude::spinColourCorrelatorResults
vector< double > spinColourCorrelatorResults
Store spin colour correlator results.
Definition:
GoSamAmplitude.h:230
Herwig::GoSamAmplitude::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::GoSamAmplitude::hasFinalStateSymmetry
virtual bool hasFinalStateSymmetry() const
Return true, if this amplitude already includes symmetry factors for identical outgoing particles.
Definition:
GoSamAmplitude.h:92
Herwig::GoSamAmplitude::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::GoSamAmplitude::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Herwig::GoSamAmplitude::startOLP
virtual bool startOLP(const map< pair< Process, int >, int > &procs)
Return the value of the dimensional regularization parameter.
Herwig::GoSamAmplitude::GoSamAmplitude
GoSamAmplitude()
The default constructor.
Herwig::GoSamAmplitude::evalColourCorrelator
virtual void evalColourCorrelator(pair< int, int > ij) const
Fill in results for the given colour correlator.
Herwig::GoSamAmplitude::setupGoSamIn
void setupGoSamIn(string setupGoSamInFile)
Method to create the setup.in file for GoSam.
Herwig::GoSamAmplitude::isDRbar
virtual bool isDRbar() const
Return true, if the amplitude is DRbar renormalized, otherwise MSbar is assumed.
Definition:
GoSamAmplitude.h:77
Herwig::GoSamAmplitude::operator=
GoSamAmplitude & operator=(const GoSamAmplitude &)=delete
The assignment operator is private and must never be called.
Herwig::GoSamAmplitude::evalSubProcess
void evalSubProcess() const
Call OLP_EvalSubProcess and fill in the results.
Herwig::GoSamAmplitude::pkgdatadir_
string pkgdatadir_
Location of the data files.
Definition:
GoSamAmplitude.h:299
Herwig::GoSamAmplitude::isExpanded
virtual bool isExpanded() const
Return true, if one loop corrections are given in the conventions of everything expanded.
Definition:
GoSamAmplitude.h:74
Herwig::GoSamAmplitude::evalSpinColourCorrelator
virtual void evalSpinColourCorrelator(pair< int, int > ij) const
Fill in results for the given colour/spin correlator.
Herwig::GoSamAmplitude::isBDK
virtual bool isBDK() const
Return true, if one loop corrections are given in the conventions of BDK.
Definition:
GoSamAmplitude.h:75
Herwig::GoSamAmplitude::startOLP
virtual void startOLP(const string &, int &status)
Start the one loop provider, if appropriate.
Herwig::GoSamAmplitude::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::GoSamAmplitude::doinitrun
virtual void doinitrun()
Initialize this object.
Herwig::GoSamAmplitude::bindir_
string bindir_
Location of the installed executables.
Definition:
GoSamAmplitude.h:294
Herwig::GoSamAmplitude::isCS
virtual bool isCS() const
Return true, if one loop corrections are given in the conventions of the integrated dipoles.
Definition:
GoSamAmplitude.h:73
Herwig::GoSamAmplitude::massiveParticles
vector< int > massiveParticles
The PDG codes of those quarks with mass.
Definition:
GoSamAmplitude.h:282
Herwig::GoSamAmplitude::plusPolarization
virtual LorentzVector< Complex > plusPolarization(const Lorentz5Momentum &p, const Lorentz5Momentum &n, int inc) const
Return a positive helicity polarization vector for a gluon of momentum p (with reference vector n) to...
Herwig::GoSamAmplitude::colourCorrelatorResults
vector< double > colourCorrelatorResults
Store colour correlator results.
Definition:
GoSamAmplitude.h:225
Herwig::MatchboxOLPME
MatchboxOLPME implements OLP interfaces.
Definition:
MatchboxOLPME.h:27
Herwig::gosamprocinfo
Definition:
GoSamAmplitude.h:24
ThePEG::LorentzVector
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::operator>>
PersistentIStream & operator>>(PersistentIStream &is, HandlerGroup< HDLR > &hg)
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::operator<<
ostream & operator<<(ostream &, const Collision &)
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6