herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
ColorFull::Tree_level_gluon_basis Class Reference

This class is for containing tree level gluon bases, i.e. More...

#include <Tree_level_gluon_basis.h>

Inheritance diagram for ColorFull::Tree_level_gluon_basis:

Public Member Functions

 Tree_level_gluon_basis ()
 Default constructor.
 
 Tree_level_gluon_basis (int n_g)
 Constructor for creating a tree level gluon basis with n_g gluons.
 
void create_basis (int n_g)
 Creates a basis with basis vectors saved in the cb member. More...
 
void read_in_Col_basis (std::string filename)
 Function for reading in the basis from a file. More...
 
void read_in_Col_basis ()
 Function reading in the basis from default name (see basis_file_name in the Col_basis class). More...
 
void write_out_Col_basis () const
 Function for writing out the basis to default name, (see basis_file_name in the Col_basis class). More...
 
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). More...
 
- Public Member Functions inherited from ColorFull::Trace_type_basis
 Trace_type_basis ()
 Default constructor.
 
Poly_vec decompose (const Col_amp &Ca)
 A function for decomposing the color amplitude ca in the basis, returning the result as a Polynomial. More...
 
std::pair< int, int > new_vector_numbers (const Col_str &Cs, int emitter)
 Function for finding the new vector numbers in the new basis (this trace basis) after radiating a new gluon from the parton emitter. More...
 
std::pair< int, int > new_vector_numbers (int old_num, int emitter, int n_loop) const
 This function is intended for tree-level processes with at most 2 qqbar-pairs. More...
 
- Public Member Functions inherited from ColorFull::Col_basis
 Col_basis ()
 Default constructor.
 
virtual ~Col_basis ()
 Destructor.
 
bool is_Trace_basis () const
 Is it a Trace_basis?
 
bool is_Orthogonal_basis () const
 Is it an Orthogonal_basis?
 
bool is_Tree_level_gluon_basis () const
 Is it a Tree_level_gluon_basis?
 
uint size () const
 Returns the number of basis vectors.
 
const Col_ampat (const int i) const
 Returns the Col_amp (basis vector) at place i.
 
Col_ampat (const int i)
 Returns the Col_amp (basis vector) at place i.
 
bool empty () const
 Is the col_basis empty?
 
void clear ()
 Erase the basis, stored in cb.
 
void append (Col_amp Ca)
 Appends a Col_amp to the basis, stored in cb.
 
void append (col_basis cb_in)
 Appends the Col_amps in cb_in to the col_basis member cb.
 
void scalar_product_matrix ()
 Function for calculating the scalar products matrix. More...
 
void scalar_product_matrix_num ()
 This function works as scalar_product_matrix, but does the calculation numerically. More...
 
virtual void scalar_product_matrix_no_mem ()
 This function works like scalar_product_matrix, but does not use memoization. More...
 
void scalar_product_matrix_num_no_mem ()
 This function works like scalar_product_matrix_num, but does not use memoization. More...
 
void leading_scalar_product_matrix ()
 Finds the leading Nc scalar product matrices, leading_P_spm and leading_d_spm. More...
 
virtual Polynomial scalar_product (const Col_amp &Ca1, const Col_amp &Ca2)
 Function for calculating scalar products algebraically using the basis and the scalar product matrix (Poly_matr) in the basis. More...
 
virtual cnum scalar_product_num (const Col_amp &Ca1, const Col_amp &Ca2)
 Function for calculating scalar products numerically, knowing the basis and the scalar product matrix in numerical form. More...
 
virtual cnum scalar_product_num (const cvec &v1, const cvec &v2)
 Calculates the scalar product between numerical (complex) amplitudes v1, V2 using the numerical scalar product matrix, d_spm. More...
 
cnum scalar_product_num_diagonal (const cvec &v1, const cvec &v2)
 Calculates the scalar product between numerical (complex) amplitudes v1, v2 using the numerical scalar product matrix, d_spm. More...
 
std::string basis_file_name () const
 Returns a standard filename, used for writing out the basis to a file. More...
 
std::string spm_file_name (const bool leading, const bool poly) const
 Returns a standard filename, used for writing out scalar product matrices. More...
 
void read_in_d_spm (std::string filename)
 Read in a numerical matrix from a file filename (see spm_file_name) and save it as a double matrix, dmatr, in the member variable d_spm. More...
 
void read_in_d_spm ()
 Read in a numerical matrix from a file with default filename (see spm_file_name) and save it as a double matrix, dmatr, in the member variable d_spm. More...
 
