herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
NJetsAmplitude.h
1 // -*- C++ -*-
2 //
3 // NJetsAmplitude.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_NJetsAmplitude_H
10 #define Herwig_NJetsAmplitude_H
11 //
12 // This is the declaration of the NJetsAmplitude 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 ~NJetsAmplitude();
43 
44 public:
45 
50  virtual bool hasInitialAverage() const { return false; }
51 
56  virtual bool hasFinalStateSymmetry() const { return false; }
57 
62  virtual void signOLP(const string&, const string&);
63 
67  virtual void startOLP(const string&, int& status);
68 
73  virtual bool startOLP(const map<pair<Process,int>,int>& procs);
74 
78  virtual void evalSubProcess() const;
79 
83  virtual void evalColourCorrelator(pair<int,int> ij) const;
84 
90  virtual LorentzVector<Complex> plusPolarization(const Lorentz5Momentum& p,
91  const Lorentz5Momentum& n,
92  int id = -1) const;
93 
97  virtual void evalSpinColourCorrelator(pair<int,int> ij) const;
98 
99 public:
100 
107  void persistentOutput(PersistentOStream & os) const;
108 
114  void persistentInput(PersistentIStream & is, int version);
116 
123  static void Init();
124 
125 protected:
126 
129 
135  virtual void doinit();
136 
141  virtual void doinitrun();
143 
144 protected:
145 
152  virtual IBPtr clone() const;
153 
158  virtual IBPtr fullclone() const;
160 
161 
162 // If needed, insert declarations of virtual function defined in the
163 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
164 
165 
166 private:
167 
172  NJetsAmplitude & operator=(const NJetsAmplitude &) = delete;
173 
177  mutable vector<double> colourCorrelatorResults;
178 
182  mutable vector<double> spinColourCorrelatorResults;
183 
187  string NJetsPrefix_;
188 
192  string NJetsLibs_;
193 
197  void loadNJET();
198 
199 };
200 
201 }
202 
203 #endif /* Herwig_NJetsAmplitude_H */
string NJetsPrefix_
Location of NJETs.
virtual bool hasFinalStateSymmetry() const
Return true, if this amplitude already includes symmetry factors for identical outgoing particles...
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
NJetsAmplitude implements an interface to NJets.
string NJetsLibs_
Location of NJET librarys.
vector< double > spinColourCorrelatorResults
Store spin colour correlator results.
-*- C++ -*-
virtual bool hasInitialAverage() const
Return true, if this amplitude already includes averaging over incoming parton&#39;s quantum numbers...
MatchboxOLPME implements OLP interfaces.
Definition: MatchboxOLPME.h:27
vector< double > colourCorrelatorResults
Store colour correlator results.