herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
14 namespace ColorFull {
15 
16 
24 public:
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 
60  void read_in_Col_basis( );
61 
67  void write_out_Col_basis( ) const;
68 
74  void write_out_Col_basis( std::string filename ) const;
75 
76 
77 protected:
78 
81  virtual std::ostream& write_out_Col_basis_to_stream( std::ostream& out ) const;
82 
83 
84 private:
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 */
int max_ql
The maximal number of quark-lines allowed in the basis.
Tree_level_gluon_basis(int n_g)
Constructor for creating a tree level gluon basis with n_g gluons.
void initialize()
Little helper function, called by constructors.
Col_amp create_trace_basis(int n_g) const
Function for creating a basis with n_g gluons.
For containing a Polynomial (in Nc, CF and TR), as a sum of Monomials.
Definition: Polynomial.h:30
A class to contain ONE color structure, a direct product of Quark_lines, multiplying a Polynomial...
Definition: Col_str.h:26
void read_in_Col_basis()
Function reading in the basis from default name (see basis_file_name in the Col_basis class)...
void write_out_Col_basis() const
Function for writing out the basis to default name, (see basis_file_name in the Col_basis class)...
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
Computes the new basis states coming from one old Col_str when one gluon, g_new, is added...
This class is for containing tree level gluon bases, i.e.
void create_basis(int n_g)
Creates a basis with basis vectors saved in the cb member.
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()
Default constructor.
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_...
The full color amplitude is Scalar + Cs1+Cs2+Cs3...
Definition: Col_amp.h:24