herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
15 namespace Herwig {
16 
17 using namespace ThePEG;
20 
30 class MEvv2vs: public GeneralHardME {
31 
32 public:
33 
37  typedef vector<VectorWaveFunction> VBVector;
38 
39 public:
40 
50  virtual double me2() const;
52 
57  virtual void constructVertex(tSubProPtr sub);
58 
59 private:
60 
75  vv2vsHeME(VBVector & vin1, VBVector & vin2,
76  VBVector & vout1, bool mc, ScalarWaveFunction & sout2,
77  double & me2, bool first ) const;
78 
79 public:
80 
87  void persistentOutput(PersistentOStream & os) const;
88 
94  void persistentInput(PersistentIStream & is, int version);
96 
103  static void Init();
104 
105 protected:
106 
113  virtual IBPtr clone() const;
114 
119  virtual IBPtr fullclone() const;
121 
122 protected:
123 
131  virtual void doinit();
133 
134 private:
135 
140  MEvv2vs & operator=(const MEvv2vs &) = delete;
141 
142 private:
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
vector< VectorWaveFunction > VBVector
Typedef for VectorWaveFunction.
Definition: MEvv2vs.h:37
vector< pair< AbstractVVSVertexPtr, AbstractVSSVertexPtr > > scalar_
Store the dynamically casted VVSVertex and VSSVertex pointers.
Definition: MEvv2vs.h:147
vector< pair< AbstractVVVVertexPtr, AbstractVVSVertexPtr > > vector_
Store the dynamically casted VVVVertex and VVSVertex pointers.
Definition: MEvv2vs.h:152
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
The storage of the helicity amplitude expression for the matrix element of a hard process...
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
-*- C++ -*-
vector< AbstractVVVSVertexPtr > four_
Store the dynamically casted VVVSVertex pointer.
Definition: MEvv2vs.h:157
This is the implementation of the matrix element for massless vector-boson pair to a vector and scal...
Definition: MEvv2vs.h:30