Herwig
7.2.1
|
Trace_type_basis is used for the common features of Trace_basis and Tree_level_gluon_basis which both inherit from Trace_type_basis. More...
#include <Trace_type_basis.h>
Public Member Functions | |
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_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. 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... | |
Protected Member Functions | |
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 | |
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 |
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. | |
Trace_type_basis is used for the common features of Trace_basis and Tree_level_gluon_basis which both inherit from Trace_type_basis.
Definition at line 20 of file Trace_type_basis.h.
A function for decomposing the color amplitude ca in the basis, returning the result as a Polynomial.
Reimplemented from ColorFull::Col_basis.
Referenced by Trace_type_basis().
|
protected |
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.
n_loop must be 0. It locates the parton parton in the normal ordered basis, given the number of the vector vec_num, and the number of quarks and gluons in the basis. The function has been explicitly tested for Trace_basis with 1 qqbar-pair and up to 8 gluons and 2 qqbar-pairs and up to 7 gluons, and for Tree_level_gluon_bases with up to 9 gluons. The arguments n_quark and n_gluon has to be provided as it may be desirable to use the function with a different number of quarks and gluons than in the basis itself.
|
protected |
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.
This function is only intended for the special cases of 0 qqbar-pairs and Tree_level_gluon_basis or Trace_basis and 1-2 qqbar-pairs at tree level, i.e. n_loop must be 0. This function doesn't actually use the cb, but only calculates the the basis vector number using find_parton. The old vector has number old_num, and there were, before emission nq quarks (+ nq anti-quarks) and n_g-1 gluons, i.e. n_p=2 nq + n_g-1. The function has been explicitly tested for initial states with 2qqbar-pairs and up to 5 gluons, 1qqbar-pair and up to 7 gluons, 0 qqbar-pairs and up to 8 gluons.
std::pair<int, int> ColorFull::Trace_type_basis::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.
The old color structure is Cs, and after emission a linear combination of new basis vectors is obtained. For emission from a quark or an anti-quark there is only one resulting color structure, and -1 is returned in the place of the absent color structure. The second vector, where the new gluon is inserted before the emitter, comes with a minus sign in the new total amplitude.
Referenced by Trace_type_basis().
std::pair<int, int> ColorFull::Trace_type_basis::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.
It finds the new vector numbers in the basis for n_p+1 partons after radiating a new gluon from the parton emitter. This function does not actually use the cb, but only calculates the basis vector number, which makes it much quicker than the general version. The old vector has number old_num, and there were, before emission, nq quarks (+ nq anti-quarks) and n_g-1 gluons, i.e. n_p=2 nq+ n_g-1. For emission from q or qbar there is only one resulting color structure, and -1 is returned in the place of the absent color structure. The second vector, where the new gluon is inserted before the emitter comes with a minus sign in the new total amplitude. The function has been explicitly tested against its sister function for initial states with 2 qqbar-pairs and up to 5 gluons, 1qqbar-pair and up to 7 gluons and 0 qqbar-pairs and up to 8 gluons.
|
protected |
The maximal number of quark-lines allowed in the basis.
This is used for constructing bases that only are valid up to a certain order in QCD, such that unused information need not be carried around.
Definition at line 72 of file Trace_type_basis.h.
Referenced by ColorFull::Tree_level_gluon_basis::initialize(), and Trace_type_basis().