herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MEvv2rf.h
1 // -*- C++ -*-
2 #ifndef Herwig_MEvv2rf_H
3 #define Herwig_MEvv2rf_H
4 //
5 // This is the declaration of the MEvv2rf class.
6 //
7 
8 #include "GeneralHardME.h"
9 #include "ThePEG/Helicity/Vertex/AbstractRFSVertex.h"
10 #include "ThePEG/Helicity/Vertex/AbstractVVSVertex.h"
11 #include "ThePEG/Helicity/Vertex/AbstractFFVVertex.h"
12 #include "ThePEG/Helicity/Vertex/AbstractRFVVertex.h"
13 #include "ThePEG/Helicity/Vertex/AbstractVVVVertex.h"
14 #include "ThePEG/Helicity/Vertex/AbstractRFVVVertex.h"
15 #include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
16 #include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
17 #include "ThePEG/Helicity/WaveFunction/RSSpinorWaveFunction.h"
18 #include "ThePEG/Helicity/WaveFunction/RSSpinorBarWaveFunction.h"
19 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
20 #include "Herwig/MatrixElement/ProductionMatrixElement.h"
21 
22 namespace Herwig {
23 
24 using namespace ThePEG;
25 
34 class MEvv2rf: public GeneralHardME {
35 
36 public:
37 
39  typedef vector<VectorWaveFunction> VBVector;
40 
42  typedef vector<SpinorWaveFunction> SpinorVector;
43 
45  typedef vector<SpinorBarWaveFunction> SpinorBarVector;
46 
48  typedef vector<RSSpinorWaveFunction> RSSpinorVector;
49 
51  typedef vector<RSSpinorBarWaveFunction> RSSpinorBarVector;
52 
53 public:
54 
64  virtual double me2() const;
66 
71  virtual void constructVertex(tSubProPtr sub);
72 
73 public:
74 
81  void persistentOutput(PersistentOStream & os) const;
82 
88  void persistentInput(PersistentIStream & is, int version);
90 
97  static void Init();
98 
99 protected:
100 
107  virtual IBPtr clone() const;
108 
113  virtual IBPtr fullclone() const;
115 
116 protected:
117 
125  virtual void doinit();
127 
128 private:
129 
133  ProductionMatrixElement vv2rfME(const VBVector & v1, const VBVector & v2,
134  const RSSpinorBarVector & sbar,
135  const SpinorVector & sp,
136  double & me2, bool first) const;
137 
141  ProductionMatrixElement vv2frME(const VBVector & v1, const VBVector & v2,
142  const SpinorBarVector & sbar,
143  const RSSpinorVector & sp,
144  double & me2, bool first) const;
145 
146 private:
147 
152  MEvv2rf & operator=(const MEvv2rf &) = delete;
153 private:
154 
160  vector<pair<AbstractVVSVertexPtr, AbstractRFSVertexPtr > > scalar_;
161 
165  vector<pair<AbstractRFVVertexPtr, AbstractFFVVertexPtr> > fermion_;
166 
170  vector<pair<AbstractVVVVertexPtr, AbstractRFVVertexPtr> > vector_;
171 
175  vector<AbstractRFVVVertexPtr> four_;
177 
178 };
179 
180 }
181 
182 #endif /* Herwig_MEvv2rf_H */
vector< AbstractRFVVVertexPtr > four_
Four point vertices.
Definition: MEvv2rf.h:175
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 SpinorBarWaveFunction objects.
Definition: MEvv2rf.h:45
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< pair< AbstractRFVVertexPtr, AbstractFFVVertexPtr > > fermion_
Intermediate fermion.
Definition: MEvv2rf.h:165
vector< RSSpinorWaveFunction > RSSpinorVector
A vector of SpinorBarWaveFunction objects.
Definition: MEvv2rf.h:48
The storage of the helicity amplitude expression for the matrix element of a hard process...
This class is designed to implement the matrix element for the process vector-vector to fermion- RS ...
Definition: MEvv2rf.h:34
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
vector< RSSpinorBarWaveFunction > RSSpinorBarVector
A vector of SpinorBarWaveFunction objects.
Definition: MEvv2rf.h:51
vector< SpinorWaveFunction > SpinorVector
A vector of SpinorBarWaveFunction objects.
Definition: MEvv2rf.h:42
vector< pair< AbstractVVSVertexPtr, AbstractRFSVertexPtr > > scalar_
Intermediate scalar.
Definition: MEvv2rf.h:160
-*- C++ -*-
vector< pair< AbstractVVVVertexPtr, AbstractRFVVertexPtr > > vector_
Intermediate vector.
Definition: MEvv2rf.h:170
vector< VectorWaveFunction > VBVector
A Vector of VectorWaveFunction objects.
Definition: MEvv2rf.h:39