herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
14 namespace ColorFull {
15 
16 
20 public:
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 
57 private:
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 */
void create_basis(int n_q, int n_g)
Creates a trace basis with basis vectors saved in the cb member.
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
int ng
The number of gluons, initially set to 0 and (possibly) changed with create_basis, or while reading in the basis.
Definition: Col_basis.h:46
int nq
The number of qqbar-pairs, initially set to 0 and (possibly) changed with create_basis, or while reading in the basis.
Definition: Col_basis.h:42
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, i.e.
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
void initialize()
Little helper function, called by all constructors.
Definition: Trace_basis.h:62
Trace_type_basis is used for the common features of Trace_basis and Tree_level_gluon_basis which both...
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, int n_loop)
Constructor for creating a trace basis for n_quark qqbar-pairs and n_gluon gluons, keeping only those color structures that can appear to order n_loop in pure QCD.
Definition: Trace_basis.h:39
The full color amplitude is Scalar + Cs1+Cs2+Cs3...
Definition: Col_amp.h:24
Col_amp connect_quarks(int n_quark) const
Connect the n_q quarks in all n_q! ways.