Herwig 7.3.0
|
SimpleColourBasis2 implements the colour algebra needed for processes with four coloured legs at NLO. It mainly serves as an example for the general ColourBasis interface. More...
#include <SimpleColourBasis2.h>
Public Member Functions | |
virtual size_t | prepareBasis (const vector< PDT::Colour > &) |
Prepare the basis for the normal ordered legs and return the dimensionality of the basis. | |
virtual double | scalarProduct (size_t a, size_t b, const vector< PDT::Colour > &abBasis) const |
Return the scalar product of basis tensors labelled a and b in the basis used for the given normal ordered legs. | |
virtual double | tMatrixElement (size_t i, size_t a, size_t b, const vector< PDT::Colour > &aBasis, const vector< PDT::Colour > &bBasis, size_t k, size_t l, const map< size_t, size_t > &dict) const |
Return the matrix element of a colour charge <c_{n+1,a}|T_i|c_{n,b}> between basis tensors a and b, with respect to aBasis and bBasis. | |
virtual double | sMatrixElement (size_t, size_t, size_t, const vector< PDT::Colour > &, const vector< PDT::Colour > &, size_t, size_t, const map< size_t, size_t > &) const |
virtual bool | canSplitGluons () const |
Return true, if this colour basis supports gluon splittings. | |
virtual bool | colourConnected (const cPDVector &, const vector< PDT::Colour > &, const pair< int, bool > &, const pair< int, bool > &, size_t) const |
Return true, if a large-N colour connection exists for the given external legs and basis tensor. | |
virtual bool | haveColourFlows () const |
Return true, if the colour basis is capable of assigning colour flows. | |
void | makeIds () const |
Create ids for bases. | |
virtual map< size_t, vector< vector< size_t > > > | basisList (const vector< PDT::Colour > &) const |
Return a map of basis tensor indices to vectors identifying a certain ordering corresponding to the given colour structure. | |
![]() | |
ColourBasis () | |
The default constructor. | |
virtual | ~ColourBasis () |
The destructor. | |
Ptr< MatchboxFactory >::tptr | factory () const |
Return the factory which produced this matrix element. | |
Ptr< ColourBasis >::ptr | cloneMe () const |
Clone this colour basis. | |
virtual void | clear () |
Clear this colour basis. | |
size_t | prepare (const cPDVector &, bool) |
Prepare for the given sub process and return the basis dimensionality. | |
size_t | prepare (const MEBase::DiagramVector &, bool) |
Prepare for the given diagrams. | |
const map< cPDVector, map< size_t, size_t > > & | indexMap () const |
Return the index map. | |
const string & | orderingString (const cPDVector &sub, const map< size_t, size_t > &colourToAmplitude, size_t tensorId) |
Given a physical subprocess, a colour to amplitude label map and a basis tensor index, return an identifier of the ordering coresponding to the given colour structure. | |
const set< vector< size_t > > & | ordering (const cPDVector &sub, const map< size_t, size_t > &colourToAmplitude, size_t tensorId, size_t shift=0) |
Given a physical subprocess, a colour to amplitude label map and a basis tensor index, return an identifier of the ordering coresponding to the given colour structure. | |
double | me2 (const cPDVector &, const map< vector< int >, CVector > &) const |
For the given subprocess and amplitude vectors calculate the amplitude squared. | |
double | interference (const cPDVector &, const map< vector< int >, CVector > &, const map< vector< int >, CVector > &) const |
For the given subprocess and amplitude vectors calculate the interference. | |
double | colourCorrelatedME2 (const pair< size_t, size_t > &, const cPDVector &, const map< vector< int >, CVector > &) const |
For the given subprocess and amplitude vector calculate the colour correlated amplitude. | |
Complex | interference (const cPDVector &, const CVector &, const CVector &) const |
For the given subprocess and amplitude vector calculate the amplitude squared. | |
Complex | colourCorrelatedInterference (const pair< size_t, size_t > &, const cPDVector &, const CVector &, const CVector &) const |
For the given subprocess and amplitude vector calculate the colour correlated amplitude. | |
double | me2 (const cPDVector &, const matrix< Complex > &) const |
For the given subprocess and amplitude given as amp amp^\dagger calculate the amplitude squared. | |
double | colourCorrelatedME2 (const pair< size_t, size_t > &, const cPDVector &, const matrix< Complex > &) const |
For the given subprocess and amplitude given as amp amp^\dagger calculate the colour correlated amplitude. | |
const symmetric_matrix< double, upper > & | scalarProducts (const cPDVector &) const |
Return the scalar product matrix for the given process. | |
const symmetric_matrix< double, upper > & | correlator (const cPDVector &, const pair< size_t, size_t > &) const |
Return the correlator matrix for the given process. | |
Selector< const ColourLines * > | colourGeometries (tcDiagPtr diag, const map< vector< int >, CVector > &s) |
Return a Selector with possible colour geometries for the selected diagram weighted by their relative probabilities. | |
size_t | tensorIdFromFlow (tcDiagPtr diag, const ColourLines *cl) |
Return the colour tensor used for the selected colour flow. | |
virtual bool | largeN () const |
Return true, if this basis is running in large-N mode. | |
void | doLargeN (bool yes=true) |
Switch to large n. | |
vector< PDT::Colour > | projectColour (const cPDVector &) const |
Convert particle data to colour information. | |
virtual vector< PDT::Colour > | normalOrder (const vector< PDT::Colour > &) const |
Perform a normal ordering of the external legs. | |
vector< PDT::Colour > | normalOrderMap (const cPDVector &sub) |
Determine the mapping of process to colour indices and return the normal ordered vector of colour indices. | |
const vector< PDT::Colour > & | normalOrderedLegs (const cPDVector &sub) const |
Get the normal ordered legs. | |
const std::tuple< vector< PDT::Colour >, vector< PDT::Colour >, size_t, size_t, size_t, map< size_t, size_t > > & | normalOrderEmissionMap (const cPDVector &subFrom, const cPDVector &subTo, size_t ij, size_t i, size_t j, const map< size_t, size_t > &emissionMap) |
Generate the emission/splitting map for basis labels from sub-process information; we consider the splitting of leg ij from subprocess subFrom with the legs not participating in the splitting relabelled according to emissionMap. | |
const pair< compressed_matrix< double >, vector< pair< size_t, size_t > > > & | charge (const cPDVector &subFrom, const cPDVector &subTo, size_t ij, size_t i, size_t j, const map< size_t, size_t > &emissionMap) |
Return the colour charge matrix representation for the given splitting ij -> i,j with other legs relabbeled as indicated by the dictionary map. | |
string | file (const vector< PDT::Colour > &) const |
Convert the legs to a string. | |
void | chargeProduct (const compressed_matrix< double > &ti, const vector< pair< size_t, size_t > > &tiNonZero, const symmetric_matrix< double, upper > &X, const compressed_matrix< double > &tj, const vector< pair< size_t, size_t > > &tjNonZero, symmetric_matrix< double, upper > &result) const |
Calculate T_i^\dagger X T_j. | |
void | chargeProductAdd (const compressed_matrix< double > &ti, const vector< pair< size_t, size_t > > &tiNonZero, const matrix< Complex > &X, const compressed_matrix< double > &tj, const vector< pair< size_t, size_t > > &tjNonZero, matrix< Complex > &result, double factor=1.) const |
Calculate T_i X T_j^\dagger. | |
virtual map< size_t, size_t > | indexChange (const vector< PDT::Colour > &, const size_t, const map< size_t, size_t > &) const |
Returns a map of how the order of the vectors of a colour basis are changed when the indices are changed. | |
void | persistentOutput (PersistentOStream &os) const |
Function used to write out object persistently. | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. | |
![]() | |
double | rnd () const |
double | rnd (double xu) const |
double | rnd (double xl, double xu) const |
bool | rndbool () const |
bool | rndbool (double p) const |
bool | rndbool (double p1, double p2) const |
int | rndsign (double p1, double p2, double p3) const |
int | rnd2 (double p0, double p1) const |
int | rnd3 (double p0, double p1, double p2) const |
int | rnd4 (double p0, double p1, double p2, double p3) const |
long | irnd (long xu=2) const |
long | irnd (long xl, long xu) const |
const StandardModelBase & | SM () const |
tSMPtr | standardModel () const |
![]() | |
virtual bool | defaultInit () |
PPtr | getParticle (PID) const |
PDPtr | getParticleData (PID) const |
bool | used () const |
void | useMe () const |
tEGPtr | generator () const |
void | persistentOutput (PersistentOStream &os) const |
void | persistentInput (PersistentIStream &is, int version) |
PPtr | getParticle (PID) const |
PDPtr | getParticleData (PID) const |
bool | used () const |
void | useMe () const |
tEGPtr | generator () const |
![]() | |
string | fullName () const |
string | name () const |
string | path () const |
string | comment () const |
void | setup (istream &is) |
void | update () |
void | init () |
virtual bool | preInitialize () const |
void | initrun () |
void | finish () |
void | touch () |
void | reset () |
void | clear () |
InitState | state () const |
bool | locked () const |
bool | touched () const |
virtual IBPtr | fullclone () const |
void | persistentOutput (PersistentOStream &os) const |
void | persistentInput (PersistentIStream &is, int version) |
virtual void | debugme () const |
void | update () |
void | init () |
virtual bool | preInitialize () const |
void | initrun () |
void | finish () |
void | touch () |
void | reset () |
void | clear () |
InitState | state () const |
bool | locked () const |
bool | touched () const |
virtual IBPtr | fullclone () const |
![]() | |
void | debug () const |
virtual void | debugme () const |
![]() | |
CounterType | referenceCount () const |
![]() | |
Named (const string &newName=string()) | |
Named (const Named &)=default | |
const string & | name () const |
bool | operator== (const Named &other) const |
bool | operator< (const Named &other) const |
Clone Methods. | |
vector< PDT::Colour > | id88 |
id for 88 | |
vector< PDT::Colour > | id33bar |
id for 33bar | |
vector< PDT::Colour > | id888 |
id for 888 | |
vector< PDT::Colour > | id33bar8 |
id for 33bar8 | |
vector< PDT::Colour > | id8888 |
id for 8888 | |
vector< PDT::Colour > | id33bar88 |
id for 33bar88 | |
vector< PDT::Colour > | id33bar33bar |
id for 33bar33bar | |
vector< PDT::Colour > | id88888 |
id for 88888 | |
vector< PDT::Colour > | id33bar888 |
id for 33bar888 | |
vector< PDT::Colour > | id33bar33bar8 |
id for 33bar33bar8 | |
virtual IBPtr | clone () const |
Make a simple clone of this object. | |
virtual IBPtr | fullclone () const |
Make a clone of this object, possibly modifying the cloned object to make it sane. | |
SimpleColourBasis2 & | operator= (const SimpleColourBasis2 &)=delete |
The assignment operator is private and must never be called. | |
Functions used by the persistent I/O system. | |
void | persistentOutput (PersistentOStream &os) const |
Function used to write out object persistently. | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. | |
static void | Init () |
The standard Init function used to initialize the interfaces. | |
Additional Inherited Members | |
![]() | |
enum | InitState |
![]() | |
typedef unsigned int | CounterType |
![]() | |
static list< pair< int, bool > > | colouredPath (pair< int, bool > a, pair< int, bool > b, Ptr< Tree2toNDiagram >::tcptr) |
Find a coloured path from a to b within the given diagram. | |
static list< list< list< pair< int, bool > > > > | colourFlows (Ptr< Tree2toNDiagram >::tcptr) |
Get all colour flows for the given diagram. | |
static string | cfstring (const list< list< pair< int, bool > > > &) |
Convert a flow to a string representation appropriate for ColourLines. | |
static void | Init () |
The standard Init function used to initialize the interfaces. | |
![]() | |
static void | Init () |
![]() | |
static void | Init () |
![]() | |
static void | Init () |
![]() | |
static void | Init () |
![]() | |
initializing | |
uninitialized | |
initialized | |
runready | |
![]() | |
const unsigned long | uniqueId |
![]() | |
virtual void | doinit () |
Initialize this object after the setup phase before saving an EventGenerator to disk. | |
virtual void | doinitrun () |
Initialize this object. | |
virtual void | dofinish () |
Finalize this object. | |
virtual bool | colourConnected (const vector< PDT::Colour > &, int, int, size_t) const |
Return true, if a large-N colour connection exists for the given external legs and basis tensor. | |
vector< string > | makeFlows (Ptr< Tree2toNDiagram >::tcptr, size_t) const |
Match up colour flows for given diagram to basis tensors. | |
map< Ptr< Tree2toNDiagram >::tcptr, vector< ColourLines * > > & | colourLineMap () |
Return the colour line map. | |
void | updateColourLines (Ptr< Tree2toNDiagram >::tcptr) |
Update the colour line map for a given diagram. | |
![]() | |
void | reporeg (IBPtr object, string name) const |
bool | setDefaultReference (PtrT &ptr, string classname, string objectname) |
Interfaced (const string &newName) | |
Interfaced (const Interfaced &i) | |
void | setGenerator (tEGPtr generator) |
![]() | |
virtual void | readSetup (istream &is) |
virtual void | doupdate () |
virtual void | doinit () |
virtual void | doinitrun () |
virtual void | dofinish () |
virtual IVector | getReferences () |
virtual void | rebind (const TranslationMap &) |
virtual IBPtr | clone () const=0 |
InterfacedBase (string newName) | |
InterfacedBase (const InterfacedBase &i) | |
virtual void | readSetup (istream &is) |
virtual void | doupdate () |
virtual void | doinit () |
virtual void | doinitrun () |
virtual void | dofinish () |
virtual IVector | getReferences () |
virtual void | rebind (const TranslationMap &) |
![]() | |
ReferenceCounted (const ReferenceCounted &) | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
![]() | |
const Named & | operator= (const Named &other) |
const string & | name (const string &newName) |
![]() | |
static void | registerRepository (IBPtr) |
static void | registerRepository (IBPtr, string newName) |
SimpleColourBasis2 implements the colour algebra needed for processes with four coloured legs at NLO. It mainly serves as an example for the general ColourBasis interface.
Definition at line 30 of file SimpleColourBasis2.h.
|
virtual |
Return a map of basis tensor indices to vectors identifying a certain ordering corresponding to the given colour structure.
May not be supported by all colour basis implementations.
Reimplemented from Herwig::ColourBasis.
|
inlinevirtual |
Return true, if this colour basis supports gluon splittings.
Definition at line 74 of file SimpleColourBasis2.h.
|
protectedvirtual |
Make a simple clone of this object.
Implements ThePEG::InterfacedBase.
|
virtual |
Return true, if a large-N colour connection exists for the given external legs and basis tensor.
Reimplemented from Herwig::ColourBasis.
|
protectedvirtual |
Make a clone of this object, possibly modifying the cloned object to make it sane.
Reimplemented from ThePEG::InterfacedBase.
|
inlinevirtual |
Return true, if the colour basis is capable of assigning colour flows.
Reimplemented from Herwig::ColourBasis.
Definition at line 92 of file SimpleColourBasis2.h.
|
static |
The standard Init function used to initialize the interfaces.
Called exactly once for each class by the class description system before the main function starts or when this class is dynamically loaded.
|
privatedelete |
The assignment operator is private and must never be called.
In fact, it should not even be implemented.
void Herwig::SimpleColourBasis2::persistentInput | ( | PersistentIStream & | is, |
int | version | ||
) |
Function used to read in object persistently.
is | the persistent input stream read from. |
version | the version number of the object when written. |
void Herwig::SimpleColourBasis2::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
|
virtual |
Prepare the basis for the normal ordered legs and return the dimensionality of the basis.
Implements Herwig::ColourBasis.
|
virtual |
Return the scalar product of basis tensors labelled a and b in the basis used for the given normal ordered legs.
Implements Herwig::ColourBasis.
|
inlinevirtual |
Definition at line 61 of file SimpleColourBasis2.h.
|
virtual |
Return the matrix element of a colour charge <c_{n+1,a}|T_i|c_{n,b}> between basis tensors a and b, with respect to aBasis and bBasis.
Implements Herwig::ColourBasis.
|
mutableprivate |
id for 33bar
Definition at line 164 of file SimpleColourBasis2.h.
|
mutableprivate |
id for 33bar33bar
Definition at line 189 of file SimpleColourBasis2.h.
|
mutableprivate |
id for 33bar33bar8
Definition at line 204 of file SimpleColourBasis2.h.
|
mutableprivate |
id for 33bar8
Definition at line 174 of file SimpleColourBasis2.h.
|
mutableprivate |
id for 33bar88
Definition at line 184 of file SimpleColourBasis2.h.
|
mutableprivate |
id for 33bar888
Definition at line 199 of file SimpleColourBasis2.h.
|
mutableprivate |
id for 88
Definition at line 159 of file SimpleColourBasis2.h.
|
mutableprivate |
id for 888
Definition at line 169 of file SimpleColourBasis2.h.
|
mutableprivate |
id for 8888
Definition at line 179 of file SimpleColourBasis2.h.
|
mutableprivate |
id for 88888
Definition at line 194 of file SimpleColourBasis2.h.