Herwig 7.3.0
|
This class is for containing tree level gluon bases, i.e. More...
#include <Tree_level_gluon_basis.h>
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. | |
void | read_in_Col_basis (std::string filename) |
Function for reading in the basis from a file. | |
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). | |
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). | |
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. | |
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. | |
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. | |
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_amp & | at (const int i) const |
Returns the Col_amp (basis vector) at place i. | |
Col_amp & | at (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. | |
void | scalar_product_matrix_num () |
This function works as scalar_product_matrix, but does the calculation numerically. | |
virtual void | scalar_product_matrix_no_mem () |
This function works like scalar_product_matrix, but does not use memoization. | |
void | scalar_product_matrix_num_no_mem () |
This function works like scalar_product_matrix_num, but does not use memoization. | |
void | leading_scalar_product_matrix () |
Finds the leading Nc scalar product matrices, leading_P_spm and leading_d_spm. | |
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. | |
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. | |
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. | |
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. | |
std::string | basis_file_name () const |
Returns a standard filename, used for writing out the basis to a file. | |
std::string | spm_file_name (const bool leading, const bool poly) const |
Returns a standard filename, used for writing out scalar product matrices. | |
virtual void | read_in_Col_basis (std::string filename) |
Function for reading in the basis from the file filename. | |
virtual void | read_in_Col_basis () |
Function for reading in the basis from default filename (see basis_file_name). | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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). | |
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. | |
virtual Poly_vec | decompose (const Col_amp &Ca) |
Each type of color basis has to implement a function for decomposing an amplitude in the color basis. | |
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. | |
Poly_matr | color_gamma (int p1, int p2) |
Function for calculating the color structure part of the soft anomalous dimension matrix. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
bool | check_symmetry (const dmatr &matr) const |
Checking that a numerical (double) matrix (the scalar product matrix) is symmetric. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
int | ng |
The number of gluons, initially set to 0 and (possibly) changed with create_basis, or while reading in the basis. | |
col_basis | cb |
To actually contain the info about the basis vectors cb= vector1, vector2... . | |
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. | |
Protected Attributes inherited from ColorFull::Col_basis | |
bool | trace_basis |
bool | tree_level_gluon_basis |
bool | orthogonal_basis |
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.
|
inline |
Default constructor.
Definition at line 27 of file Tree_level_gluon_basis.h.
References initialize().
|
inline |
Constructor for creating a tree level gluon basis with n_g gluons.
Definition at line 32 of file Tree_level_gluon_basis.h.
References create_basis(), and initialize().
|
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.
|
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.
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().
|
privatevirtual |
Calculate element ij in scalar product matrix using the implicit presence of a charge conjugated Col_str.
Reimplemented from ColorFull::Col_basis.
|
inlineprivate |
Little helper function, called by constructors.
Definition at line 87 of file Tree_level_gluon_basis.h.
References ColorFull::Trace_type_basis::max_ql.
Referenced by Tree_level_gluon_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.
|
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.
|
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.
|
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.
|
protectedvirtual |
Function for writing out the basis in a human readable format to an ostream.
Reimplemented from ColorFull::Col_basis.