herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
17 namespace Herwig {
18 
19 using namespace ThePEG;
20 
28 
29 public:
30 
37 
41  virtual ~VBFNLOAmplitude();
43 
44 public:
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 
141 public:
142 
149  void persistentOutput(PersistentOStream & os) const;
150 
156  void persistentInput(PersistentIStream & is, int version);
158 
165  static void Init();
166 
167 protected:
168 
171 
177  virtual void doinit();
178 
183  virtual void doinitrun();
185 
186 protected:
187 
194  virtual IBPtr clone() const;
195 
200  virtual IBPtr fullclone() const;
202 
203 private:
204 
209  VBFNLOAmplitude & operator=(const VBFNLOAmplitude &) = delete;
210 
214  mutable vector<double> colourCorrelatorResults;
215 
219  mutable vector<double> spinColourCorrelatorResults;
220 
225 
230 
231 protected:
232 
236  string VBFNLOlib_;
237 
241  void loadVBFNLO();
242 
243 };
244 
245 }
246 
247 #endif /* Herwig_VBFNLOAmplitude_H */
virtual bool isDR() const
Return true, if one loop corrections have been calculated in dimensional reduction.
virtual bool isCS() const
Set options.
string VBFNLOlib_
Location of the VBFNLO library.
bool theAnomCoupl
Switch for anomalous couplings.
virtual int nDimAdditional() const
Request an additional random number if we are doing random helicity summation.
virtual bool isExpanded() const
Return true, if one loop corrections are given in the conventions of everything expanded.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
virtual bool hasFinalStateSymmetry() const
Return true, if this amplitude already includes symmetry factors for identical outgoing particles...
vector< double > spinColourCorrelatorResults
Store spin colour correlator results.
virtual bool isDRbar() const
Return true, if the amplitude is DRbar renormalized, otherwise MSbar is assumed.
vector< double > colourCorrelatorResults
Store colour correlator results.
virtual bool hasInitialAverage() const
Return true, if this amplitude already includes averaging over incoming parton&#39;s quantum numbers...
VBFNLOAmplitude implements an interface to VBFNLO.
virtual bool isBDK() const
Return true, if one loop corrections are given in the conventions of BDK.
bool theRanHelSum
Switch for random helicity summation.
-*- C++ -*-
MatchboxOLPME implements OLP interfaces.
Definition: MatchboxOLPME.h:27