void read_in_leading_d_spm (std::string filename)
 Read in a numerical matrix from the file filename and save it as a double matrix, dmatr, in the member variable leading_d_spm. More...
 
void read_in_leading_d_spm ()
 Read in a numerical matrix from a file with default filename (see spm_file_name) and save it as a double matrix, dmatr, in the member variable leading_d_spm. More...
 
void read_in_P_spm (std::string filename)
 Read in a Polynomial matrix from the file filename and save it as a Poly_matr in the member variable P_spm. More...
 
void read_in_P_spm ()
 Read in a Polynomial matrix from a file with default filename (see spm_file_name) and save it as a Poly_matr in the member variable P_spm. More...
 
void read_in_leading_P_spm (std::string filename)
 Read in a Polynomial matrix from a file with default filename (see spm_file_name) and save it as a Poly_matr in the member variable leading_P_spm. More...
 
void read_in_leading_P_spm ()
 Reads in a Polynomial matrix from default filename (see spm_file_name) and save it as a Poly_matr in the member variable leading_P_spm. More...
 
void write_out_d_spm (std::string filename) const
 Writes out d_spm to the file filename.
 
void write_out_d_spm () const
 Writes out d_spm to the standard filename, see spm_file_name.
 
void write_out_P_spm (std::string filename) const
 Writes out P_spm to the file filename.
 
void write_out_P_spm () const
 Writes out P_spm to the standard filename, see spm_file_name.
 
void write_out_leading_d_spm (std::string filename) const
 Writes out leading_d_spm to the file filename.
 
void write_out_leading_d_spm () const
 Writes out leading_d_spm to the standard filename, see spm_file_name.
 
void write_out_leading_P_spm (std::string filename) const
 Writes out leading_P_spm to the file filename.
 
void write_out_leading_P_spm () const
 Writes out leading_P_spm to the standard filename, see spm_file_name.
 
void simplify ()
 Simplifies all the basis vectors by using simplify on the individual Col_amps in the basis. More...
 
Col_amp exchange_gluon (uint vec, int p1, int p2)
 Function for finding the resulting Col_amp after exchanging a gluon between parton p1 and parton p2 in the basis vector vec. More...
 
Poly_matr color_gamma (int p1, int p2)
 Function for calculating the color structure part of the soft anomalous dimension matrix. More...
 
int n_quark_check () const
 Returns the number of quarks in the Col_basis after checking that each Col_str in each Col_amp has the same number of quarks. More...
 
int n_gluon_check () const
 Returns the number of gluons in the Col_basis after checking that each Col_str in each Col_amp has the same number of gluons. More...
 
void rename_indices (Col_str &Cs1, Col_str &Cs2) const
 A function to rename the indices in two Col_strs, such that in the first they are called 1,2,3..., and in the second the relative order is kept. More...
 

Protected Member Functions

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. More...
 
- Protected Member Functions inherited from ColorFull::Trace_type_basis
int new_vector_number (int old_num, std::pair< int, int > place, int n_loop) const
 Function for finding the new vector number in the basis with n_p+1 partons (this basis) after inserting a new gluon with larger parton number at the place place. More...
 
std::pair< int, int > find_parton (int parton, int vec_num, int n_quark, int n_gluon, int n_loop) const
 This function is only intended for special case of: 0 qqbar-pairs and Tree_level_gluon_basis or Trace_basis and 1-2 qqbar-pairs at tree level, i.e. More...
 
- Protected Member Functions inherited from ColorFull::Col_basis
virtual void scalar_product_matrix (bool save_P_spm, bool save_d_spm, bool use_mem)
 The underlying function for calculation of scalar product matrices. More...
 
bool check_diagonal (const dmatr &matr) const
 Checking that a numerical (double) matrix is diagonal. More...
 
bool check_symmetry (const dmatr &matr) const
 Checking that a numerical (double) matrix (the scalar product matrix) is symmetric. More...
 
void check_spm () const
 Makes consistency checks on the scalar product matrix.
 
void Col_basis_of_str (std::string str)
 Converts a text string (in a file) to a basis, used by the read_in_basis functions. More...
 

Private Member Functions

void initialize ()
 Little helper function, called by constructors.
 
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_str. More...
 
Col_amp create_trace_basis (int n_g) const
 Function for creating a basis with n_g gluons.
 
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. More...
 
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. More...
 

Additional Inherited Members

- Public Attributes inherited from ColorFull::Col_basis
int nq
 The number of qqbar-pairs, initially set to 0 and (possibly) changed with create_basis, or while reading in the basis. More...
 
int ng
 The number of gluons, initially set to 0 and (possibly) changed with create_basis, or while reading in the basis. More...
 
