ColourSinglet
object represents a set of colour-connected partons in a total colour-singlet state.
More...
#include <ColourSinglet.h>
Public Types | |
typedef deque< tcPPtr > | StringPiece |
A piece of string. | |
typedef StringPiece::size_type | Index |
An integer type used as index in a string pieece. | |
typedef pair< Index, Index > | Junction |
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. | |
tcPVector & | partons () |
Access the vector of partons. | |
const tcPVector & | partons () 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. | |
StringPiece & | piece (Index i) |
Return the partons belonging to string piece with index i (note that the indices starts with 1). | |
const StringPiece & | piece (Index i) const |
Return the partons belonging to string piece with index i (note that the indices starts with 1). | |
Junction & | junction (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 Junction & | junction (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). | |
Junction & | sink (Index i) |
Return the sink or source neighbors of a string piece with index i (note that the indices starts with 1). | |
const Junction & | sink (Index i) const |
Return the sink or source neighbors of a string piece with index i (note that the indices starts with 1). | |
Junction & | source (Index i) |
Return the sink or source neighbors of a string piece with index i (note that the indices starts with 1). | |
const Junction & | source (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< ColourSinglet > | getSinglets (tcParticleSet &left) |
Extract colour-singlet strings/clusters of partons from the given set. | |
template<typename Iterator> | |
static vector< ColourSinglet > | getSinglets (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< StringPiece > | thePieces |
The different string pieces. | |
vector< Junction > | theSources |
The source neighbours of the string pieces. | |
vector< Junction > | theSinks |
The sink neighbours of the string pieces. |
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.
Definition at line 31 of file ColourSinglet.h.
typedef deque<tcPPtr> ThePEG::ColourSinglet::StringPiece |
typedef StringPiece::size_type ThePEG::ColourSinglet::Index |
typedef pair<Index,Index> ThePEG::ColourSinglet::Junction |
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.
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().
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.
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.
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.
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.
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.
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.
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.