Herwig 7.3.0
|
Library class containing functions for index contraction and numerical evaluation. More...
#include <Col_functions.h>
Public Member Functions | |
Col_functions () | |
Default constructor. | |
void | set_Nc (double n) |
Set the number of colors. | |
void | set_TR (double tr) |
Set the normalization of the generators. | |
void | set_CF (double cf) |
Set the value of CF. | |
void | set_full_CF (bool is_full) |
Switch on/off full_CF. | |
double | get_Nc () const |
Returns the number of colors. | |
double | get_TR () const |
Returns the normalization of the generators, tr(t^a t^b)=TR*delta^{a,b}. | |
double | get_CF () const |
Returns the value of CF. | |
bool | get_full_CF () const |
Returns true, if full CF is used. | |
int | leading_Nc_pow (const Polynomial &Poly) const |
Function for finding the leading power of Nc in a Poly_vec, i.e., the power of Nc plus the power of CF. | |
int | leading_Nc_pow (const Poly_vec &Pv) const |
Function for finding the leading power of Nc in a Poly_vec. | |
Polynomial | leading (const Polynomial &Poly) const |
Takes the leading Nc terms of a Polynonmial, i.e. | |
Poly_vec | leading (const Poly_vec &Pv) const |
Take the leading part of a Poly_vec. | |
Poly_matr | leading (const Poly_matr &Pm) const |
Takes the leading part of a matrix of Polynomials, keeping only those with maximal power of CF plus Nc. | |
cnum | cnum_num (const Monomial &Mon) const |
Numerically evaluates a Monomial using the Nc, TR and CF data members. | |
cnum | cnum_num (const Polynomial &Poly) const |
Numerically evaluates a Polynomial, using the Nc, TR and CF data members. | |
cvec | cnum_num (const Poly_vec &Pv) const |
Numerically evaluates a Poly_vec (vector of Polynomial), using cnum_num (Polynomial). | |
cmatr | cnum_num (const Poly_matr &Pm) const |
Numerically evaluates a Poly_matr (vector of Poly_vec), using cnum_num( Poly_vec ) for each Poly_vec. | |
double | double_num (const Monomial &Mon) const |
Numerically evaluates a Monomial to a double using the Nc, TR and CF data members. | |
double | double_num (const Polynomial &Poly) const |
Numerically evaluates a Polynomial to a double using the Nc, TR and CF data members. | |
dvec | double_num (const Poly_vec &Pv) const |
Numerically evaluates a Poly_vec (vector of Polynomial) using the Nc, TR and CF data members. | |
dmatr | double_num (const Poly_matr &Pm) const |
Numerically evaluates a Poly_matr (vector of Poly_vec), using the Nc, TR and CF data members. | |
Polynomial | Polynomial_cnum_num (const Polynomial &Poly) const |
Numerically evaluates a Polynomial using the value of the data member Nc, and stores in the format of a Polynomial with only one term with only a numerical part. | |
Poly_vec | Poly_vec_cnum_num (const Poly_vec &Pv) const |
Numerically evaluates a Poly_vec (vector of Polynomial) and stores in the form of a Poly_vec, uses polynomial_cnum_num( Pv.at( p ) ). | |
Poly_matr | Poly_matr_cnum_num (const Poly_matr &Pm) const |
Numerically evaluates a Poly_matr (vector of Poly_vec) and stores in the form of a Poly_matr. | |
Polynomial | scalar_product (const Col_amp &Ca1, const Col_amp &Ca2) const |
Function for calculating the scalar products between Col_amps. | |
Polynomial | scalar_product (const Col_str &Cs1, const Col_str &Cs2) const |
Function for calculating the scalar product between two Col_strs. | |
Col_amp | emit_gluon (const Col_str &in_Col_str, int emitter, int g_new) const |
Function for emitting a gluon from a Col_str. | |
Col_amp | emit_gluon (const Col_amp &Ca_in, int emitter, int g_new) const |
Function for emitting a gluon from a Col_amp. | |
Col_amp | split_gluon (const Col_str &in_Col_str, int g_old, int q_new, int qbar_new) const |
Function for splitting the gluon g_old in a Col_str to a qqbar pair. | |
Col_amp | split_gluon (const Col_amp &in_Col_amp, int g_old, int q_new, int qbar_new) const |
Function for splitting the gluon g_old in a Col_amp to a qqbar pair. | |
Col_amp | exchange_gluon (const Col_str &Cs, int p1, int p2) const |
Function for exchanging a gluon between the partons p1 and p2 in the Col_str Cs. | |
Col_amp | exchange_gluon (const Col_amp &Ca, int p1, int p2) const |
Function for exchanging a gluon between two partons p1 and p2 in the Col_amp Ca. | |
Polynomial | color_correlator (const Col_amp Ca, int i, int j) const |
Calculates < M | T_i T_j | M >, the "color correlator" relevant for coherent gluon emission of gluon g_new from parton i and parton j, or gluon exchange between i and j. | |
dvec | read_in_dvec (std::string filename) const |
Reads in a numerical vector and save it as a double vector, dvec. | |
dmatr | read_in_dmatr (std::string filename) const |
Reads in a numerical matrix and save it as a double matrix, dmatr. | |
void | write_out_dvec (const dvec &dv, std::string filename) const |
Function for writing out a numerical vector, to the file filename. | |
void | write_out_dmatr (const dmatr &matr, std::string filename) const |
Writes out the double version of a (scalar product) matrix to the file filename. | |
int | factorial (int i) const |
The factorial of an int, 0! is defined as 1. | |
std::map< int, int > | default_parton_numbers (const Col_str &, int g_old, int q_new, int qbar_new) const |
Function that finds the default parton numbers for a Col_str. | |
Col_str | rename_partons (const Col_str &, const std::map< int, int > replacements) const |
Function that renames the partons in a Col_str using a map where, in each pair, the first number is to be replaced by the second. | |
Col_amp | rename_partons (const Col_amp &, const std::map< int, int > replacements) const |
Function that renames the partons in a Col_amp using a map where, in each pair, the first number is to be replaced by the second. | |
Private Attributes | |
double | Nc |
The number of colors, used in numerical results, changed by using set_Nc. | |
double | TR |
The trace convention Tr( t^a t^a )=TR (no sum). | |
double | CF |
The value of CF=TR*Nc-TR/Nc, changed by using set_CF. | |
bool | full_CF |
While evaluating leading terms one may want to keep the full value of CF for TR(Nc^2-1)/Nc, or only keep the leading Nc term =TR*Nc (default). | |
Library class containing functions for index contraction and numerical evaluation.
This is where the parameters Nc, TR and CF are contained.
Definition at line 25 of file Col_functions.h.
|
inline |
Default constructor.
Definition at line 59 of file Col_functions.h.
Polynomial ColorFull::Col_functions::color_correlator | ( | const Col_amp | Ca, |
int | i, | ||
int | j | ||
) | const |
Calculates < M | T_i T_j | M >, the "color correlator" relevant for coherent gluon emission of gluon g_new from parton i and parton j, or gluon exchange between i and j.
The Ca should thus be | M >, and i and j are the partons involved in the emission (exchange). (The incoming amplitude is what it is, there is no special treatment of gluons only cases.)
std::map< int, int > ColorFull::Col_functions::default_parton_numbers | ( | const Col_str & | , |
int | g_old, | ||
int | q_new, | ||
int | qbar_new | ||
) | const |
Function that finds the default parton numbers for a Col_str.
The default numbers are 1,...,N_parton, where quarks have the first odd numbers, anti-quarks have the first even numbers, and gluons have subsequent numbers. The intended usage is after gluon splitting, where the gluon g_old has split into q_new and qbar_new, and the parton numbers before splitting are assumed to be default.
Col_amp ColorFull::Col_functions::emit_gluon | ( | const Col_amp & | Ca_in, |
int | emitter, | ||
int | g_new | ||
) | const |
Function for emitting a gluon from a Col_amp.
When the gluon is inserted before the emitter in a Quark_line, the amplitude comes with a minus sign.
Col_amp ColorFull::Col_functions::emit_gluon | ( | const Col_str & | in_Col_str, |
int | emitter, | ||
int | g_new | ||
) | const |
Function for emitting a gluon from a Col_str.
When the gluon is inserted before the emitter in a Quark_line, the amplitude comes with a minus sign.
Function for exchanging a gluon between two partons p1 and p2 in the Col_amp Ca.
When the gluon is inserted before the emitter in a Quark_line, the amplitude comes with a minus sign. (There is no special treatment of the glons only cases.)
Function for exchanging a gluon between the partons p1 and p2 in the Col_str Cs.
When the gluon is inserted before the emitter in a Quark_line, the amplitude comes with a minus sign.
|
inline |
|
inline |
Returns true, if full CF is used.
Definition at line 96 of file Col_functions.h.
References full_CF.
|
inline |
|
inline |
Returns the normalization of the generators, tr(t^a t^b)=TR*delta^{a,b}.
Definition at line 90 of file Col_functions.h.
References TR.
Takes the leading part of a matrix of Polynomials, keeping only those with maximal power of CF plus Nc.
If full_CF is false (default), CF is replaced by TR Nc. If full_CF is true CF is replaced by TR(Nc^2-1)/Nc. Note that taking the leading terms of a Poly_matr is not the same as taking the leading terms in each Poly_vec.
Take the leading part of a Poly_vec.
Keeps only Monomials with maximal power of CF plus Nc, uses leading( const Polynomial & Poly). If full_CF is false (default), CF is replaced by TR Nc. If full_CF is true CF is replaced by TR(Nc^2-1)/Nc. Note that taking the leading terms of a Poly_vec is not the same as taking the leading terms in each Polynomial.
Polynomial ColorFull::Col_functions::leading | ( | const Polynomial & | Poly | ) | const |
Takes the leading Nc terms of a Polynonmial, i.e.
Monomials with highest power of Nc+CF. If full_CF is false (default), CF is replaced by TR Nc. If full_CF is true CF is replaced by TR(Nc^2-1)/Nc.
Numerically evaluates a Poly_vec (vector of Polynomial) and stores in the form of a Poly_vec, uses polynomial_cnum_num( Pv.at( p ) ).
for each Polynomial.
dmatr ColorFull::Col_functions::read_in_dmatr | ( | std::string | filename | ) | const |
Reads in a numerical matrix and save it as a double matrix, dmatr.
The file should be of the format {{d11,...,d1n}, ..., {dn1,...,dnn}}, and may contain comment lines starting with # at the top.
dvec ColorFull::Col_functions::read_in_dvec | ( | std::string | filename | ) | const |
Reads in a numerical vector and save it as a double vector, dvec.
The file should be of the format {d11,...,d1n}, and may contain comment lines starting with # at the top.
Col_amp ColorFull::Col_functions::rename_partons | ( | const Col_amp & | , |
const std::map< int, int > | replacements | ||
) | const |
Function that renames the partons in a Col_amp using a map where, in each pair, the first number is to be replaced by the second.
(The Col_functions member function default_parton_numbers returns a map where the partons are given default numbers.)
Col_str ColorFull::Col_functions::rename_partons | ( | const Col_str & | , |
const std::map< int, int > | replacements | ||
) | const |
Function that renames the partons in a Col_str using a map where, in each pair, the first number is to be replaced by the second.
(The Col_functions member function default_parton_numbers returns a map where the partons are given default numbers.)
Polynomial ColorFull::Col_functions::scalar_product | ( | const Col_amp & | Ca1, |
const Col_amp & | Ca2 | ||
) | const |
Function for calculating the scalar products between Col_amps.
Does not add implicit state in the gluons only case.
Polynomial ColorFull::Col_functions::scalar_product | ( | const Col_str & | Cs1, |
const Col_str & | Cs2 | ||
) | const |
Function for calculating the scalar product between two Col_strs.
Does not add implicit state in the gluons only case.
|
inline |
Set the value of CF.
The value of Nc is NOT adjusted accordingly.
Definition at line 78 of file Col_functions.h.
References CF.
|
inline |
|
inline |
Set the number of colors.
The value of CF is adjusted accordingly.
Definition at line 64 of file Col_functions.h.
|
inline |
Set the normalization of the generators.
The value of CF is adjusted accordingly.
Definition at line 71 of file Col_functions.h.
|
private |
|
private |
While evaluating leading terms one may want to keep the full value of CF for TR(Nc^2-1)/Nc, or only keep the leading Nc term =TR*Nc (default).
full_CF is used by the Polynomial version of leading (and hence also Poly_vec and Poly_matr versions etc). The leading functions replaces CF by TR*Nc if full_CF is false (default) while evaluating the leading terms. If full_CF is true, CF is replaced by TR(Nc^2-1)/Nc. Clearly this affects the result of subsequent numerical evaluation. In the Col_basis class (and derived) the matrix version of leading is used to evaluate scalar product matrices.
Definition at line 53 of file Col_functions.h.
Referenced by get_full_CF(), and set_full_CF().
|
private |
The number of colors, used in numerical results, changed by using set_Nc.
Definition at line 31 of file Col_functions.h.
|
private |
The trace convention Tr( t^a t^a )=TR (no sum).
The normalization of the SU(Nc) generators, to be used in numerical evaluation, changed by using set_TR. The value 1/2 corresponds to the Gell-Mann normalization.
Definition at line 37 of file Col_functions.h.