herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
CVolver::ColourFlow Class Reference

A colour flow (basis tensor). More...

#include <ColourFlows.h>

Public Member Functions

 ColourFlow ()
 Default constructor.
 
 ColourFlow (const std::vector< size_t > &perm)
 Construct a colour flow given a permutation.
 
bool operator== (const ColourFlow &other) const
 Compare for equality.
 
bool operator!= (const ColourFlow &other) const
 Compare for inequality.
 
bool operator< (const ColourFlow &other) const
 Compare for ordering.
 
ColourFlowconjugate ()
 Conjugate this basis tensor.
 
std::size_t scalarProduct (const ColourFlow &other) const
 Return the scalar product with another basis tensor as the resulting power of N.
 
const std::vector< std::size_t > & permutation () const
 Return the permutation.
 
const std::size_t & antiColour (const std::size_t &i) const
 Return the anti-colour index connected to the given colour index.
 
std::size_t colour (const std::size_t &i) const
 Return the colour index connected to the given anti-colour index.
 
std::pair< std::size_t, std::size_t > getTranspositionOf (const ColourFlow &other) const
 Return the swapped indices, if this corresponds to a transposition of the given one, or (0,0)
 
ColourFlowswap (const std::size_t &i, const std::size_t &j)
 Act a transposition on this index.
 
ColourFlowemitSinglet ()
 Add another flow to this basis tensor; this correspons to emitting a ‘singlet’ gluon.
 
ColourFlowemitFromColour (const std::size_t &i)
 Emit a gluon on a given colour line.
 
ColourFlowemitFromAntiColour (const std::size_t &i)
 Emit a gluon on a given anti-colour line.
 
bool isNonZero (const std::vector< std::size_t > &colours, const std::vector< std::size_t > &antiColours) const
 Return true, if this colour flow is non-vanishing for the given colours and anticolours.
 
size_t nLegs () const
 Return the number of coloured legs.
 

Static Public Member Functions

template<class Rnd >
static ColourFlow randomFlow (const std::size_t &n, Rnd &rnd)
 Generate a random colour flow.
 
static std::set< ColourFlowallFlows (const std::size_t &n)
 Generate all colour flows.
 

Private Attributes

std::vector< std::size_t > thePermutation
 The vector representing the permutation of anti-fundamental w.r.t.
 

Detailed Description

A colour flow (basis tensor).

Definition at line 60 of file ColourFlows.h.

Constructor & Destructor Documentation

◆ ColourFlow() [1/2]

CVolver::ColourFlow::ColourFlow ( )
inline

Default constructor.

Definition at line 67 of file ColourFlows.h.

Referenced by randomFlow().

◆ ColourFlow() [2/2]

CVolver::ColourFlow::ColourFlow ( const std::vector< size_t > &  perm)
inlineexplicit

Construct a colour flow given a permutation.

Definition at line 72 of file ColourFlows.h.

Member Function Documentation

◆ antiColour()

const std::size_t & CVolver::ColourFlow::antiColour ( const std::size_t &  i) const
inline

Return the anti-colour index connected to the given colour index.

Definition at line 136 of file ColourFlows.h.

References thePermutation.

◆ colour()

std::size_t CVolver::ColourFlow::colour ( const std::size_t &  i) const
inline

Return the colour index connected to the given anti-colour index.

Definition at line 144 of file ColourFlows.h.

References thePermutation.

Referenced by emitFromAntiColour().

◆ conjugate()

ColourFlow & CVolver::ColourFlow::conjugate ( )
inline

Conjugate this basis tensor.

Definition at line 112 of file ColourFlows.h.

References thePermutation.

◆ emitFromAntiColour()

ColourFlow & CVolver::ColourFlow::emitFromAntiColour ( const std::size_t &  i)
inline

Emit a gluon on a given anti-colour line.

Definition at line 188 of file ColourFlows.h.

References colour(), and emitFromColour().

◆ emitFromColour()

ColourFlow & CVolver::ColourFlow::emitFromColour ( const std::size_t &  i)
inline

Emit a gluon on a given colour line.

Definition at line 178 of file ColourFlows.h.

References thePermutation.

Referenced by emitFromAntiColour().

◆ emitSinglet()

ColourFlow & CVolver::ColourFlow::emitSinglet ( )
inline

Add another flow to this basis tensor; this correspons to emitting a ‘singlet’ gluon.

Definition at line 170 of file ColourFlows.h.

References thePermutation.

◆ nLegs()

size_t CVolver::ColourFlow::nLegs ( ) const
inline

Return the number of coloured legs.

Definition at line 202 of file ColourFlows.h.

References thePermutation.

◆ operator!=()

bool CVolver::ColourFlow::operator!= ( const ColourFlow other) const
inline

Compare for inequality.

Definition at line 98 of file ColourFlows.h.

References thePermutation.

◆ operator<()

bool CVolver::ColourFlow::operator< ( const ColourFlow other) const
inline

Compare for ordering.

Definition at line 105 of file ColourFlows.h.

References thePermutation.

◆ operator==()

bool CVolver::ColourFlow::operator== ( const ColourFlow other) const
inline

Compare for equality.

Definition at line 91 of file ColourFlows.h.

References thePermutation.

◆ permutation()

const std::vector< std::size_t > & CVolver::ColourFlow::permutation ( ) const
inline

Return the permutation.

Definition at line 129 of file ColourFlows.h.

References thePermutation.

◆ randomFlow()

template<class Rnd >
static ColourFlow CVolver::ColourFlow::randomFlow ( const std::size_t &  n,
Rnd &  rnd 
)
inlinestatic

Generate a random colour flow.

Definition at line 79 of file ColourFlows.h.

References ColourFlow().

◆ swap()

ColourFlow & CVolver::ColourFlow::swap ( const std::size_t &  i,
const std::size_t &  j 
)
inline

Act a transposition on this index.

Definition at line 160 of file ColourFlows.h.

References std::swap(), and thePermutation.

Member Data Documentation

◆ thePermutation

std::vector<std::size_t> CVolver::ColourFlow::thePermutation
private

The vector representing the permutation of anti-fundamental w.r.t.

fundamental indices.

Definition at line 210 of file ColourFlows.h.

Referenced by antiColour(), colour(), conjugate(), emitFromColour(), emitSinglet(), nLegs(), operator!=(), operator<(), operator==(), permutation(), and swap().


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