herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
Tree_level_gluon_basis.h
1// -*- C++ -*-
2/*
3 * Trace_basis.h
4 * Contains the declarations of the class Tree_level_gluon_basis, related types and operators
5 * Created on: Aug 9, 2012
6 * Author: Malin Sjodahl
7 */
8
9#ifndef COLORFULL_Tree_level_gluon_basis_h
10#define COLORFULL_Tree_level_gluon_basis_h
11
12#include "Trace_type_basis.h"
13
14namespace ColorFull {
15
16
24public:
25
28 initialize();
29 }
30
33 initialize();
34 create_basis( n_g );
35 }
36
37 /******************** Basis creation **********************/
38 // Special functions are needed as half the color structure is implicit
39
46 void create_basis( int n_g );
47
48 /******************** Basis reading and writing **********************/
49
53 void read_in_Col_basis( std::string filename );
54
61
67 void write_out_Col_basis( ) const;
68
74 void write_out_Col_basis( std::string filename ) const;
75
76
77protected:
78
81 virtual std::ostream& write_out_Col_basis_to_stream( std::ostream& out ) const;
82
83
84private:
85
87 void initialize(){
88 tree_level_gluon_basis = true;
89 max_ql=1;
90 }
91
94 Polynomial ij_entry( const int i, const int j ) const;
95
96 /******************** Basis creation **********************/
97
99 Col_amp create_trace_basis( int n_g ) const;
100
104 Col_amp add_one_gluon( const Col_str & Cs, int g_new ) const;
105
111 Col_amp add_one_gluon( const Col_amp & Old_basis, int g_new ) const;
112
113};
114
115} /* namespace ColorFull */
116#endif /* COLORFULL_Tree_level_gluon_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
A class to contain ONE color structure, a direct product of Quark_lines, multiplying a Polynomial,...
Definition: Col_str.h:26
For containing a Polynomial (in Nc, CF and TR), as a sum of Monomials.
Definition: Polynomial.h:30
Trace_type_basis is used for the common features of Trace_basis and Tree_level_gluon_basis which both...
int max_ql
The maximal number of quark-lines allowed in the basis.
This class is for containing tree level gluon bases, i.e.
virtual std::ostream & write_out_Col_basis_to_stream(std::ostream &out) const
Function for writing out the basis in a human readable format to an ostream.
Tree_level_gluon_basis(int n_g)
Constructor for creating a tree level gluon basis with n_g gluons.
Polynomial ij_entry(const int i, const int j) const
Calculate element ij in scalar product matrix using the implicit presence of a charge conjugated Col_...
Col_amp add_one_gluon(const Col_amp &Old_basis, int g_new) const
Compute the basis if one gluon is added to the old basis Old_basis.
Col_amp add_one_gluon(const Col_str &Cs, int g_new) const
Computes the new basis states coming from one old Col_str when one gluon, g_new, is added.
void initialize()
Little helper function, called by constructors.
void read_in_Col_basis(std::string filename)
Function for reading in the basis from a file.
void write_out_Col_basis(std::string filename) const
Function for writing out the basis to filename, (see basis_file_name in the Col_basis class).
void read_in_Col_basis()
Function reading in the basis from default name (see basis_file_name in the Col_basis class).
void create_basis(int n_g)
Creates a basis with basis vectors saved in the cb member.
Tree_level_gluon_basis()
Default constructor.
void write_out_Col_basis() const
Function for writing out the basis to default name, (see basis_file_name in the Col_basis class).
Col_amp create_trace_basis(int n_g) const
Function for creating a basis with n_g gluons.