herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MENeutralCurrentDIS.h
1// -*- C++ -*-
2#ifndef HERWIG_MENeutralCurrentDIS_H
3#define HERWIG_MENeutralCurrentDIS_H
4//
5// This is the declaration of the MENeutralCurrentDIS class.
6//
7
8#include "DISBase.h"
9#include "ThePEG/Helicity/Vertex/AbstractFFVVertex.fh"
10#include "Herwig/MatrixElement/ProductionMatrixElement.h"
11#include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
12#include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
13
14namespace Herwig {
15
16using namespace ThePEG;
17
28
29public:
30
35
42 virtual unsigned int orderInAlphaS() const;
43
48 virtual unsigned int orderInAlphaEW() const;
49
57 virtual double me2() const;
58
62 virtual void getDiagrams() const;
63
73
82 colourGeometries(tcDiagPtr diag) const;
83
89
90public:
91
99
105 void persistentInput(PersistentIStream & is, int version);
107
114 static void Init();
115
116protected:
117
128 double helicityME(vector<SpinorWaveFunction> & f1 ,
129 vector<SpinorWaveFunction> & f2,
130 vector<SpinorBarWaveFunction> & a1 ,
131 vector<SpinorBarWaveFunction> & a2,
132 bool lorder, bool qorder,
133 bool me) const;
134
135
139 inline unsigned int gammaZOption() const {return _gammaZ;}
140
145 virtual double A(tcPDPtr lin, tcPDPtr lout, tcPDPtr qin, tcPDPtr qout,
146 Energy2 scale) const;
147
148protected:
149
157 virtual void doinit();
159
160protected:
161
168 virtual IBPtr clone() const {return new_ptr(*this);}
169
174 virtual IBPtr fullclone() const {return new_ptr(*this);}
176
177private:
178
184
185private:
186
194 AbstractFFVVertexPtr _theFFZVertex;
195
199 AbstractFFVVertexPtr _theFFPVertex;
201
210
216
225
230
234 unsigned int _gammaZ;
236
241
249 double _sinW;
250
254 double _cosW;
255
259 Energy2 _mz2;
261
262};
263
264}
265
266#endif /* HERWIG_MENeutralCurrentDIS_H */
The DISBase class is the base class for the implementation of DIS type processes including correction...
Definition: DISBase.h:23
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
The MENeutralCurrentDIS class provides the matrix elements for neutral current DIS.
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
MENeutralCurrentDIS & operator=(const MENeutralCurrentDIS &)=delete
The assignment operator is private and must never be called.
int _minflavour
Switches to control the particles in the hard process.
MENeutralCurrentDIS()
The default constructor.
virtual Selector< const ColourLines * > colourGeometries(tcDiagPtr diag) const
Return a Selector with possible colour geometries for the selected diagram weighted by their relative...
ProductionMatrixElement _me
Matrix element for spin correlations.
unsigned int gammaZOption() const
Option for treatment of terms.
tcPDPtr _gamma
Pointer to the photon ParticleData object.
virtual double A(tcPDPtr lin, tcPDPtr lout, tcPDPtr qin, tcPDPtr qout, Energy2 scale) const
Calculate the coefficient A for the correlations in the hard radiation.
AbstractFFVVertexPtr _theFFPVertex
Pointer to the photon vertex.
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
virtual IBPtr clone() const
Make a simple clone of this object.
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
Energy2 _mz2
The square of the Z mass.
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
double helicityME(vector< SpinorWaveFunction > &f1, vector< SpinorWaveFunction > &f2, vector< SpinorBarWaveFunction > &a1, vector< SpinorBarWaveFunction > &a2, bool lorder, bool qorder, bool me) const
Matrix element for .
AbstractFFVVertexPtr _theFFZVertex
Pointer to the vertices for the helicity calculations.
double _sinW
Electroweak parameters.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
int _maxflavour
Maximum flavour of the incoming quarks.
static void Init()
The standard Init function used to initialize the interfaces.
unsigned int _gammaZ
Whether to include both and or only one.
tcPDPtr _z0
Pointers to the intermediate resonances.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual void constructVertex(tSubProPtr)
Construct the vertex of spin correlations.
The storage of the helicity amplitude expression for the matrix element of a hard process.
vector< DiagPtr > DiagramVector
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr