herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
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
18namespace Herwig {
19
20using namespace ThePEG;
25
32class 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
46public:
47
52
60 virtual double me2() const;
61
66 virtual void constructVertex(tSubProPtr sub);
67
68public:
69
77
83 void persistentInput(PersistentIStream & is, int version);
85
92 static void Init();
93
94protected:
95
102 virtual IBPtr clone() const;
103
108 virtual IBPtr fullclone() const;
110
111protected:
112
120 void doinit();
122
123private:
124
138 const VBVector & vecIn,
139 const TBVector & tenOut,
140 const SpinorBarVector & spbOut,
141 double & full_me, bool first) const;
142
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
167private:
168
173 MEfv2tf & operator=(const MEfv2tf &) = delete;
174
175private:
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 */
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 MEfv2tf class.
Definition: MEfv2tf.h:32
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
vector< TensorWaveFunction > TBVector
Vector of TensorWaveFunctions.
Definition: MEfv2tf.h:44
virtual void constructVertex(tSubProPtr sub)
Construct the vertex information for the spin correlations.
vector< pair< AbstractFFTVertexPtr, AbstractFFVVertexPtr > > fermion_
Store a pair of FFTVertex and FFVVertex pointers
Definition: MEfv2tf.h:180
vector< VectorWaveFunction > VBVector
Vector of VectorWaveFunctions.
Definition: MEfv2tf.h:41
ProductionMatrixElement fbv2tfbHeME(const SpinorBarVector &spbIn, const VBVector &vecIn, const TBVector &tenOut, const SpinorVector &spOut, double &full_me, bool first) const
Calculate me2 and the production matrix element for the cc mode.
void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
MEfv2tf()
The default constructor.
Definition: MEfv2tf.h:51
vector< SpinorBarWaveFunction > SpinorBarVector
Vector of SpinorBarWaveFunctions.
Definition: MEfv2tf.h:38
virtual IBPtr clone() const
Make a simple clone of this object.
vector< AbstractFFVTVertexPtr > fourPoint_
The four point vertex.
Definition: MEfv2tf.h:190
vector< pair< AbstractFFVVertexPtr, AbstractVVTVertexPtr > > vector_
Store a pair of FFTVertex and VVTVertex pointers.
Definition: MEfv2tf.h:185
static void Init()
The standard Init function used to initialize the interfaces.
vector< SpinorWaveFunction > SpinorVector
Vector of SpinorWaveFunctions.
Definition: MEfv2tf.h:35
ProductionMatrixElement fv2tfHeME(const SpinorVector &spIn, const VBVector &vecIn, const TBVector &tenOut, const SpinorBarVector &spbOut, double &full_me, bool first) const
Calculate me2 and the production matrix element for the normal mode.
MEfv2tf & operator=(const MEfv2tf &)=delete
The assignment operator is private and must never be called.
virtual void debug(double me2) const
A debugging function to test the value of me2 against an analytic function.
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
The storage of the helicity amplitude expression for the matrix element of a hard process.
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr