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

In a trace basis the basis vectors are closed or open quark-lines or products of close and open quark-lines. More...

#include <Trace_basis.h>

Inheritance diagram for ColorFull::Trace_basis:

Public Member Functions

 Trace_basis ()
 Default constructor.
 
 Trace_basis (int n_quark, int n_gluon)
 Constructor for creating a trace basis for n_quark qqbar-pairs and n_gluon gluons. More...
 
 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. More...
 
void create_basis (int n_q, int n_g)
 Creates a trace basis with basis vectors saved in the cb member. More...
 
void create_basis (int n_q, int n_g, int n_loop)
 Creates a trace basis with basis vectors saved in the cb member. 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...
 
virtual void read_in_Col_basis (std::string filename)
 Function for reading in the basis from the file filename. More...
 
virtual void read_in_Col_basis ()
 Function for reading in the basis from default filename (see basis_file_name). 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...
 
virtual void write_out_Col_basis (std::string filename) const
 Function for writing out the basis to a file with name filename.
 
virtual void write_out_Col_basis () const
 Function for writing out the basis to a file with default name (see basis_file_name). 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...
 

Private Member Functions

void initialize ()
 Little helper function, called by all constructors.
 
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. More...
 
Col_amp connect_quarks (int n_quark) const
 Connect the n_q quarks in all n_q! ways. More...
 
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. More...
 
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. 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 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...
 
virtual Polynomial ij_entry (const int i, const int j) const
 Calculates element i,j in scalar product matrix using the scalar product.
 
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...
 
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 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

In a trace basis the basis vectors are closed or open quark-lines or products of close and open quark-lines.

Definition at line 19 of file Trace_basis.h.

Constructor & Destructor Documentation

◆ Trace_basis() [1/2]

ColorFull::Trace_basis::Trace_basis ( int  n_quark,
int  n_gluon 
)
inline

Constructor for creating a trace basis for n_quark qqbar-pairs and n_gluon gluons.

Definition at line 29 of file Trace_basis.h.

References create_basis(), and initialize().

◆ Trace_basis() [2/2]

ColorFull::Trace_basis::Trace_basis ( int  n_quark,
int  n_gluon,
int  n_loop 
)
inline

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.

(Note: For electroweak interactions more color structures may be needed.)

Definition at line 39 of file Trace_basis.h.

References create_basis(), and initialize().

Member Function Documentation

◆ add_one_gluon() [1/2]

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

Compute the new basis states coming from one old vector when one gluon, g_new, is added.

Referenced by initialize().

◆ add_one_gluon() [2/2]

Col_amp ColorFull::Trace_basis::add_one_gluon ( const Col_amp Old_basis,
int  n_q,
int  g_new,
int  n_loop 
) const
private

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

If n_loop==0, only tree level states are constructed.

◆ connect_quarks()

Col_amp ColorFull::Trace_basis::connect_quarks ( int  n_quark) const
private

Connect the n_q quarks in all n_q! ways.

This function is used when creating a basis.

Referenced by initialize().

◆ create_basis() [1/2]

void ColorFull::Trace_basis::create_basis ( int  n_q,
int  n_g 
)

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

Keeps all possible basis vectors, i.e., the basis is valid to any order in perturbation theory.

Referenced by Trace_basis().

◆ create_basis() [2/2]

void ColorFull::Trace_basis::create_basis ( int  n_q,
int  n_g,
int  n_loop 
)

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

Keeps only basis vectors needed up to n_loop in pure QCD.

◆ create_trace_basis()

Col_amp ColorFull::Trace_basis::create_trace_basis ( int  n_q,
int  n_g,
int  n_loop 
) const
private

Function for creating a basis with n_q=n_qbar quarks and ng gluons to order n_loop, i.e.

each Col_str is a product of at most max(1+nq)+n_loop Quark_lines.

Referenced by initialize().


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