ThePEG 2.3.0
|
A 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. | |
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.
Definition at line 31 of file ColourSinglet.h.
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.
typedef pair<Index,Index> ThePEG::ColourSinglet::Junction |
Representaion of a junction.
Definition at line 40 of file ColourSinglet.h.
typedef deque<tcPPtr> ThePEG::ColourSinglet::StringPiece |
A piece of string.
Definition at line 36 of file ColourSinglet.h.
|
inline |
Default constructor.
Definition at line 47 of file ColourSinglet.h.
|
protected |
Internal constructor.
When splitting an internal line, create a new colour singlet starting from the string piece si in the singlet cs.
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.
|
inlineprivate |
Add a new string piece and return its index.
Definition at line 248 of file ColourSinglet.h.
References nPieces(), thePieces, theSinks, and theSources.
|
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.
|
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.
|
inlinestatic |
Extract colour-singlet strings/clusters of partons from the given range of particles.
Definition at line 155 of file ColourSinglet.h.
References getSinglets().
|
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().
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.
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.
|
inline |
Return the number of string pieces.
Definition at line 89 of file ColourSinglet.h.
References thePieces.
Referenced by addPiece().
|
inline |
Access a parton giving an index.
Definition at line 79 of file ColourSinglet.h.
References thePartons.
|
inline |
|
inline |
|
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.
|
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.
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().
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.
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().
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.
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.
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::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::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.
|
inline |
Swap this colour singlet for the argument.
Definition at line 220 of file ColourSinglet.h.
References thePartons, thePieces, theSinks, and theSources.
|
private |
The vector of all partons.
Definition at line 275 of file ColourSinglet.h.
|
private |
The different string pieces.
Definition at line 280 of file ColourSinglet.h.
Referenced by addPiece(), nPieces(), piece(), and swap().
|
private |
The sink neighbours of the string pieces.
Definition at line 290 of file ColourSinglet.h.
Referenced by addPiece(), sink(), and swap().
|
private |
The source neighbours of the string pieces.
Definition at line 285 of file ColourSinglet.h.
Referenced by addPiece(), source(), and swap().