thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.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.
 
typedef StringPiece::size_type Index
 An integer type used as index in a string pieece.
 
typedef pair< Index, IndexJunction
 Representaion of a junction.
 

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.
 
ColourSinglet splitInternal (Index sp, Index sa, Index sc, const vector< bool > &assing)
 Split a junction string.
 
ColourSinglet splitDiQuarkJunction (Index sp, tcPPtr diq, tcPPair qq, const vector< bool > &assign=vector< bool >())
 Split a junction string.
 
ColourSinglet splitDiDiQuark (tcPPair qq1, tcPPair qq2, const vector< bool > &assign=vector< bool >())
 Split a di-quark string.
 
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.
 
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.
 

Private Member Functions

bool fill (Index s0, bool forward, tcColinePtr first, tcParticleSet &left)
 Fill a string piece.
 
void fill (Index i0, bool forward, const ColourSinglet &cs, Index i1)
 Fill a string piece.
 
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.
 

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() [1/2]

ThePEG::ColourSinglet::ColourSinglet ( )
inline

Default constructor.

Definition at line 47 of file ColourSinglet.h.

◆ ColourSinglet() [2/2]

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.

◆ addPiece()

Index ThePEG::ColourSinglet::addPiece ( )
inlineprivate

Add a new string piece and return its index.

Definition at line 248 of file ColourSinglet.h.

References nPieces(), thePieces, theSinks, and theSources.

◆ fill() [1/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.

◆ fill() [2/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.

◆ getSinglets() [1/2]

template<typename Iterator >
static vector< ColourSinglet > ThePEG::ColourSinglet::getSinglets ( Iterator  first,
Iterator  last 
)
inlinestatic

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

Definition at line 155 of file ColourSinglet.h.

References getSinglets().

◆ getSinglets() [2/2]

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

◆ junction() [1/2]

Junction & ThePEG::ColourSinglet::junction ( Index  i,
bool  forward 
)
inline

Return the sink (or source if forward is false) neighbors of a string piece with index i (note that the indices starts with 1).

Definition at line 107 of file ColourSinglet.h.

References sink(), and source().

◆ junction() [2/2]

const Junction & ThePEG::ColourSinglet::junction ( Index  i,
bool  forward 
) const
inline

Return the sink (or source if forward is false) neighbors of a string piece with index i (note that the indices starts with 1).

Definition at line 115 of file ColourSinglet.h.

References sink(), and source().

◆ nPieces()

Index ThePEG::ColourSinglet::nPieces ( ) const
inline

Return the number of string pieces.

Definition at line 89 of file ColourSinglet.h.

References thePieces.

Referenced by addPiece().

◆ parton()

tcPPtr ThePEG::ColourSinglet::parton ( tcPVector::size_type  i) const
inline

Access a parton giving an index.

Definition at line 79 of file ColourSinglet.h.

References thePartons.

◆ partons() [1/2]

tcPVector & ThePEG::ColourSinglet::partons ( )
inline

Access the vector of partons.

Definition at line 69 of file ColourSinglet.h.

References thePartons.

◆ partons() [2/2]

const tcPVector & ThePEG::ColourSinglet::partons ( ) const
inline

Access the vector of partons.

Definition at line 74 of file ColourSinglet.h.

References thePartons.

◆ piece() [1/2]

StringPiece & ThePEG::ColourSinglet::piece ( Index  i)
inline

Return the partons belonging to string piece with index i (note that the indices starts with 1).

Definition at line 95 of file ColourSinglet.h.

References thePieces.

◆ piece() [2/2]

const StringPiece & ThePEG::ColourSinglet::piece ( Index  i) const
inline

Return the partons belonging to string piece with index i (note that the indices starts with 1).

Definition at line 101 of file ColourSinglet.h.

References thePieces.

◆ sink() [1/2]

Junction & ThePEG::ColourSinglet::sink ( Index  i)
inline

Return the sink or source neighbors of a string piece with index i (note that the indices starts with 1).

Definition at line 123 of file ColourSinglet.h.

References theSinks.

Referenced by junction().

◆ sink() [2/2]

const Junction & ThePEG::ColourSinglet::sink ( Index  i) const
inline

Return the sink or source neighbors of a string piece with index i (note that the indices starts with 1).

Definition at line 129 of file ColourSinglet.h.

References theSinks.

◆ source() [1/2]

Junction & ThePEG::ColourSinglet::source ( Index  i)
inline

Return the sink or source neighbors of a string piece with index i (note that the indices starts with 1).

Definition at line 135 of file ColourSinglet.h.

References theSources.

Referenced by junction().

◆ source() [2/2]

const Junction & ThePEG::ColourSinglet::source ( Index  i) const
inline

Return the sink or source neighbors of a string piece with index i (note that the indices starts with 1).

Definition at line 140 of file ColourSinglet.h.

References theSources.

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

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

◆ splitInternal() [1/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.

◆ splitInternal() [2/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.

◆ swap()

void ThePEG::ColourSinglet::swap ( ColourSinglet x)
inline

Swap this colour singlet for the argument.

Definition at line 220 of file ColourSinglet.h.

References thePartons, thePieces, theSinks, and theSources.

Member Data Documentation

◆ thePartons

tcPVector ThePEG::ColourSinglet::thePartons
private

The vector of all partons.

Definition at line 275 of file ColourSinglet.h.

Referenced by parton(), partons(), and swap().

◆ thePieces

vector<StringPiece> ThePEG::ColourSinglet::thePieces
private

The different string pieces.

Definition at line 280 of file ColourSinglet.h.

Referenced by addPiece(), nPieces(), piece(), and swap().

◆ theSinks

vector<Junction> ThePEG::ColourSinglet::theSinks
private

The sink neighbours of the string pieces.

Definition at line 290 of file ColourSinglet.h.

Referenced by addPiece(), sink(), and swap().

◆ theSources

vector<Junction> ThePEG::ColourSinglet::theSources
private

The source neighbours of the string pieces.

Definition at line 285 of file ColourSinglet.h.

Referenced by addPiece(), source(), and swap().


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