herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MEee2Higgs2SM.h
1// -*- C++ -*-
2//
3// MEee2Higgs2SM.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_MEee2Higgs2SM_H
10#define HERWIG_MEee2Higgs2SM_H
11//
12// This is the declaration of the MEee2Higgs2SM class.
13//
14
15#include "ThePEG/MatrixElement/ME2to2Base.h"
16#include "Herwig/Models/StandardModel/StandardModel.h"
17#include "Herwig/MatrixElement/ProductionMatrixElement.h"
18#include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
19#include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
20
21namespace Herwig {
22
23using namespace ThePEG;
24
34
35public:
36
40 inline MEee2Higgs2SM() : allowed_(0) {}
41
48 virtual unsigned int orderInAlphaS() const;
49
54 virtual unsigned int orderInAlphaEW() const;
55
63 virtual double me2() const;
64
68 virtual Energy2 scale() const;
69
73 virtual void getDiagrams() const;
74
84
93 colourGeometries(tcDiagPtr diag) const;
94
98 virtual void constructVertex(tSubProPtr sub);
100
101public:
102
110
116 void persistentInput(PersistentIStream & is, int version);
118
125 static void Init();
126
127protected:
128
135 inline virtual IBPtr clone() const {return new_ptr(*this);}
136
141 inline virtual IBPtr fullclone() const {return new_ptr(*this);}
143
144protected:
145
153 virtual void doinit();
154
164 virtual void rebind(const TranslationMap & trans)
165 ;
166
174
175private:
176
185 ProductionMatrixElement HelicityME(vector<SpinorWaveFunction> fin,
186 vector<SpinorBarWaveFunction> ain,
187 vector<SpinorBarWaveFunction> fout,
188 vector<SpinorWaveFunction> aout,double& me) const;
197 ProductionMatrixElement ggME(vector<SpinorWaveFunction> fin,
198 vector<SpinorBarWaveFunction> ain,
199 vector<VectorWaveFunction> g1,
200 vector<VectorWaveFunction> g2,
201 double & me) const;
210 ProductionMatrixElement WWME(vector<SpinorWaveFunction> fin,
211 vector<SpinorBarWaveFunction> ain,
212 vector<VectorWaveFunction> g1,
213 vector<VectorWaveFunction> g2,
214 double & me) const;
215
216private:
217
223
224private:
225
229 AbstractFFSVertexPtr FFHVertex_;
230
234 AbstractVVSVertexPtr HGGVertex_;
235
239 AbstractVVSVertexPtr HWWVertex_;
240
245
250};
251
252}
253
254#endif /* HERWIG_MEee2Higgs2SM_H */
The MEee2Higgs2SM class implements the production of an -channel Higgs in collisions in order to all...
Definition: MEee2Higgs2SM.h:33
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
MEee2Higgs2SM & operator=(const MEee2Higgs2SM &)=delete
The assignment operator is private and must never be called.
AbstractVVSVertexPtr HGGVertex_
Pointer to Higgs-gluon-gluon vertex.
int allowed_
Allowed outgoing particles.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
virtual IVector getReferences()
Return a vector of all pointers to Interfaced objects used in this object.
AbstractFFSVertexPtr FFHVertex_
Pointer to the Higgs fermion-antifermion vertex.
ProductionMatrixElement ggME(vector< SpinorWaveFunction > fin, vector< SpinorBarWaveFunction > ain, vector< VectorWaveFunction > g1, vector< VectorWaveFunction > g2, double &me) const
matrix element
PDPtr h0_
Pointer to the Higgs ParticleData object.
virtual void constructVertex(tSubProPtr sub)
set up the spin correlations
virtual IBPtr clone() const
Make a simple clone of this object.
virtual void rebind(const TranslationMap &trans)
Rebind pointer to other Interfaced objects.
static void Init()
The standard Init function used to initialize the interfaces.
MEee2Higgs2SM()
The default constructor.
Definition: MEee2Higgs2SM.h:40
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
ProductionMatrixElement WWME(vector< SpinorWaveFunction > fin, vector< SpinorBarWaveFunction > ain, vector< VectorWaveFunction > g1, vector< VectorWaveFunction > g2, double &me) const
matrix element
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
AbstractVVSVertexPtr HWWVertex_
Pointer to Higgs-WW vertex.
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
ProductionMatrixElement HelicityME(vector< SpinorWaveFunction > fin, vector< SpinorBarWaveFunction > ain, vector< SpinorBarWaveFunction > fout, vector< SpinorWaveFunction > aout, double &me) const
The matrix element.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
virtual Selector< const ColourLines * > colourGeometries(tcDiagPtr diag) const
Return a Selector with possible colour geometries for the selected diagram weighted by their relative...
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.
vector< DiagPtr > DiagramVector
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
ThePEG::Ptr< ParticleData >::pointer PDPtr
vector< IBPtr > IVector