Herwig 7.3.0
|
A class to contain ONE color structure, a direct product of Quark_lines, multiplying a Polynomial, Poly. More...
#include <Col_str.h>
Public Member Functions | |
Col_str () | |
Default constructor, leaves cs empty. | |
Col_str (const std::string str) | |
Constructor for setting the color structure using a string. | |
Col_str (Quark_line Ql) | |
Make a Col_str of a Quark_line. | |
const Quark_line & | at (int i) const |
Returns the Quark_line at place i. | |
Quark_line & | at (int i) |
Returns the Quark_line at place i. | |
int | at (int i, int j) const |
Returns the parton at place j in Quark_line i. | |
uint | size () const |
The size of the col_str. | |
bool | empty () const |
Is the col_str empty? | |
void | clear () |
Erase information in col_str. | |
void | erase (int i) |
Erases the Quark_line at place i. | |
void | erase (int i, int j) |
Erases the parton at place i, j. | |
void | erase (std::pair< int, int > place) |
Erases a parton at location place. | |
void | append (Quark_line Ql) |
Appends a Quark_line to data member cs. | |
void | insert (int i, int j, int part_num) |
To insert the parton part_num in quark_line i at place j. | |
void | append (col_str cs_in) |
Append the content of a col_str to the cs of the Col_str. | |
void | read_in_Col_str (std::string filename) |
Function for reading in the Col_str from the file filename. | |
void | write_out_Col_str (std::string filename) const |
Function for writing out the Col_str to a file with name filename. | |
std::pair< int, int > | find_parton (int part_num) const |
Locates the parton with number part_num in a Col_str. | |
bool | neighbor (int p1, int p2) const |
Function for telling if the partons p1 and p2 are neighbors. | |
bool | right_neighbor (int p1, int p2) const |
Function for telling if parton p2 stands to the right of parton p1. | |
bool | left_neighbor (int p1, int p2) const |
Function for telling if parton p2 stands to the left of parton p1. | |
void | replace (int old_ind, int new_ind) |
Replaces the parton index old_ind with new_ind. | |
std::string | find_kind (int p) const |
Finds out if a parton is a quark, anti-quark or a gluon, returns "q", "qbar" or "g" respectively. | |
bool | gluons_only () const |
Checks if the amplitude only has gluons, i.e. if all Quark_lines are closed. | |
int | n_gluon () const |
Counts the number of gluons in a Col_str. | |
int | n_quark () const |
Counts the number of quarks (=number of anti-quarks) in a Col_str. | |
void | normal_order () |
Normal orders the Col_str by first normal order individual Quark_lines and then normal order different Quark_lines in the cs. | |
int | smallest (const Col_str &Cs1, const Col_str &Cs2) const |
Finds out the "smallest" Col_str of two Col_strs, i.e. | |
int | longest_quark_line () const |
Returns the length of the longest Quark_line in the Col_str. | |
void | remove_1_rings () |
Removes Quark_lines with only one gluon as Tr(t^a)=0. | |
void | remove_0_rings () |
Removes Quark_lines without partons, equal to Nc (closed) or 1 (open). | |
void | simplify () |
Removes 0 and 1-rings, moves factors multiplying the individual Quark_lines to multiply the col_str instead (i.e., being stored in Poly) simplifies the Polynomial and normal orders the quark_lines. | |
void | conjugate () |
Function for conjugating the Col_str by conjugating each Quark_line in cs, as well as the Polynomial Poly. | |
void | contract_next_neighboring_gluons () |
Contracts neighboring and next to neighboring gluons in each Quark_line in the Col_str, starting with contracting neighbors. | |
void | contract_2_rings () |
Function for contracting gluon indices in closed Quark_lines with only 2 gluons. | |
void | contract_quarks (const Col_str Cs1, const Col_str Cs2) |
Function for contracting quarks between two color structures Cs1 and Cs2. | |
Public Attributes | |
col_str | cs |
For containing the information about the color structure, a direct product of Quark_lines, contained in a vector of quark-lines. | |
Polynomial | Poly |
Polynomial factor multiplying the whole product of quark-lines. | |
Private Member Functions | |
int | compare_quark_lines (int i1, int i2) const |
Function to tell which quark_line should stand first in normal order. | |
void | Col_str_of_str (const std::string str) |
Function to allow setting the color structure by using a string. | |
void | col_str_of_str (std::string) |
Setting the col_str member cs (i.e. | |
A class to contain ONE color structure, a direct product of Quark_lines, multiplying a Polynomial, Poly.
The Quark_lines are stored as components in a vector, a col_str.
|
inline |
ColorFull::Col_str::Col_str | ( | const std::string | str | ) |
Constructor for setting the color structure using a string.
Should be used as: "Col_str Cs("2*Nc*TR^(3) [{1,2,3,4}(5,6)(7,8)(9,10,11,12)]");", i.e. the argument should be a Polynomial * col_str. (The Polynomial should multiply the whole col_str, rather than a quark_line inside the [] brackets.)
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
private |
Function to allow setting the color structure by using a string.
Used by string constructor and by
|
private |
Setting the col_str member cs (i.e.
the non-Polynomial information) using a string, used by Col_str_of_str and read_in_Col_str.
|
private |
Function to tell which quark_line should stand first in normal order.
The quark_lines at place i1 and i2 are compared. Returns i1 if i1 should stand first, i2 if i2 should stand first and i1 if the quark_lines are equal.
void ColorFull::Col_str::contract_2_rings | ( | ) |
Function for contracting gluon indices in closed Quark_lines with only 2 gluons.
This removes the 2-ring, replaces one of the gluon indices,, and multiplies with a factor tr[t^a t^a]=TR (no sum), only intended for fully contractable Col_strs.
void ColorFull::Col_str::contract_next_neighboring_gluons | ( | ) |
Contracts neighboring and next to neighboring gluons in each Quark_line in the Col_str, starting with contracting neighbors.
This function should only be used on Col_strs with only closed Quark_lines.
Function for contracting quarks between two color structures Cs1 and Cs2.
The result is stored in the Col_str itself.
|
inline |
std::string ColorFull::Col_str::find_kind | ( | int | p | ) | const |
Finds out if a parton is a quark, anti-quark or a gluon, returns "q", "qbar" or "g" respectively.
This function does NOT loop over all partons, but assumes that the parton is a gluon if the Quark_line is closed, or if the Quark_line is open, but p cannot be found in the ends.
int ColorFull::Col_str::n_gluon | ( | ) | const |
Counts the number of gluons in a Col_str.
Counts all gluon indices, both free and contractable.
int ColorFull::Col_str::n_quark | ( | ) | const |
Counts the number of quarks (=number of anti-quarks) in a Col_str.
Counts all quark indices, both free and contracted.
void ColorFull::Col_str::normal_order | ( | ) |
Normal orders the Col_str by first normal order individual Quark_lines and then normal order different Quark_lines in the cs.
For the ordering see the member function smallest in this class and in the Quark_line class.
|
inline |
Finds out the "smallest" Col_str of two Col_strs, i.e.
which Col_str should stand first in a normal ordered Col_amp or basis. Returns 1, if Cs1 should stand before Cs2 and 2 if Cs2 should stand before Cs1. Both Col_strs have to be normal ordered for the result to be unique. The Col_strs are ordered by (1) number of Quark_lines (2) if the Quark_line at place 0,1,2... is open or not (3) the size of the Quark_line at place 1,2,3... (4) the parton numbers in the Quark_lines at place 1,2,3..., i.e. first the first parton in the first Quark_line is checked and last the last parton in the last Quark_line. The function returns 0 if Cs1=Cs2.
col_str ColorFull::Col_str::cs |
Polynomial ColorFull::Col_str::Poly |
Polynomial factor multiplying the whole product of quark-lines.