herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
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
17namespace Herwig {
18
19using namespace ThePEG;
20
28
29public:
30
35
36public:
37
42 virtual bool hasInitialAverage() const { return false; }
43
48 virtual bool hasFinalStateSymmetry() const { return false; }
49
54 virtual void signOLP(const string&, const string&);
55
59 virtual void startOLP(const string&, int& status);
60
65 virtual bool startOLP(const map<pair<Process,int>,int>& procs);
66
70 virtual void evalSubProcess() const;
71
75 virtual void evalColourCorrelator(pair<int,int> ij) const;
76
82 virtual LorentzVector<Complex> plusPolarization(const Lorentz5Momentum& p,
83 const Lorentz5Momentum& n,
84 int id = -1) const;
85
89 virtual void evalSpinColourCorrelator(pair<int,int> ij) const;
90
91public:
92
100
106 void persistentInput(PersistentIStream & is, int version);
108
115 static void Init();
116
117protected:
118
121
127 virtual void doinit();
128
133 virtual void doinitrun();
135
136protected:
137
144 virtual IBPtr clone() const;
145
150 virtual IBPtr fullclone() const;
152
153
154// If needed, insert declarations of virtual function defined in the
155// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
156
157
158private:
159
165
169 mutable vector<double> colourCorrelatorResults;
170
174 mutable vector<double> spinColourCorrelatorResults;
175
180
185
189 void loadNJET();
190
191};
192
193}
194
195#endif /* Herwig_NJetsAmplitude_H */
MatchboxOLPME implements OLP interfaces.
Definition: MatchboxOLPME.h:27
NJetsAmplitude implements an interface to NJets.
void persistentInput(PersistentIStream &is, int version)
Function used to read in 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 void startOLP(const string &, int &status)
Start the one loop provider, if appropriate.
string NJetsLibs_
Location of NJET librarys.
static void Init()
The standard Init function used to initialize the interfaces.
virtual void doinitrun()
Initialize this object.
virtual void evalSpinColourCorrelator(pair< int, int > ij) const
Fill in results for the given colour/spin correlator.
virtual void signOLP(const string &, const string &)
Start the one loop provider, if appropriate, giving order and contract files.
virtual void evalColourCorrelator(pair< int, int > ij) const
Fill in results for the given colour correlator.
virtual void evalSubProcess() const
Call OLP_EvalSubProcess and fill in the results.
virtual bool hasFinalStateSymmetry() const
Return true, if this amplitude already includes symmetry factors for identical outgoing particles.
virtual bool hasInitialAverage() const
Return true, if this amplitude already includes averaging over incoming parton's quantum numbers.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
void loadNJET()
Load the NJET library.
virtual IBPtr clone() const
Make a simple clone of this object.
NJetsAmplitude()
The default constructor.
vector< double > spinColourCorrelatorResults
Store spin colour correlator results.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
NJetsAmplitude & operator=(const NJetsAmplitude &)=delete
The assignment operator is private and must never be called.
string NJetsPrefix_
Location of NJETs.
vector< double > colourCorrelatorResults
Store colour correlator results.
virtual bool startOLP(const map< pair< Process, int >, int > &procs)
Start the one loop provider, if appropriate.
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr