herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
Trace_basis.h
1// -*- C++ -*-
2/*
3 * Trace_basis.h
4 * Contains the declarations of the class Trace_basis, related types and operators
5 * Created on: Aug 9, 2012
6 * Author: Malin Sjodahl
7 */
8
9#ifndef COLORFULL_Trace_basis_h
10#define COLORFULL_Trace_basis_h
11
12#include "Trace_type_basis.h"
13
14namespace ColorFull {
15
16
20public:
21
24 initialize();
25 }
26
29 Trace_basis( int n_quark, int n_gluon ){
30 initialize();
31 create_basis( n_quark, n_gluon );
32 }
33
39 Trace_basis( int n_quark, int n_gluon, int n_loop ){
40 initialize();
41 create_basis( n_quark, n_gluon, n_loop );
42 }
43
44
45 /******************** Functions for basis creation **********************/
46
50 void create_basis( int n_q, int n_g );
51
54 void create_basis( int n_q, int n_g, int n_loop );
55
56
57private:
58
59 /******************** Internal function for basis creation **********************/
60
62 void initialize(){
63 nq=0;
64 ng=0;
65 tree_level_gluon_basis = false;
66 orthogonal_basis = false;
67 trace_basis = true;
68 }
69
74 Col_amp create_trace_basis( int n_q, int n_g, int n_loop ) const;
75
78 Col_amp connect_quarks( int n_quark ) const;
79
82 Col_amp add_one_gluon( const Col_str & Cs, int g_new ) const;
83
86 Col_amp add_one_gluon( const Col_amp & Old_basis, int n_q, int g_new, int n_loop ) const;
87
88};
89
90} /* namespace ColorFull */
91#endif /* COLORFULL_Trace_basis_h */
The full color amplitude is Scalar + Cs1+Cs2+Cs3... Col_amp is a class to contain info on several Col...
Definition: Col_amp.h:24
int ng
The number of gluons, initially set to 0 and (possibly) changed with create_basis,...
Definition: Col_basis.h:46
int nq
The number of qqbar-pairs, initially set to 0 and (possibly) changed with create_basis,...
Definition: Col_basis.h:42
A class to contain ONE color structure, a direct product of Quark_lines, multiplying a Polynomial,...
Definition: Col_str.h:26
In a trace basis the basis vectors are closed or open quark-lines or products of close and open quark...
Definition: Trace_basis.h:19
Col_amp add_one_gluon(const Col_amp &Old_basis, int n_q, int g_new, int n_loop) const
Compute the basis if one gluon is added to the old basis Old_basis.
void initialize()
Little helper function, called by all constructors.
Definition: Trace_basis.h:62
void create_basis(int n_q, int n_g, int n_loop)
Creates a trace basis with basis vectors saved in the cb member.
void create_basis(int n_q, int n_g)
Creates a trace basis with basis vectors saved in the cb member.
Col_amp add_one_gluon(const Col_str &Cs, int g_new) const
Compute the new basis states coming from one old vector when one gluon, g_new, is added.
Trace_basis(int n_quark, int n_gluon)
Constructor for creating a trace basis for n_quark qqbar-pairs and n_gluon gluons.
Definition: Trace_basis.h:29
Trace_basis(int n_quark, int n_gluon, int n_loop)
Constructor for creating a trace basis for n_quark qqbar-pairs and n_gluon gluons,...
Definition: Trace_basis.h:39
Trace_basis()
Default constructor.
Definition: Trace_basis.h:23
Col_amp create_trace_basis(int n_q, int n_g, int n_loop) const
Function for creating a basis with n_q=n_qbar quarks and ng gluons to order n_loop,...
Col_amp connect_quarks(int n_quark) const
Connect the n_q quarks in all n_q! ways.
Trace_type_basis is used for the common features of Trace_basis and Tree_level_gluon_basis which both...