ThePEG is hosted by Hepforge, IPPP Durham
ThePEG  2.1.0
ThePEG::ColourSinglet Class Reference

A ColourSinglet object represents a set of colour-connected partons in a total colour-singlet state. More...

#include <ColourSinglet.h>

Public Types

typedef deque< tcPPtrStringPiece
 A piece of string. More...
 
typedef StringPiece::size_type Index
 An integer type used as index in a string pieece. More...
 
typedef pair< Index, IndexJunction
 Representaion of a junction. More...
 

Public Member Functions

 ColourSinglet ()
 Default constructor.
 
 ColourSinglet (tcColinePtr cl, tcParticleSet &left)
 Constructor taking an initial colour line and a set of partons to select from.
 
tcPVectorpartons ()
 Access the vector of partons.
 
const tcPVectorpartons () const
 Access the vector of partons.
 
tcPPtr parton (tcPVector::size_type i) const
 Access a parton giving an index.
 
LorentzMomentum momentum () const
 Return the total momentum for the partons in the colour singlet.
 
Index nPieces () const
 Return the number of string pieces.
 
StringPiecepiece (Index i)
 Return the partons belonging to string piece with index i (note that the indices starts with 1).
 
const StringPiecepiece (Index i) const
 Return the partons belonging to string piece with index i (note that the indices starts with 1).
 
Junctionjunction (Index i, bool forward)
 Return the sink (or source if forward is false) neighbors of a string piece with index i (note that the indices starts with 1).
 
const Junctionjunction (Index i, bool forward) const
 Return the sink (or source if forward is false) neighbors of a string piece with index i (note that the indices starts with 1).
 
Junctionsink (Index i)
 Return the sink or source neighbors of a string piece with index i (note that the indices starts with 1).
 
const Junctionsink (Index i) const
 Return the sink or source neighbors of a string piece with index i (note that the indices starts with 1).
 
Junctionsource (Index i)
 Return the sink or source neighbors of a string piece with index i (note that the indices starts with 1).
 
const Junctionsource (Index i) const
 Return the sink or source neighbors of a string piece with index i (note that the indices starts with 1).
 
tcPDVector getTripletData () const
 Return a vector with data objects corresponding to all triplet partons in this singlet.
 
ColourSinglet splitInternal (Index sp=0)
 Split a junction string. More...
 
ColourSinglet splitInternal (Index sp, Index sa, Index sc, const vector< bool > &assing)
 Split a junction string. More...
 
ColourSinglet splitDiQuarkJunction (Index sp, tcPPtr diq, tcPPair qq, const vector< bool > &assign=vector< bool >())
 Split a junction string. More...
 
ColourSinglet splitDiDiQuark (tcPPair qq1, tcPPair qq2, const vector< bool > &assign=vector< bool >())
 Split a di-quark string. More...
 
void swap (ColourSinglet &x)
 Swap this colour singlet for the argument.
 

Static Public Member Functions

static vector< ColourSingletgetSinglets (tcParticleSet &left)
 Extract colour-singlet strings/clusters of partons from the given set. More...
 
template<typename Iterator >
static vector< ColourSingletgetSinglets (Iterator first, Iterator last)
 Extract colour-singlet strings/clusters of partons from the given range of particles.
 

Protected Member Functions

 ColourSinglet (const ColourSinglet &cs, Index si)
 Internal constructor. More...
 

Private Member Functions

bool fill (Index s0, bool forward, tcColinePtr first, tcParticleSet &left)
 Fill a string piece. More...
 
void fill (Index i0, bool forward, const ColourSinglet &cs, Index i1)
 Fill a string piece. More...
 
Index addPiece ()
 Add a new string piece and return its index.
 
Junction addJunction (Index s0, bool forward)
 Add a junction which is a source (or sink if forward) to the string piece s0. More...
 

Private Attributes

tcPVector thePartons
 The vector of all partons.
 
vector< StringPiecethePieces
 The different string pieces.
 
vector< JunctiontheSources
 The source neighbours of the string pieces.
 
vector< JunctiontheSinks
 The sink neighbours of the string pieces.
 

Detailed Description

A ColourSinglet object represents a set of colour-connected partons in a total colour-singlet state.

The simplest form is a single string represented by a vector of partons starting from a colour-triplet parton followed by a number of colour-octet partons and ending in a anti-triplet. A closed string is represented by a vector of colour-octet partons. If junctions are present, there will be a vector of string pieces containing the associated partons, with associated information about the string pieces connected via sinks or sources.

