herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MEee2VectorMeson.h
1// -*- C++ -*-
2//
3// MEee2VectorMeson.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4// Copyright (C) 2002-2019 The Herwig Collaboration
5//
6// Herwig is licenced under version 3 of the GPL, see COPYING for details.
7// Please respect the MCnet academic guidelines, see GUIDELINES for details.
8//
9#ifndef HERWIG_MEee2VectorMeson_H
10#define HERWIG_MEee2VectorMeson_H
11//
12// This is the declaration of the MEee2VectorMeson class.
13//
14
15#include "ThePEG/MatrixElement/MEBase.h"
16#include "Herwig/PDT/GenericMassGenerator.fh"
17#include "Herwig/MatrixElement/ProductionMatrixElement.h"
18#include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
19#include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
20#include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
21
22namespace Herwig {
23
24using namespace ThePEG;
25
29
38class MEee2VectorMeson: public MEBase {
39
40public:
41
46 {}
47
54 virtual unsigned int orderInAlphaS() const;
55
60 virtual unsigned int orderInAlphaEW() const;
61
69 virtual double me2() const;
70
74 virtual Energy2 scale() const;
75
83 virtual void setKinematics();
84
89 virtual int nDim() const;
90
99 virtual bool generateKinematics(const double * r);
100
105 virtual CrossSection dSigHatDR() const;
106
110 virtual void getDiagrams() const;
111
121
130 colourGeometries(tcDiagPtr diag) const;
131
135 virtual void constructVertex(tSubProPtr sub);
137
138
139public:
140
148
154 void persistentInput(PersistentIStream & is, int version);
156
163 static void Init();
164
165protected:
166
173 inline virtual IBPtr clone() const {return new_ptr(*this);}
174
179 inline virtual IBPtr fullclone() const {return new_ptr(*this);}
181
182protected:
183
191 virtual void doinit();
193
194private:
195
199 ProductionMatrixElement HelicityME(vector<SpinorWaveFunction> fin,
200 vector<SpinorBarWaveFunction> ain,
201 vector<VectorWaveFunction> vout,double& me) const;
202private:
203
209
210private:
211
216
220 double coupling_;
221
226
230 GenericMassGeneratorPtr massGen_;
231
232};
233
234}
235
236#endif /* HERWIG_MEee2VectorMeson_H */
The MEee2VectorMeson class is designed to produce neutral vector mesons in collisions and is primari...
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
virtual bool generateKinematics(const double *r)
Generate internal degrees of freedom given nDim() uniform random numbers in the interval .
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
MEee2VectorMeson & operator=(const MEee2VectorMeson &)=delete
The assignment operator is private and must never be called.
virtual void setKinematics()
Set the typed and momenta of the incoming and outgoing partons to be used in subsequent calls to me()...
MEee2VectorMeson()
The default constructor.
virtual IBPtr clone() const
Make a simple clone of this object.
static void Init()
The standard Init function used to initialize the interfaces.
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
GenericMassGeneratorPtr massGen_
Pointer to the mass generator for the Higgs.
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
virtual CrossSection dSigHatDR() const
Return the matrix element squared differential in the variables given by the last call to generateKin...
virtual Selector< const ColourLines * > colourGeometries(tcDiagPtr diag) const
Return a Selector with possible colour geometries for the selected diagram weighted by their relative...
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
virtual int nDim() const
The number of internal degrees of freedom used in the matrix element.
PDPtr vector_
The vector meson being produced.
virtual void constructVertex(tSubProPtr sub)
Set up the spin correlations.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
ProductionMatrixElement HelicityME(vector< SpinorWaveFunction > fin, vector< SpinorBarWaveFunction > ain, vector< VectorWaveFunction > vout, double &me) const
Member to return the helicity amplitudes.
double coupling_
The coupling.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
bool lineShape_
Use the mass generator for the line shape.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
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 >::pointer PDPtr