herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MEfv2tf.h
1 // -*- C++ -*-
2 #ifndef HERWIG_MEfv2tf_H
3 #define HERWIG_MEfv2tf_H
4 //
5 // This is the declaration of the MEfv2tf 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 
32 class MEfv2tf: public GeneralHardME {
33 
35  typedef vector<SpinorWaveFunction> SpinorVector;
36 
38  typedef vector<SpinorBarWaveFunction> SpinorBarVector;
39 
41  typedef vector<VectorWaveFunction> VBVector;
42 
44  typedef vector<TensorWaveFunction> TBVector;
45 
46 public:
47 
51  MEfv2tf() : fermion_(0), vector_(0), fourPoint_(0) {}
52 
60  virtual double me2() const;
61 
66  virtual void constructVertex(tSubProPtr sub);
67 
68 public:
69 
76  void persistentOutput(PersistentOStream & os) const;
77 
83  void persistentInput(PersistentIStream & is, int version);
85 
92  static void Init();
93 
94 protected:
95 
102  virtual IBPtr clone() const;
103 
108  virtual IBPtr fullclone() const;
110 
111 protected:
112 
120  void doinit();
122 
123 private:
124 
137  ProductionMatrixElement fv2tfHeME(const SpinorVector & spIn,
138  const VBVector & vecIn,
139  const TBVector & tenOut,
140  const SpinorBarVector & spbOut,
141  double & full_me, bool first) const;
142 
153  ProductionMatrixElement fbv2tfbHeME(const SpinorBarVector & spbIn,
154  const VBVector & vecIn,
155  const TBVector & tenOut,
156  const SpinorVector & spOut,
157  double & full_me, bool first) const;
159 
165  virtual void debug(double me2) const;
166 
167 private:
168 
173  MEfv2tf & operator=(const MEfv2tf &) = delete;
174 
175 private:
176 
180  vector<pair<AbstractFFTVertexPtr, AbstractFFVVertexPtr> > fermion_;
181 
185  vector<pair<AbstractFFVVertexPtr, AbstractVVTVertexPtr> > vector_;
186 
190  vector<AbstractFFVTVertexPtr> fourPoint_;
191 
192 };
193 
194 }
195 
196 #endif /* HERWIG_MEfv2tf_H */
Here is the documentation of the MEfv2tf class.
Definition: MEfv2tf.h:32
This defines the GeneralHardME class that is designed to serve as a base class for matrix elements of...
Definition: GeneralHardME.h:40
vector< pair< AbstractFFVVertexPtr, AbstractVVTVertexPtr > > vector_
Store a pair of FFTVertex and VVTVertex pointers.
Definition: MEfv2tf.h:185
vector< pair< AbstractFFTVertexPtr, AbstractFFVVertexPtr > > fermion_
Store a pair of FFTVertex and FFVVertex pointers.
Definition: MEfv2tf.h:180
vector< AbstractFFVTVertexPtr > fourPoint_
The four point vertex.
Definition: MEfv2tf.h:190
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
MEfv2tf()
The default constructor.
Definition: MEfv2tf.h:51
vector< TensorWaveFunction > TBVector
Vector of TensorWaveFunctions.
Definition: MEfv2tf.h:44
The storage of the helicity amplitude expression for the matrix element of a hard process...
vector< SpinorWaveFunction > SpinorVector
Vector of SpinorWaveFunctions.
Definition: MEfv2tf.h:35
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
vector< SpinorBarWaveFunction > SpinorBarVector
Vector of SpinorBarWaveFunctions.
Definition: MEfv2tf.h:38
-*- C++ -*-
vector< VectorWaveFunction > VBVector
Vector of VectorWaveFunctions.
Definition: MEfv2tf.h:41