herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
VBFNLOAmplitude.h
1// -*- C++ -*-
2//
3// VBFNLOAmplitude.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_VBFNLOAmplitude_H
10#define Herwig_VBFNLOAmplitude_H
11//
12// This is the declaration of the VBFNLOAmplitude class.
13//
14
15#include "Herwig/MatrixElement/Matchbox/Base/MatchboxOLPME.h"
16
17namespace Herwig {
18
19using namespace ThePEG;
20
28
29public:
30
37
43
44public:
45
50 virtual bool hasInitialAverage() const { return false; }
51
56 virtual bool hasFinalStateSymmetry() const { return false; }
57
61 virtual bool isCS() const { return false; }
62 virtual bool isExpanded() const { return true; }
63 virtual bool isBDK() const { return false; }
64 virtual bool isDR() const { return false; }
65 virtual bool isDRbar() const { return false; }
66
71 virtual int nDimAdditional() const { return theRanHelSum?1:0; }
72
76 void setOLPParameter(const string& name, double value) const;
77
82 virtual void signOLP(const string&, const string&);
83
87 virtual void startOLP(const string&, int& status);
88
93 virtual bool startOLP(const map<pair<Process,int>,int>& procs);
94
98 virtual void evalSubProcess() const;
99
103 virtual void evalColourCorrelator(pair<int,int> ij) const;
104
108 virtual double largeNME2(Ptr<ColourBasis>::tptr) const;
109
113 virtual void evalLargeNSubProcess(Ptr<ColourBasis>::tptr) const;
114
118 virtual double largeNColourCorrelatedME2(pair<int,int>,
119 Ptr<ColourBasis>::tptr) const;
120
124 virtual void evalLargeNColourCorrelator(pair<int,int> ij,
125 Ptr<ColourBasis>::tptr) const;
126
132 virtual LorentzVector<Complex> plusPolarization(const Lorentz5Momentum& p,
133 const Lorentz5Momentum& n,
134 int id = -1) const;
135
139 virtual void evalSpinColourCorrelator(pair<int,int> ij) const;
140
141public:
142
150
156 void persistentInput(PersistentIStream & is, int version);
158
165 static void Init();
166
167protected:
168
171
177 virtual void doinit();
178
183 virtual void doinitrun();
185
186protected:
187
194 virtual IBPtr clone() const;
195
200 virtual IBPtr fullclone() const;
202
203private:
204
210
214 mutable vector<double> colourCorrelatorResults;
215
219 mutable vector<double> spinColourCorrelatorResults;
220
225
230
231protected:
232
237
242
243};
244
245}
246
247#endif /* Herwig_VBFNLOAmplitude_H */
virtual Complex value(const tcPDVector &particles, const vector< Lorentz5Momentum > &momenta, const vector< int > &helicities)
Return the amplitude.
MatchboxOLPME implements OLP interfaces.
Definition: MatchboxOLPME.h:27
VBFNLOAmplitude implements an interface to VBFNLO.
virtual void signOLP(const string &, const string &)
Start the one loop provider, if appropriate, giving order and contract files.
virtual bool isCS() const
Set options.
virtual int nDimAdditional() const
Request an additional random number if we are doing random helicity summation.
VBFNLOAmplitude()
The default constructor.
vector< double > spinColourCorrelatorResults
Store spin colour correlator results.
virtual void evalLargeNSubProcess(Ptr< ColourBasis >::tptr) const
Call OLP_EvalSubProcess in the large-N limit and fill in the results.
virtual void evalLargeNColourCorrelator(pair< int, int > ij, Ptr< ColourBasis >::tptr) const
Fill in results for the given large-N colour correlator.
virtual void evalSpinColourCorrelator(pair< int, int > ij) const
Fill in results for the given colour/spin correlator.
static void Init()
The standard Init function used to initialize the interfaces.
virtual bool hasInitialAverage() const
Return true, if this amplitude already includes averaging over incoming parton's quantum numbers.
virtual bool isExpanded() const
Return true, if one loop corrections are given in the conventions of everything expanded.
virtual bool hasFinalStateSymmetry() const
Return true, if this amplitude already includes symmetry factors for identical outgoing particles.
virtual bool isDR() const
Return true, if one loop corrections have been calculated in dimensional reduction.
void setOLPParameter(const string &name, double value) const
Set an OLP parameter (assuming real parameters only)
virtual void evalSubProcess() const
Call OLP_EvalSubProcess and fill in the results.
virtual bool isDRbar() const
Return true, if the amplitude is DRbar renormalized, otherwise MSbar is assumed.
virtual void evalColourCorrelator(pair< int, int > ij) const
Fill in results for the given colour correlator.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual LorentzVector< Complex > plusPolarization(const Lorentz5Momentum &p, const Lorentz5Momentum &n, int id=-1) const
Return a positive helicity polarization vector for a gluon of momentum p (with reference vector n) to...
virtual ~VBFNLOAmplitude()
The destructor.
VBFNLOAmplitude & operator=(const VBFNLOAmplitude &)=delete
The assignment operator is private and must never be called.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
virtual double largeNColourCorrelatedME2(pair< int, int >, Ptr< ColourBasis >::tptr) const
Return the large-N colour correlated matrix element.
void loadVBFNLO()
load the VBFNLO library
virtual bool startOLP(const map< pair< Process, int >, int > &procs)
Start the one loop provider, if appropriate.
bool theAnomCoupl
Switch for anomalous couplings.
virtual double largeNME2(Ptr< ColourBasis >::tptr) const
Return the large-N matrix element squared.
vector< double > colourCorrelatorResults
Store colour correlator results.
virtual IBPtr clone() const
Make a simple clone of this object.
virtual void startOLP(const string &, int &status)
Start the one loop provider, if appropriate.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual void doinitrun()
Initialize this object.
virtual bool isBDK() const
Return true, if one loop corrections are given in the conventions of BDK.
string VBFNLOlib_
Location of the VBFNLO library.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
bool theRanHelSum
Switch for random helicity summation.
string name() const
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr