herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
Herwig::TwoToTwoProcessConstructor Class Reference

The TwoToTwoProcessConstructor is designed to construct the diagrams that are possible for a given set of incoming and outgoing particles. More...

#include <TwoToTwoProcessConstructor.h>

Inheritance diagram for Herwig::TwoToTwoProcessConstructor:

Public Types

enum  direction { incoming, outgoing }
 Enumeration for the direction.
 
typedef set< tPDPtrtPDSet
 Set of ParticleData pointers.
 
typedef multimap< HPDiagram, HPDiagramHPDMap
 Map of HPDiagrams. More...
 
- Public Types inherited from Herwig::HardProcessConstructor
typedef vector< HPDiagramHPDVector
 Vector of HPDiagrams. More...
 
- 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.
 
void constructDiagrams ()
 Main function called to start constructing the diagrams for the 2->2 process.
 
Functions used by the persistent I/O system.
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently. More...
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently. More...
 
- Public Member Functions inherited from Herwig::HardProcessConstructor
 HardProcessConstructor ()
 The default constructor.
 
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently. More...
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently. More...
 
- 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
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
- Public Member Functions inherited from ThePEG::InterfacedBase
string fullName () const
 
string name () const
 
string path () const
 
string comment () const
 
void setup (istream &is)
 
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
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
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
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
- Public Member Functions inherited from ThePEG::Base
void debug () 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
 

Static Public Member Functions

static void Init ()
 The standard Init function used to initialize the interfaces. More...
 
- Static Public Member Functions inherited from Herwig::HardProcessConstructor
static void Init ()
 The standard Init function used to initialize the interfaces. More...
 
- 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 ()
 

Protected Member Functions

Clone Methods.
virtual IBPtr clone () const
 Make a simple clone of this object. More...
 
virtual IBPtr fullclone () const
 Make a clone of this object, possibly modifying the cloned object to make it sane. More...
 
Standard HardProcessConstructor functions.
virtual void doinit ()
 Initialize this object after the setup phase before saving an EventGenerator to disk. More...
 
- Protected Member Functions inherited from Herwig::HardProcessConstructor
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. More...
 
GeneralHardME::ColourStructure colourFlow (const tcPDVector &extpart) const
 Get the correct colour factor matrix. More...
 
bool duplicate (const HPDiagram &diagram, const HPDVector &group) const
 Search for a diagram that has already been created. More...
 
bool checkOrder (const HPDiagram &diag) const
 check the order of a diagram
 
void fixFSOrder (HPDiagram &diag)
 Functions to set up colour flows and matrix elements. More...
 
void assignToCF (HPDiagram &diag)
 Assign a diagram to the appropriate colour flow(s). More...
 
void sChannelCF (HPDiagram &diag)
 Assign a $s$-channel diagram to the appropriate colour flow(s). More...
 
void tChannelCF (HPDiagram &diag)
 Assign a $t$-channel diagram to the appropriate colour flow(s). More...
 
void uChannelCF (HPDiagram &diag)
 Assign a $u$-channel diagram to the appropriate colour flow(s). More...
 
void fourPointCF (HPDiagram &diag)
 Assign a $u$-channel diagram to the appropriate colour flow(s). More...
 
- 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
 InterfacedBase (string newName)
 
 InterfacedBase (const InterfacedBase &i)
 
virtual void readSetup (istream &is)
 
virtual void doupdate ()
 
virtual void doinitrun ()
 
virtual void dofinish ()
 
virtual IVector getReferences ()
 
virtual void rebind (const TranslationMap &)
 
virtual void readSetup (istream &is)
 
virtual void doupdate ()
 
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 &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 
 ReferenceCounted (const ReferenceCounted &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 
- Protected Member Functions inherited from ThePEG::Named
const Namedoperator= (const Named &other)
 
const string & name (const string &newName)
 

Private Member Functions

TwoToTwoProcessConstructoroperator= (const TwoToTwoProcessConstructor &)=delete
 The assignment operator is private and must never be called. More...
 
string MEClassname (const vector< tcPDPtr > &extpart, string &objname) const
 Contruct the classname and object name for the matrix element. More...
 
tPDSet search (VertexBasePtr vertex, long part1, direction d1, long part2, direction d2, direction d3=outgoing)
 Functions to create the diagrams. More...
 
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. More...
 
void createSChannels (tcPDPair inpp, long fs, tVertexBasePtr vertex)
 Create the resonance diagrams. More...
 
void createTChannels (tPDPair inpp, long fs, tVertexBasePtr vertex)
 Create the scattering diagrams. More...
 
void makeDiagrams (IDPair in, long out1, const tPDSet &out2, PDPtr inter, HPDiagram::Channel chan, VBPair vertices, BPair order)
 Populate the diagram structure. More...
 
void makeFourPointDiagrams (long parta, long partb, long partc, VertexBasePtr vert)
 Create diagrams from 4 point vertices. More...
 
void createMatrixElement (const HPDVector &process) const
 Create the matrix element that will calculate me2() for this process. More...
 

Private Attributes

PDVector incoming_
 Required initial state particles.
 
vector< tPDPairincPairs_
 Pairs of particles for initial state, ordered by spin or id. More...
 
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< PDPtrexcluded_
 Option to exclude certain intermediates.
 
vector< PDPtrexcludedExternal_
 Option to exclude certain external particles.
 
vector< VertexBasePtr > excludedVertexVector_
 Excluded Vertices.
 
set< VertexBasePtr > excludedVertexSet_
 Excluded Vertices.
 

Additional Inherited Members

- 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)
 

