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

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. More...
 
 Col_str (Quark_line Ql)
 Make a Col_str of a Quark_line.
 
const Quark_lineat (int i) const
 Returns the Quark_line at place i.
 
Quark_lineat (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. More...
 
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. More...
 
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. More...
 
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. More...
 
int n_quark () const
 Counts the number of quarks (=number of anti-quarks) in a Col_str. More...
 
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. More...
 
int smallest (const Col_str &Cs1, const Col_str &Cs2) const
 Finds out the "smallest" Col_str of two Col_strs, i.e. More...
 
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. More...
 
void conjugate ()
 Function for conjugating the Col_str by conjugating each Quark_line in cs, as well as the Polynomial Poly. More...
 
void contract_next_neighboring_gluons ()
 Contracts neighboring and next to neighboring gluons in each Quark_line in the Col_str, starting with contracting neighbors. More...
 
void contract_2_rings ()
 Function for contracting gluon indices in closed Quark_lines with only 2 gluons. More...
 
void contract_quarks (const Col_str Cs1, const Col_str Cs2)
 Function for contracting quarks between two color structures Cs1 and Cs2. More...
 

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. More...
 
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. More...
 
void Col_str_of_str (const std::string str)
 Function to allow setting the color structure by using a string. More...
 
void col_str_of_str (std::string)
 Setting the col_str member cs (i.e. More...
 

Detailed Description

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.

Definition at line 26 of file Col_str.h.

Constructor & Destructor Documentation

◆ Col_str()

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.)

Member Function Documentation

◆ Col_str_of_str()

void ColorFull::Col_str::Col_str_of_str ( const std::string  str)
private

Function to allow setting the color structure by using a string.

Used by string constructor and by

Referenced by append().

◆ col_str_of_str()

void ColorFull::Col_str::col_str_of_str ( std::string  )
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.

Referenced by append().

◆ compare_quark_lines()

int ColorFull::Col_str::compare_quark_lines ( int  i1,
int  i2 
) const
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.

Referenced by append().

◆ conjugate()

void ColorFull::Col_str::conjugate ( )

Function for conjugating the Col_str by conjugating each Quark_line in cs, as well as the Polynomial Poly.

Referenced by append().

◆ contract_2_rings()

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.

Referenced by append().

◆ contract_next_neighboring_gluons()

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.

Referenced by append().

◆ contract_quarks()

void ColorFull::Col_str::contract_quarks ( const Col_str  Cs1,
const Col_str  Cs2 
)

Function for contracting quarks between two color structures Cs1 and Cs2.

The result is stored in the Col_str itself.

Referenced by append().

◆ find_kind()

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.

Referenced by append().

◆ insert()

void ColorFull::Col_str::insert ( int  i,
int  j,
int  part_num 
)

To insert the parton part_num in quark_line i at place j.

Referenced by append().

◆ n_gluon()

int ColorFull::Col_str::n_gluon ( ) const

Counts the number of gluons in a Col_str.

Counts all gluon indices, both free and contractable.

Referenced by append().

◆ n_quark()

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.

Referenced by append().

◆ normal_order()

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.

Referenced by append().

◆ simplify()

void ColorFull::Col_str::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.

Referenced by append().

◆ smallest()

int ColorFull::Col_str::smallest ( const Col_str Cs1,
const Col_str Cs2 
) const

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.

Referenced by append().

◆ write_out_Col_str()

void ColorFull::Col_str::write_out_Col_str ( std::string  filename) const

Function for writing out the Col_str to a file with name filename.

Referenced by append().

Member Data Documentation

◆ cs

col_str ColorFull::Col_str::cs

For containing the information about the color structure, a direct product of Quark_lines, contained in a vector of quark-lines.

Definition at line 46 of file Col_str.h.

Referenced by append(), and Col_str().


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