herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MEvv2tv.h
1 // -*- C++ -*-
2 #ifndef HERWIG_MEvv2tv_H
3 #define HERWIG_MEvv2tv_H
4 //
5 // This is the declaration of the MEvv2tv class.
6 //
7 
8 #include "GeneralHardME.h"
9 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
10 #include "ThePEG/Helicity/WaveFunction/TensorWaveFunction.h"
11 #include "ThePEG/Helicity/Vertex/AbstractVVTVertex.h"
12 #include "ThePEG/Helicity/Vertex/AbstractVVVVertex.h"
13 #include "ThePEG/Helicity/Vertex/AbstractVVVTVertex.h"
14 
15 namespace Herwig {
16 
17 using namespace ThePEG;
20 
27 class MEvv2tv: public GeneralHardME {
28 
30  typedef vector<VectorWaveFunction> VBVector;
31 
33  typedef vector<TensorWaveFunction> TBVector;
34 
35 public:
36 
40  MEvv2tv() : vector_(0), fourPoint_(0) {}
41 
49  virtual double me2() const;
50 
55  virtual void constructVertex(tSubProPtr sub);
56 
57 public:
58 
65  void persistentOutput(PersistentOStream & os) const;
66 
72  void persistentInput(PersistentIStream & is, int version);
74 
81  static void Init();
82 
83 protected:
84 
91  virtual IBPtr clone() const;
92 
97  virtual IBPtr fullclone() const;
99 
100 protected:
101 
109  void doinit();
111 
112 private:
113 
126  ProductionMatrixElement vv2tvHeME(const VBVector & vec1,
127  const VBVector & vec2,
128  const TBVector & ten,
129  const VBVector & vec3,
130  double & full_me, bool first) const;
131 
137  virtual void debug(double me2) const;
138 
139 private:
140 
145  MEvv2tv & operator=(const MEvv2tv &) = delete;
146 
147 private:
148 
152  vector<pair<AbstractVVVVertexPtr, AbstractVVTVertexPtr> > vector_;
153 
157  vector<AbstractVVVTVertexPtr> fourPoint_;
158 
159 };
160 
161 }
162 
163 #endif /* HERWIG_MEvv2tv_H */
vector< TensorWaveFunction > TBVector
Vector of TensorWaveFunctions.
Definition: MEvv2tv.h:33
This defines the GeneralHardME class that is designed to serve as a base class for matrix elements of...
Definition: GeneralHardME.h:40
Here is the documentation of the MEvv2tv class.
Definition: MEvv2tv.h:27
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
vector< pair< AbstractVVVVertexPtr, AbstractVVTVertexPtr > > vector_
Store a pair of FFTVertex and FFVVertex pointers.
Definition: MEvv2tv.h:152
vector< VectorWaveFunction > VBVector
Vector of VectorWaveFunctions.
Definition: MEvv2tv.h:30
vector< AbstractVVVTVertexPtr > fourPoint_
The four point vertex.
Definition: MEvv2tv.h:157
-*- C++ -*-
MEvv2tv()
The default constructor.
Definition: MEvv2tv.h:40