herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MG_gg2ttxg.h
1// -*- C++ -*-
2//
3// MG_gg2ttxg.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 MG5_Sigma_sm_gg2ttxg_H
10#define MG5_Sigma_sm_gg2ttxg_H
11//
12// This is the declaration of the MG_gg2ttxg class.
13//
14
15#include <complex>
16#include <vector>
17#include "Parameters_sm.h"
18
19using namespace std;
20
21
23{
24 public:
25
26 // Constructor.
27 MG_gg2ttxg() {}
28
29 // Initialize process using Herwig parameters
30 virtual void initProc(map<string, double> & MGParams);
31
32 // Calculate flavour-independent parts of cross section.
33 virtual void sigmaKin(vector<std::complex<double> >& amps, const vector<int>& hel);
34
35 // Set momenta for matrix element evaluation
36 void setMomenta(vector < double * > & momenta){p = momenta;}
37
38 // number of external particles
39 static const int nexternal = 5;
40
41 // number of colour ordered amplitudes
42 static const int namplitudes = 18;
43 std::complex<double> amp[namplitudes];
44
45 private:
46 // Calculate wavefunctions
47 void calculate_wavefunctions(const int perm[], const int hel[]);
48
49 // number of wavefunctions used in calculate_wavefunctions
50 static const int nwavefuncs = 18;
51 std::complex<double> w[nwavefuncs][18];
52
53 // Pointer to the model parameters
54 Parameters_sm * pars;
55
56 // vector with external particle masses
57 vector<double> mME;
58
59 // vector with momenta
60 vector < double * > p;
61
62};
63
64
65#endif // MG5_Sigma_sm_gg2ttxg_H
STL namespace.