col_basis cb
 To actually contain the info about the basis vectors cb= vector1, vector2... More...
 
Poly_matr P_spm
 To contain the Polynomial version of the scalar product matrix.
 
Poly_matr leading_P_spm
 To contain the Polynomial version of the leading part of the scalar product matrix.
 
dmatr d_spm
 To contain the double version of the scalar product matrix.
 
dmatr leading_d_spm
 To contain the double version of the leading part of the scalar product matrix.
 
Col_functions Col_fun
 To contain the set of Col_functions used.
 
- Protected Attributes inherited from ColorFull::Trace_type_basis
int max_ql
 The maximal number of quark-lines allowed in the basis. More...
 
- Protected Attributes inherited from ColorFull::Col_basis
bool trace_basis
 
bool tree_level_gluon_basis
 
bool orthogonal_basis
 

Detailed Description

This class is for containing tree level gluon bases, i.e.

bases of form Tr(t^a t^b....t^z) +/- Tr(t^z .... t^b t^a), where the sign is given by (-1)^n_g. Technically only one of the quark-lines are carried around in the cb member, the other is implicit. This speeds up calculations.

Definition at line 23 of file Tree_level_gluon_basis.h.

Member Function Documentation

◆ add_one_gluon() [1/2]

Col_amp ColorFull::Tree_level_gluon_basis::add_one_gluon ( const Col_str Cs,
int  g_new 
) const
private

Computes the new basis states coming from one old Col_str when one gluon, g_new, is added.

g_new is the number of the new gluon.

Referenced by initialize().

◆ add_one_gluon() [2/2]

Col_amp ColorFull::Tree_level_gluon_basis::add_one_gluon ( const Col_amp Old_basis,
int  g_new 
) const
private

Compute the basis if one gluon is added to the old basis Old_basis.

(For a Trace_type_basis, the basis is can be contained in a Col_amp, and this is the case for Old_basis). g_new is the number of the new gluon. Used by create_basis.

◆ create_basis()

void ColorFull::Tree_level_gluon_basis::create_basis ( int  n_g)

Creates a basis with basis vectors saved in the cb member.

Each basis vector is a sum of two traces, of form Tr(t^a t^b....t^z) +/- Tr(t^z .... t^b t^a). The charge conjugated trace is implicit, and only one trace is actually carried around.

Referenced by Tree_level_gluon_basis().

◆ ij_entry()

Polynomial ColorFull::Tree_level_gluon_basis::ij_entry ( const int  i,
const int  j 
) const
privatevirtual

Calculate element ij in scalar product matrix using the implicit presence of a charge conjugated Col_str.

Reimplemented from ColorFull::Col_basis.

Referenced by initialize().

◆ read_in_Col_basis() [1/2]

void ColorFull::Tree_level_gluon_basis::read_in_Col_basis ( std::string  filename)
virtual

Function for reading in the basis from a file.

The file should contain the whole basis, including the charge conjugated part.

Reimplemented from ColorFull::Col_basis.

◆ read_in_Col_basis() [2/2]

void ColorFull::Tree_level_gluon_basis::read_in_Col_basis ( )
virtual

Function reading in the basis from default name (see basis_file_name in the Col_basis class).

The full basis, including the charge conjugated part should be contained in the file. (This is to simplify comparison with other programs, such as ColorMath.)

Reimplemented from ColorFull::Col_basis.

Referenced by Tree_level_gluon_basis().

◆ write_out_Col_basis() [1/2]

void ColorFull::Tree_level_gluon_basis::write_out_Col_basis ( ) const
virtual

Function for writing out the basis to default name, (see basis_file_name in the Col_basis class).

The full basis, including the charge conjugated part is written out. (This is to simplify comparison with other programs, such as ColorMath.)

Reimplemented from ColorFull::Col_basis.

Referenced by Tree_level_gluon_basis().

◆ write_out_Col_basis() [2/2]

void ColorFull::Tree_level_gluon_basis::write_out_Col_basis ( std::string  filename) const
virtual

Function for writing out the basis to filename, (see basis_file_name in the Col_basis class).

The full basis, including the charge conjugated part is written out. (This is to simplify comparison with other programs, such as ColorMath.)

Reimplemented from ColorFull::Col_basis.

◆ write_out_Col_basis_to_stream()

virtual std::ostream& ColorFull::Tree_level_gluon_basis::write_out_Col_basis_to_stream ( std::ostream &  out) const
protectedvirtual

Function for writing out the basis in a human readable format to an ostream.

Reimplemented from ColorFull::Col_basis.

Referenced by Tree_level_gluon_basis().


The documentation for this class was generated from the following file: