Herwig 7.3.0
|
The TwoToTwoProcessConstructor is designed to construct the diagrams that are possible for a given set of incoming and outgoing particles. More...
#include <TwoToTwoProcessConstructor.h>
Public Types | |
enum | direction { incoming , outgoing } |
Enumeration for the direction. More... | |
typedef set< tPDPtr > | tPDSet |
Set of ParticleData pointers. | |
typedef multimap< HPDiagram, HPDiagram > | HPDMap |
Map of HPDiagrams. | |
Public Types inherited from Herwig::HardProcessConstructor | |
typedef vector< HPDiagram > | HPDVector |
Vector of HPDiagrams. | |
Public Types inherited from ThePEG::InterfacedBase | |
enum | InitState |
Public Types inherited from ThePEG::Pointer::ReferenceCounted | |
typedef unsigned int | CounterType |
Public Member Functions | |
TwoToTwoProcessConstructor () | |
The default constructor. | |
Public Member Functions inherited from Herwig::HardProcessConstructor | |
HardProcessConstructor () | |
The default constructor. | |
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::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 |
Protected Member Functions | |
Clone Methods. | |
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. | |
Protected Member Functions inherited from Herwig::HardProcessConstructor | |
void | fixFSOrder (HPDiagram &diag) |
Functions to set up colour flows and matrix elements. | |
void | assignToCF (HPDiagram &diag) |
Assign a diagram to the appropriate colour flow(s). | |
void | sChannelCF (HPDiagram &diag) |
Assign a $s$-channel diagram to the appropriate colour flow(s). | |
void | tChannelCF (HPDiagram &diag) |
Assign a $t$-channel diagram to the appropriate colour flow(s). | |
void | uChannelCF (HPDiagram &diag) |
Assign a $u$-channel diagram to the appropriate colour flow(s). | |
void | fourPointCF (HPDiagram &diag) |
Assign a $u$-channel diagram to the appropriate colour flow(s). | |
tHwSMPtr | model () const |
Pointer to the model being used. | |
tSubHdlPtr | subProcess () const |
Pointer to the sub process handler. | |
bool | debug () const |
Whether to print the debug information with the matrix element. | |
GeneralHardME::ColourStructure | colourFlow (const tcPDVector &extpart) const |
Get the correct colour factor matrix. | |
bool | duplicate (const HPDiagram &diagram, const HPDVector &group) const |
Search for a diagram that has already been created. | |
bool | checkOrder (const HPDiagram &diag) const |
check the order of a 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) |
Standard HardProcessConstructor functions. | |
PDVector | incoming_ |
Required initial state particles. | |
vector< tPDPair > | incPairs_ |
Pairs of particles for initial state, ordered by spin or id. | |
PDVector | outgoing_ |
Required final state particles. | |
unsigned int | Nout_ |
Number of incoming particles. | |
unsigned int | nv_ |
Number of vertices in the model. | |
vector< VertexBasePtr > | vertices_ |
The vertices. | |
HPDVector | processes_ |
Store the configuration of the diagrams. | |
bool | allDiagrams_ |
Whether to include all diagrams or just those with strong coupling in them. | |
unsigned int | processOption_ |
Which types of processes to generate. | |
unsigned int | scaleChoice_ |
Option for the scales. | |
double | scaleFactor_ |
Prefactor for the scale calculation. | |
vector< PDPtr > | excluded_ |
Option to exclude certain intermediates. | |
vector< PDPtr > | excludedExternal_ |
Option to exclude certain external particles. | |
vector< VertexBasePtr > | excludedVertexVector_ |
Excluded Vertices. | |
set< VertexBasePtr > | excludedVertexSet_ |
Excluded Vertices. | |
virtual void | doinit () |
Initialize this object after the setup phase before saving an EventGenerator to disk. | |
TwoToTwoProcessConstructor & | operator= (const TwoToTwoProcessConstructor &)=delete |
The assignment operator is private and must never be called. | |
tPDSet | search (VertexBasePtr vertex, long part1, direction d1, long part2, direction d2, direction d3=outgoing) |
Functions to create the diagrams. | |
tPDSet | search (VertexBasePtr vertex, long part1, direction d1, long part2, direction d2, long part3, direction d3, direction d4=outgoing) |
Given a vertex and 3 particle id's find the possible states that can be the 4th external particle. | |
void | createSChannels (tcPDPair inpp, long fs, tVertexBasePtr vertex) |
Create the resonance diagrams. | |
void | createTChannels (tPDPair inpp, long fs, tVertexBasePtr vertex) |
Create the scattering diagrams. | |
void | makeDiagrams (IDPair in, long out1, const tPDSet &out2, PDPtr inter, HPDiagram::Channel chan, VBPair vertices, BPair order) |
Populate the diagram structure. | |
void | makeFourPointDiagrams (long parta, long partb, long partc, VertexBasePtr vert) |
Create diagrams from 4 point vertices. | |
void | createMatrixElement (const HPDVector &process) const |
Create the matrix element that will calculate me2() for this process. | |
string | MEClassname (const vector< tcPDPtr > &extpart, string &objname) const |
Contruct the classname and object name for the matrix element. | |
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. | |
void | constructDiagrams () |
Main function called to start constructing the diagrams for the 2->2 process. | |
static void | Init () |
The standard Init function used to initialize the interfaces. | |
Additional Inherited Members | |
Static Public Member Functions inherited from Herwig::HardProcessConstructor | |
static void | Init () |
The standard Init function used to initialize the interfaces. | |
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 |
Static Protected Member Functions inherited from ThePEG::Interfaced | |
static void | registerRepository (IBPtr) |
static void | registerRepository (IBPtr, string newName) |
The TwoToTwoProcessConstructor is designed to construct the diagrams that are possible for a given set of incoming and outgoing particles.
Definition at line 30 of file TwoToTwoProcessConstructor.h.
typedef multimap<HPDiagram, HPDiagram> Herwig::TwoToTwoProcessConstructor::HPDMap |
Map of HPDiagrams.
Definition at line 38 of file TwoToTwoProcessConstructor.h.
typedef set<tPDPtr> Herwig::TwoToTwoProcessConstructor::tPDSet |
Set of ParticleData pointers.
Definition at line 35 of file TwoToTwoProcessConstructor.h.
Enumeration for the direction.
Definition at line 41 of file TwoToTwoProcessConstructor.h.
|
protectedvirtual |
Make a simple clone of this object.
Implements ThePEG::InterfacedBase.
|
virtual |
Main function called to start constructing the diagrams for the 2->2 process.
Implements Herwig::HardProcessConstructor.
|
private |
Create the matrix element that will calculate me2() for this process.
process | vector of HardPrcoessDiagrams structs that store the information about the diagrams |
|
private |
Create the resonance diagrams.
inpp | The incoming pair of particles. |
fs | A possible final state. |
vertex | The possible interaction vertex for the incoming pair |
|
private |
Create the scattering diagrams.
inpp | The incoming pair of particles. |
fs | A possible final state. |
vertex | The first vertex |
|
protectedvirtual |
Initialize this object after the setup phase before saving an EventGenerator to disk.
InitException | if object could not be initialized properly. |
Reimplemented from Herwig::HardProcessConstructor.
|
protectedvirtual |
Make a clone of this object, possibly modifying the cloned object to make it sane.
Reimplemented from ThePEG::InterfacedBase.
|
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.
|
private |
Populate the diagram structure.
in | Pair of incoming particle id's |
out1 | first outgoing particle |
out2 | set of second outgoing particles |
inter | pointer to particle data for intermediate |
chan | the channel type |
vertices | pair of vertices for the diagram |
order | The order |
|
private |
Create diagrams from 4 point vertices.
parta | id of first incoming particle |
partb | id of second incoming particle |
partc | id of first outgoing particle |
vert | pointer to the vertex |
|
private |
Contruct the classname and object name for the matrix element.
extpart | vector containing incoming and outgoing particle data pointers |
objname | a string containing the default path of the ME object |
|
privatedelete |
The assignment operator is private and must never be called.
In fact, it should not even be implemented.
void Herwig::TwoToTwoProcessConstructor::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::TwoToTwoProcessConstructor::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
|
private |
Functions to create the diagrams.
Given a vertex and 2 particle id's find the possible states that can be the 3rd external particle
vertex | Pointer to the vertex |
part1 | id of first particle |
d1 | direction of particle one |
part2 | id of other particle |
d2 | direction of particle two |
d3 | required direction of 3rd state (default = outgoing) |
|
private |
Given a vertex and 3 particle id's find the possible states that can be the 4th external particle.
vertex | Pointer to the vertex |
part1 | id of first particle |
d1 | direction of particle one |
part2 | id of second particle |
d2 | direction of particle two |
part3 | id of third particle |
d3 | direction of particle three |
d4 | Required direction of fourth state (default = outgoing) |
|
private |
Whether to include all diagrams or just those with strong coupling in them.
Definition at line 258 of file TwoToTwoProcessConstructor.h.
|
private |
Option to exclude certain intermediates.
Definition at line 278 of file TwoToTwoProcessConstructor.h.
|
private |
Option to exclude certain external particles.
Definition at line 283 of file TwoToTwoProcessConstructor.h.
|
private |
Excluded Vertices.
Definition at line 293 of file TwoToTwoProcessConstructor.h.
|
private |
Excluded Vertices.
Definition at line 288 of file TwoToTwoProcessConstructor.h.
|
private |
Required initial state particles.
Definition at line 219 of file TwoToTwoProcessConstructor.h.
|
private |
Pairs of particles for initial state, ordered by spin or id.
If both are of differing spin then lowest is first and if the spin is equal the particle goes first then the anti-particle. This is setup in the doinit() member.
Definition at line 227 of file TwoToTwoProcessConstructor.h.
|
private |
Number of incoming particles.
Definition at line 237 of file TwoToTwoProcessConstructor.h.
|
private |
Number of vertices in the model.
Definition at line 242 of file TwoToTwoProcessConstructor.h.
|
private |
Required final state particles.
Definition at line 232 of file TwoToTwoProcessConstructor.h.
|
private |
Store the configuration of the diagrams.
Definition at line 252 of file TwoToTwoProcessConstructor.h.
|
private |
Which types of processes to generate.
Definition at line 263 of file TwoToTwoProcessConstructor.h.
|
private |
Option for the scales.
Definition at line 268 of file TwoToTwoProcessConstructor.h.
|
private |
Prefactor for the scale calculation.
Definition at line 273 of file TwoToTwoProcessConstructor.h.
|
private |
The vertices.
Definition at line 247 of file TwoToTwoProcessConstructor.h.