herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MEvv2vs.h
1// -*- C++ -*-
2#ifndef HERWIG_MEvv2vs_H
3#define HERWIG_MEvv2vs_H
4//
5// This is the declaration of the MEvv2vs class.
6//
7
8#include "GeneralHardME.h"
9#include "ThePEG/Helicity/Vertex/AbstractVVVVertex.h"
10#include "ThePEG/Helicity/Vertex/AbstractVVSVertex.h"
11#include "ThePEG/Helicity/Vertex/AbstractVSSVertex.h"
12#include "ThePEG/Helicity/Vertex/AbstractVVVSVertex.h"
13#include "Herwig/MatrixElement/ProductionMatrixElement.h"
14
15namespace Herwig {
16
17using namespace ThePEG;
20
30class MEvv2vs: public GeneralHardME {
31
32public:
33
37 typedef vector<VectorWaveFunction> VBVector;
38
39public:
40
50 virtual double me2() const;
52
57 virtual void constructVertex(tSubProPtr sub);
58
59private:
60
75 vv2vsHeME(VBVector & vin1, VBVector & vin2,
76 VBVector & vout1, bool mc, ScalarWaveFunction & sout2,
77 double & me2, bool first ) const;
78
79public:
80
88
94 void persistentInput(PersistentIStream & is, int version);
96
103 static void Init();
104
105protected:
106
113 virtual IBPtr clone() const;
114
119 virtual IBPtr fullclone() const;
121
122protected:
123
131 virtual void doinit();
133
134private:
135
140 MEvv2vs & operator=(const MEvv2vs &) = delete;
141
142private:
143
147 vector<pair<AbstractVVSVertexPtr, AbstractVSSVertexPtr> > scalar_;
148
152 vector<pair<AbstractVVVVertexPtr, AbstractVVSVertexPtr> > vector_;
153
157 vector<AbstractVVVSVertexPtr> four_;
158
159};
160
161}
162
163#endif /* HERWIG_MEvv2vs_H */
This defines the GeneralHardME class that is designed to serve as a base class for matrix elements of...
Definition: GeneralHardME.h:40
This is the implementation of the matrix element for massless vector-boson pair to a vector and scal...
Definition: MEvv2vs.h:30
vector< AbstractVVVSVertexPtr > four_
Store the dynamically casted VVVSVertex pointer.
Definition: MEvv2vs.h:157
virtual IBPtr clone() const
Make a simple clone of this object.
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
vector< pair< AbstractVVSVertexPtr, AbstractVSSVertexPtr > > scalar_
Store the dynamically casted VVSVertex and VSSVertex pointers.
Definition: MEvv2vs.h:147
MEvv2vs & operator=(const MEvv2vs &)=delete
The assignment operator is private and must never be called.
ProductionMatrixElement vv2vsHeME(VBVector &vin1, VBVector &vin2, VBVector &vout1, bool mc, ScalarWaveFunction &sout2, double &me2, bool first) const
Compute the matrix element for .
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
vector< pair< AbstractVVVVertexPtr, AbstractVVSVertexPtr > > vector_
Store the dynamically casted VVVVertex and VVSVertex pointers.
Definition: MEvv2vs.h:152
static void Init()
The standard Init function used to initialize the interfaces.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
vector< VectorWaveFunction > VBVector
Typedef for VectorWaveFunction.
Definition: MEvv2vs.h:37
virtual void constructVertex(tSubProPtr sub)
Construct the vertex information for the spin correlations.
The storage of the helicity amplitude expression for the matrix element of a hard process.
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr