colorfull is hosted by Hepforge, IPPP Durham
ColorFull  1.1
ColorFull::Col_str Class Reference

#include <Col_str.h>

Public Member Functions

 Col_str ()
 
 Col_str (const std::string str)
 
 Col_str (Quark_line Ql)
 
const Quark_lineat (int i) const
 
Quark_lineat (int i)
 
int at (int i, int j) const
 
uint size () const
 
bool empty () const
 
void clear ()
 
void erase (int i)
 
void erase (int i, int j)
 
void erase (std::pair< int, int > place)
 
void append (Quark_line Ql)
 
void insert (int i, int j, int part_num)
 
void append (col_str cs_in)
 
void read_in_Col_str (std::string filename)
 
void write_out_Col_str (std::string filename) const
 
std::pair< int, int > find_parton (int part_num) const
 
bool neighbor (int p1, int p2) const
 
bool right_neighbor (int p1, int p2) const
 
bool left_neighbor (int p1, int p2) const
 
void replace (int old_ind, int new_ind)
 
std::string find_kind (int p) const
 
bool gluons_only () const
 
int n_gluon () const
 
int n_quark () const
 
void normal_order ()
 
int smallest (const Col_str &Cs1, const Col_str &Cs2) const
 
int longest_quark_line () const
 
void remove_1_rings ()
 
void remove_0_rings ()
 
void simplify ()
 
void conjugate ()
 
void contract_next_neighboring_gluons ()
 
void contract_2_rings ()
 
void contract_quarks (const Col_str Cs1, const Col_str Cs2)
 

Public Attributes

col_str cs
 
Polynomial Poly
 

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.

Constructor & Destructor Documentation

◆ Col_str() [1/3]

ColorFull::Col_str::Col_str ( )
inline

Default constructor, leaves cs empty.

◆ Col_str() [2/3]

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

◆ Col_str() [3/3]

ColorFull::Col_str::Col_str ( Quark_line  Ql)
inline

Make a Col_str of a Quark_line.

Member Function Documentation

◆ append() [1/2]

void ColorFull::Col_str::append ( Quark_line  Ql)
inline

Appends a Quark_line to data member cs.

◆ append() [2/2]

void ColorFull::Col_str::append ( col_str  cs_in)

Append the content of a col_str to the cs of the Col_str.

◆ at() [1/3]

const Quark_line& ColorFull::Col_str::at ( int  i) const
inline

Returns the Quark_line at place i.

◆ at() [2/3]

Quark_line& ColorFull::Col_str::at ( int  i)
inline

Returns the Quark_line at place i.

◆ at() [3/3]

int ColorFull::Col_str::at ( int  i,
int  j 
) const

Returns the parton at place j in Quark_line i.

◆ clear()

void ColorFull::Col_str::clear ( )
inline

Erase information in col_str.

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

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

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

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

◆ empty()

bool ColorFull::Col_str::empty ( ) const
inline

Is the col_str empty?

◆ erase() [1/3]

void ColorFull::Col_str::erase ( int  i)

Erases the Quark_line at place i.

◆ erase() [2/3]

void ColorFull::Col_str::erase ( int  i,
int  j 
)

Erases the parton at place i, j.

◆ erase() [3/3]

void ColorFull::Col_str::erase ( std::pair< int, int >  place)

Erases a parton at location place.

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

◆ find_parton()

std::pair<int, int> ColorFull::Col_str::find_parton ( int  part_num) const

Locates the parton with number part_num in a Col_str.

◆ gluons_only()

bool ColorFull::Col_str::gluons_only ( ) const

Checks if the amplitude only has gluons, i.e. if all Quark_lines are closed.

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

◆ left_neighbor()

bool ColorFull::Col_str::left_neighbor ( int  p1,
int  p2 
) const

Function for telling if parton p2 stands to the left of parton p1.

◆ longest_quark_line()

int ColorFull::Col_str::longest_quark_line ( ) const

Returns the length of the longest Quark_line in the Col_str.

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

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

◆ neighbor()

bool ColorFull::Col_str::neighbor ( int  p1,
int  p2 
) const

Function for telling if the partons p1 and p2 are neighbors.

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

◆ read_in_Col_str()

void ColorFull::Col_str::read_in_Col_str ( std::string  filename)

Function for reading in the Col_str from the file filename.

◆ remove_0_rings()

void ColorFull::Col_str::remove_0_rings ( )

Removes Quark_lines without partons, equal to Nc (closed) or 1 (open).

◆ remove_1_rings()

void ColorFull::Col_str::remove_1_rings ( )

Removes Quark_lines with only one gluon as Tr(t^a)=0.

◆ replace()

void ColorFull::Col_str::replace ( int  old_ind,
int  new_ind 
)

Replaces the parton index old_ind with new_ind.

◆ right_neighbor()

bool ColorFull::Col_str::right_neighbor ( int  p1,
int  p2 
) const

Function for telling if parton p2 stands to the right of parton p1.

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

◆ size()

uint ColorFull::Col_str::size ( ) const
inline

The size of the col_str.

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

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

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.

◆ Poly

Polynomial ColorFull::Col_str::Poly

Polynomial factor multiplying the whole product of quark-lines.


The documentation for this class was generated from the following file:
  • /data/Documents/eclipse/workspace/ColorFull/Col_str.h