herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MEff2tv.h
1 // -*- C++ -*-
2 #ifndef HERWIG_MEff2tv_H
3 #define HERWIG_MEff2tv_H
4 //
5 // This is the declaration of the MEff2tv class.
6 //
7 
8 #include "GeneralHardME.h"
9 #include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
10 #include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
11 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
12 #include "ThePEG/Helicity/WaveFunction/TensorWaveFunction.h"
13 #include "ThePEG/Helicity/Vertex/AbstractFFTVertex.h"
14 #include "ThePEG/Helicity/Vertex/AbstractVVTVertex.h"
15 #include "ThePEG/Helicity/Vertex/AbstractFFVVertex.h"
16 #include "ThePEG/Helicity/Vertex/AbstractFFVTVertex.h"
17 
18 namespace Herwig {
19 
20 using namespace ThePEG;
25 
31 class MEff2tv: public GeneralHardME {
32 
33 public:
34 
40  typedef vector<SpinorWaveFunction> SpinorVector;
41 
45  typedef vector<SpinorBarWaveFunction> SpinorBarVector;
46 
50  typedef vector<VectorWaveFunction> VBVector;
51 
55  typedef vector<TensorWaveFunction> TBVector;
57 
58 public:
59 
63  MEff2tv() : fermion_(0), vector_(0), fourPoint_(0) {}
64 
72  virtual double me2() const;
73 
78  virtual void constructVertex(tSubProPtr sub);
79 
80 public:
81 
88  void persistentOutput(PersistentOStream & os) const;
89 
95  void persistentInput(PersistentIStream & is, int version);
97 
104  static void Init();
105 
106 protected:
107 
114  virtual IBPtr clone() const;
115 
120  virtual IBPtr fullclone() const;
122 
123 protected:
124 
132  void doinit();
134 
135 private:
136 
141  MEff2tv & operator=(const MEff2tv &) = delete;
142 
143 private:
144 
160  ffb2tvHeME(SpinorVector & sp, SpinorBarVector & spbar,
161  TBVector & ten, VBVector & vec,
162  double & me2,bool first) const;
164 
170  virtual void debug(double me2) const;
171 
172 private:
173 
177  vector<pair<AbstractFFTVertexPtr, AbstractFFVVertexPtr> > fermion_;
178 
182  vector<pair<AbstractFFVVertexPtr, AbstractVVTVertexPtr> > vector_;
183 
187  vector<AbstractFFVTVertexPtr> fourPoint_;
188 
189 };
190 
191 }
192 
193 #endif /* HERWIG_MEff2tv_H */
This defines the GeneralHardME class that is designed to serve as a base class for matrix elements of...
Definition: GeneralHardME.h:40
vector< SpinorBarWaveFunction > SpinorBarVector
A vector of SpinorWaveBarFunctions.
Definition: MEff2tv.h:45
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< pair< AbstractFFVVertexPtr, AbstractVVTVertexPtr > > vector_
Store a pair of FFTVertex and VVTVertex pointers.
Definition: MEff2tv.h:182
The storage of the helicity amplitude expression for the matrix element of a hard process...
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
vector< VectorWaveFunction > VBVector
A vector of VectorWaveFunctions.
Definition: MEff2tv.h:50
vector< pair< AbstractFFTVertexPtr, AbstractFFVVertexPtr > > fermion_
Store a pair of FFTVertex and FFVVertex pointers.
Definition: MEff2tv.h:177
MEff2tv()
The default constructor.
Definition: MEff2tv.h:63
-*- C++ -*-
vector< TensorWaveFunction > TBVector
A vector of VectorWaveFunctions.
Definition: MEff2tv.h:55
vector< SpinorWaveFunction > SpinorVector
A vector of SpinorWaveFunctions.
Definition: MEff2tv.h:40
The documentation of the MEff2tv class implements the general matrix element for vector vectro to ten...
Definition: MEff2tv.h:31
vector< AbstractFFVTVertexPtr > fourPoint_
The four point vertex.
Definition: MEff2tv.h:187