herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MEfv2rs.h
1 // -*- C++ -*-
2 #ifndef Herwig_MEfv2rs_H
3 #define Herwig_MEfv2rs_H
4 //
5 // This is the declaration of the MEfv2rs 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/RSSpinorWaveFunction.h"
12 #include "ThePEG/Helicity/WaveFunction/RSSpinorBarWaveFunction.h"
13 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
14 #include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h"
15 #include "Herwig/MatrixElement/ProductionMatrixElement.h"
16 #include "ThePEG/Helicity/Vertex/AbstractRFVVertex.h"
17 #include "ThePEG/Helicity/Vertex/AbstractRFSVertex.h"
18 #include "ThePEG/Helicity/Vertex/AbstractRFVSVertex.h"
19 #include "ThePEG/Helicity/Vertex/AbstractFFVVertex.h"
20 #include "ThePEG/Helicity/Vertex/AbstractFFSVertex.h"
21 #include "ThePEG/Helicity/Vertex/AbstractVSSVertex.h"
22 #include "ThePEG/Helicity/Vertex/AbstractVVSVertex.h"
23 
24 namespace Herwig {
25 
26 using namespace ThePEG;
27 
35 class MEfv2rs: public GeneralHardME {
36 
38  typedef vector<SpinorWaveFunction> SpinorVector;
39 
41  typedef vector<SpinorBarWaveFunction> SpinorBarVector;
42 
44  typedef vector<RSSpinorWaveFunction> RSSpinorVector;
45 
47  typedef vector<RSSpinorBarWaveFunction> RSSpinorBarVector;
48 
50  typedef vector<VectorWaveFunction> VecWFVector;
51 
52 public:
53 
63  virtual double me2() const;
65 
70  virtual void constructVertex(tSubProPtr subp);
71 
72 private:
73 
86  ProductionMatrixElement fv2rbsHeME(const SpinorVector & spIn,
87  const VecWFVector & vecIn,
88  const RSSpinorBarVector & spbOut,
89  const ScalarWaveFunction & scaOut,
90  double & full_me, bool first) const;
91 
102  ProductionMatrixElement fbv2rsHeME(const SpinorBarVector & spbIn,
103  const VecWFVector & vecIn,
104  const RSSpinorVector & spOut,
105  const ScalarWaveFunction & scaOut,
106  double & full_me, bool first) const;
108 
109 
110 public:
111 
118  void persistentOutput(PersistentOStream & os) const;
119 
125  void persistentInput(PersistentIStream & is, int version);
127 
134  static void Init();
135 
136 protected:
137 
144  virtual IBPtr clone() const;
145 
150  virtual IBPtr fullclone() const;
152 
153 
154 protected:
155 
163  virtual void doinit();
165 
166 private:
167 
172  MEfv2rs & operator=(const MEfv2rs &) = delete;
173 
174 private:
175 
179  vector<pair<AbstractRFSVertexPtr, AbstractVSSVertexPtr> > scalar_;
180 
184  vector<pair<AbstractFFVVertexPtr, AbstractRFSVertexPtr> > fermion1_;
185 
189  vector<pair<AbstractFFSVertexPtr, AbstractRFVVertexPtr> > fermion2_;
190 
194  vector<pair<AbstractRFVVertexPtr,AbstractVVSVertexPtr> > vector_;
195 
199  vector<AbstractRFVSVertexPtr> four_;
200 };
201 
202 }
203 
204 #endif /* Herwig_MEfv2rs_H */
vector< SpinorBarWaveFunction > SpinorBarVector
Vector of SpinorBarWaveFunctions.
Definition: MEfv2rs.h:41
This class is designed to implement the matrix element for fermion-vector to RS fermion scalar...
Definition: MEfv2rs.h:35
This defines the GeneralHardME class that is designed to serve as a base class for matrix elements of...
Definition: GeneralHardME.h:40
vector< SpinorWaveFunction > SpinorVector
Vector of SpinorWaveFunctions.
Definition: MEfv2rs.h:38
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< RSSpinorWaveFunction > RSSpinorVector
Vector of RSSpinorWaveFunctions.
Definition: MEfv2rs.h:44
vector< RSSpinorBarWaveFunction > RSSpinorBarVector
Vector of RSSpinorBarWaveFunctions.
Definition: MEfv2rs.h:47
The storage of the helicity amplitude expression for the matrix element of a hard process...
vector< pair< AbstractRFVVertexPtr, AbstractVVSVertexPtr > > vector_
Store a pair of VVSVertex and FFVVertex pointers.
Definition: MEfv2rs.h:194
vector< pair< AbstractFFVVertexPtr, AbstractRFSVertexPtr > > fermion1_
Store a pair of FFSVertex and FFVVertex pointers.
Definition: MEfv2rs.h:184
vector< AbstractRFVSVertexPtr > four_
Store the 4-point vertices.
Definition: MEfv2rs.h:199
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
vector< pair< AbstractFFSVertexPtr, AbstractRFVVertexPtr > > fermion2_
Store a pair of FFSVertex and FFVVertex pointers.
Definition: MEfv2rs.h:189
-*- C++ -*-
vector< VectorWaveFunction > VecWFVector
Vector of VectorWaveFunctions.
Definition: MEfv2rs.h:50
vector< pair< AbstractRFSVertexPtr, AbstractVSSVertexPtr > > scalar_
Store a pair of FFSVertex and VSSVertex pointers.
Definition: MEfv2rs.h:179