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