See also
ColourLine
Particle

Definition at line 31 of file ColourSinglet.h.

Member Typedef Documentation

◆ Index

typedef StringPiece::size_type ThePEG::ColourSinglet::Index

An integer type used as index in a string pieece.

Definition at line 38 of file ColourSinglet.h.

◆ Junction

Representaion of a junction.

Definition at line 40 of file ColourSinglet.h.

◆ StringPiece

A piece of string.

Definition at line 36 of file ColourSinglet.h.

Constructor & Destructor Documentation

◆ ColourSinglet()

ThePEG::ColourSinglet::ColourSinglet ( const ColourSinglet cs,
Index  si 
)
protected

Internal constructor.

When splitting an internal line, create a new colour singlet starting from the string piece si in the singlet cs.

Member Function Documentation

◆ addJunction()

Junction ThePEG::ColourSinglet::addJunction ( Index  s0,
bool  forward 
)
private

Add a junction which is a source (or sink if forward) to the string piece s0.

Return the indices of the two connected string pieces.

Referenced by addPiece().

◆ fill() [1/2]

bool ThePEG::ColourSinglet::fill ( Index  s0,
bool  forward,
tcColinePtr  first,
tcParticleSet left 
)
private

Fill a string piece.

Follow a colour line forward in colour removing partons from the left set and adding them to the string piece s0 as we go along. If a line ends in a colour sink/source, follow the other two colour lines in turn with the value of forward reversed.

Referenced by swap().

◆ fill() [2/2]

void ThePEG::ColourSinglet::fill ( Index  i0,
bool  forward,
const ColourSinglet cs,
Index  i1 
)
private

Fill a string piece.

When creating a new singlet from an old one which has been split, add the string piece i1. If it ends in a sink or a source add the neighbors recursively.

◆ getSinglets()

static vector<ColourSinglet> ThePEG::ColourSinglet::getSinglets ( tcParticleSet left)
static

Extract colour-singlet strings/clusters of partons from the given set.

The set will be empty afterwards if all went well - even colour-singlet particles will be removed.

Referenced by getSinglets(), and source().

◆ splitDiDiQuark()

ColourSinglet ThePEG::ColourSinglet::splitDiDiQuark ( tcPPair  qq1,
tcPPair  qq2,
const vector< bool > &  assign = vector< bool >() 
)

Split a di-quark string.

If this singlet is a simple string with (anti-)diquarks in both ends, split the diquarks into the given quark pairs and create two new string pieces the betwen the quark and anit-quarks, adding the remaining partons to the first piece if the corresponding assign element is true. The singlet will then split into two - one is returned and this will contain the other. Note that the parent-children relationship and colour flows of the diquark and the two quarks is not handled by this function.

Referenced by getSinglets().

◆ splitDiQuarkJunction()

ColourSinglet ThePEG::ColourSinglet::splitDiQuarkJunction ( Index  sp,
tcPPtr  diq,
tcPPair  qq,
const vector< bool > &  assign = vector< bool >() 
)

Split a junction string.

If a sting piece sp is connected to a junction and ends in a diquark diq, split the diquark into two quarks, remove the junction, adding the other partons to the first neighbouring string piece if the corresponding assign element is true. The singlet will then split into two - one is returned and this will contain the other. Note that the parent-children relationship and colour flows of the diquark and the two quarks is not handled by this function.

Referenced by getSinglets().

◆ splitInternal() [1/2]

ColourSinglet ThePEG::ColourSinglet::splitInternal ( Index  sp = 0)

Split a junction string.

Split an internal string piece sp (one that starts from a source and ends in a sink). Randomly pair together the connectin string pieces and randomly assign possible colour octet partons to the two joined string pieces. The singlet will then split into two - one is returned and this will contain the other. If no argument is given, a random internal line will be picked.

Referenced by getSinglets().

◆ splitInternal() [2/2]

ColourSinglet ThePEG::ColourSinglet::splitInternal ( Index  sp,
Index  sa,
Index  sc,
const vector< bool > &  assing 
)

Split a junction string.

Split an internal string piece sp (one that starts from a source and ends in a sink). The source neighbour sa will be joined with the sink neighbour sc. Possible colour octet partons in the split string piece will be assigned to the joined sa-sc string piece if the corresponing assign element is true. The singlet will then split into two - one is returned and this will contain the other.


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