Herwig 7.3.0
|
SimpleColourBasis implements the colour algebra needed for electroweak boson and electroweak boson + jet production at NLO. It mainly serves as an example for the general ColourBasis interface. More...
#include <SimpleColourBasis.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. | |
Public Member Functions inherited from Herwig::ColourBasis | |
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. | |
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. | |
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. | |
Public Member Functions inherited from ThePEG::HandlerBaseT< UseRandom > | |
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 |
Public Member Functions inherited from ThePEG::Interfaced | |
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 |
Public Member Functions inherited from ThePEG::InterfacedBase | |
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 |
Public Member Functions inherited from ThePEG::Base | |
void | debug () const |
virtual void | debugme () const |
Public Member Functions inherited from ThePEG::Pointer::ReferenceCounted | |
CounterType | referenceCount () const |
Public Member Functions inherited from ThePEG::Named | |
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 | |
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. | |
SimpleColourBasis & | operator= (const SimpleColourBasis &)=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 | |
Public Types inherited from ThePEG::InterfacedBase | |
enum | InitState |
Public Types inherited from ThePEG::Pointer::ReferenceCounted | |
typedef unsigned int | CounterType |
Static Public Member Functions inherited from Herwig::ColourBasis | |
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 Public Member Functions inherited from ThePEG::HandlerBase | |
static void | Init () |
Static Public Member Functions inherited from ThePEG::Interfaced | |
static void | Init () |
Static Public Member Functions inherited from ThePEG::InterfacedBase | |
static void | Init () |
Static Public Member Functions inherited from ThePEG::Base | |
static void | Init () |
Public Attributes inherited from ThePEG::InterfacedBase | |
initializing | |
uninitialized | |
initialized | |
runready | |
Public Attributes inherited from ThePEG::Pointer::ReferenceCounted | |
const unsigned long | uniqueId |
Protected Member Functions inherited from Herwig::ColourBasis | |
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. | |
Protected Member Functions inherited from ThePEG::Interfaced | |
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) |
Protected Member Functions inherited from ThePEG::InterfacedBase | |
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 &) |
Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted | |
ReferenceCounted (const ReferenceCounted &) | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
Protected Member Functions inherited from ThePEG::Named | |
const Named & | operator= (const Named &other) |
const string & | name (const string &newName) |
Static Protected Member Functions inherited from ThePEG::Interfaced | |
static void | registerRepository (IBPtr) |
static void | registerRepository (IBPtr, string newName) |
SimpleColourBasis implements the colour algebra needed for electroweak boson and electroweak boson + jet production at NLO. It mainly serves as an example for the general ColourBasis interface.
Definition at line 30 of file SimpleColourBasis.h.
|
inlinevirtual |
Return true, if this colour basis supports gluon splittings.
Definition at line 72 of file SimpleColourBasis.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 90 of file SimpleColourBasis.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::SimpleColourBasis::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::SimpleColourBasis::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 59 of file SimpleColourBasis.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 155 of file SimpleColourBasis.h.
|
mutableprivate |
id for 33bar33bar
Definition at line 180 of file SimpleColourBasis.h.
|
mutableprivate |
id for 33bar8
Definition at line 165 of file SimpleColourBasis.h.
|
mutableprivate |
id for 33bar88
Definition at line 175 of file SimpleColourBasis.h.
|
mutableprivate |
id for 88
Definition at line 150 of file SimpleColourBasis.h.
|
mutableprivate |
id for 888
Definition at line 160 of file SimpleColourBasis.h.
|
mutableprivate |
id for 8888
Definition at line 170 of file SimpleColourBasis.h.