Detailed Description

The TwoToTwoProcessConstructor is designed to construct the diagrams that are possible for a given set of incoming and outgoing particles.

See also
The interfaces defined for TwoToTwoProcessConstructor.
HardProcessConstructor

Definition at line 30 of file TwoToTwoProcessConstructor.h.

Member Typedef Documentation

◆ HPDMap

Map of HPDiagrams.

Definition at line 38 of file TwoToTwoProcessConstructor.h.

Member Function Documentation

◆ clone()

virtual IBPtr Herwig::TwoToTwoProcessConstructor::clone ( ) const
protectedvirtual

Make a simple clone of this object.

Returns
a pointer to the new object.

Implements ThePEG::InterfacedBase.

◆ createMatrixElement()

void Herwig::TwoToTwoProcessConstructor::createMatrixElement ( const HPDVector process) const
private

Create the matrix element that will calculate me2() for this process.

Parameters
processvector of HardPrcoessDiagrams structs that store the information about the diagrams

◆ createSChannels()

void Herwig::TwoToTwoProcessConstructor::createSChannels ( tcPDPair  inpp,
long  fs,
tVertexBasePtr  vertex 
)
private

Create the resonance diagrams.

Parameters
inppThe incoming pair of particles.
fsA possible final state.
vertexThe possible interaction vertex for the incoming pair

◆ createTChannels()

void Herwig::TwoToTwoProcessConstructor::createTChannels ( tPDPair  inpp,
long  fs,
tVertexBasePtr  vertex 
)
private

Create the scattering diagrams.

Parameters
inppThe incoming pair of particles.
fsA possible final state.
vertexThe first vertex

◆ doinit()

virtual void Herwig::TwoToTwoProcessConstructor::doinit ( )
protectedvirtual

Initialize this object after the setup phase before saving an EventGenerator to disk.

Exceptions
InitExceptionif object could not be initialized properly.

Reimplemented from Herwig::HardProcessConstructor.

◆ fullclone()

virtual IBPtr Herwig::TwoToTwoProcessConstructor::fullclone ( ) const
protectedvirtual

Make a clone of this object, possibly modifying the cloned object to make it sane.

Returns
a pointer to the new object.

Reimplemented from ThePEG::InterfacedBase.

◆ Init()

static void Herwig::TwoToTwoProcessConstructor::Init ( )
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.

◆ makeDiagrams()

void Herwig::TwoToTwoProcessConstructor::makeDiagrams ( IDPair  in,
long  out1,
const tPDSet out2,
PDPtr  inter,
HPDiagram::Channel  chan,
VBPair  vertices,
BPair  order 
)
private

Populate the diagram structure.

Parameters
inPair of incoming particle id's
out1first outgoing particle
out2set of second outgoing particles
interpointer to particle data for intermediate
chanthe channel type
verticespair of vertices for the diagram
orderThe order

◆ makeFourPointDiagrams()

void Herwig::TwoToTwoProcessConstructor::makeFourPointDiagrams ( long  parta,
long  partb,
long  partc,
VertexBasePtr  vert 
)
private

Create diagrams from 4 point vertices.

Parameters
partaid of first incoming particle
partbid of second incoming particle
partcid of first outgoing particle
vertpointer to the vertex

◆ MEClassname()

string Herwig::TwoToTwoProcessConstructor::MEClassname ( const vector< tcPDPtr > &  extpart,
string &  objname 
) const
private

Contruct the classname and object name for the matrix element.

Parameters
extpartvector containing incoming and outgoing particle data pointers
objnamea string containing the default path of the ME object

◆ operator=()

TwoToTwoProcessConstructor& Herwig::TwoToTwoProcessConstructor::operator= ( const TwoToTwoProcessConstructor )
privatedelete

The assignment operator is private and must never be called.

In fact, it should not even be implemented.

◆ persistentInput()

void Herwig::TwoToTwoProcessConstructor::persistentInput ( PersistentIStream is,
int  version 
)

Function used to read in object persistently.

Parameters
isthe persistent input stream read from.
versionthe version number of the object when written.

◆ persistentOutput()

void Herwig::TwoToTwoProcessConstructor::persistentOutput ( PersistentOStream os) const

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

◆ search() [1/2]

tPDSet Herwig::TwoToTwoProcessConstructor::search ( VertexBasePtr  vertex,
long  part1,
direction  d1,
long  part2,
direction  d2,
direction  d3 = outgoing 
)
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

Parameters
vertexPointer to the vertex
part1id of first particle
d1direction of particle one
part2id of other particle
d2direction of particle two
d3required direction of 3rd state (default = outgoing)
Returns
container of third particles

◆ search() [2/2]

tPDSet Herwig::TwoToTwoProcessConstructor::search ( VertexBasePtr  vertex,
long  part1,
direction  d1,
long  part2,
direction  d2,
long  part3,
direction  d3,
direction  d4 = outgoing 
)
private

Given a vertex and 3 particle id's find the possible states that can be the 4th external particle.

Parameters
vertexPointer to the vertex
part1id of first particle
d1direction of particle one
part2id of second particle
d2direction of particle two
part3id of third particle
d3direction of particle three
d4Required direction of fourth state (default = outgoing)
Returns
container of fourth particles

Member Data Documentation

◆ incPairs_

vector<tPDPair> Herwig::TwoToTwoProcessConstructor::incPairs_
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.


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