herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
GenericHGGVertex.h
1// -*- C++ -*-
2#ifndef Herwig_GenericHGGVertex_H
3#define Herwig_GenericHGGVertex_H
4//
5// This is the declaration of the GenericHGGVertex class.
6//
7
8#include "VVSLoopVertex.h"
9#include "ThePEG/Helicity/Vertex/Scalar/FFSVertex.h"
10#include "ThePEG/Helicity/Vertex/Scalar/SSSVertex.h"
11#include "ThePEG/Persistency/PersistentOStream.h"
12#include "ThePEG/Persistency/PersistentIStream.h"
13#include "ThePEG/Utilities/EnumIO.h"
14#include "ThePEG/PDT/ParticleData.h"
15#include "Herwig/Models/StandardModel/StandardModel.h"
16
17namespace Herwig {
18
19using namespace ThePEG;
20using namespace ThePEG::Helicity;
21
31
32public:
33
37 struct Interaction {
38
42 Interaction(PDPtr in_particle=PDPtr(),SSSVertexPtr in_scalar=SSSVertexPtr(),
43 FFSVertexPtr in_fermion=FFSVertexPtr())
44 : particle(in_particle), scalar(in_scalar), fermion(in_fermion)
45 {}
46
51
55 SSSVertexPtr scalar;
56
60 FFSVertexPtr fermion;
61 };
62
63public:
64
69
77 virtual void setCoupling (Energy2 q2, tcPDPtr part1, tcPDPtr part2, tcPDPtr part3);
78
79public:
80
88
94 void persistentInput(PersistentIStream & is, int version);
96
103 static void Init();
104
105protected:
106
113 virtual IBPtr clone() const;
114
119 virtual IBPtr fullclone() const;
121
127 virtual void doinit();
128
129private:
130
136
137private:
138
143
144private:
145
149 vector<PDPtr> bosons_;
150
154 bool setup_;
155
159 map<cPDPtr,vector<Interaction> > vertices_;
160
164 Energy2 q2Last_;
165
170
175
179 tcHwSMPtr model_;
180};
181
187 os << x.particle << x.scalar << x.fermion;
188 return os;
189}
190
196 is >> x.particle >> x.scalar >> x.fermion;
197 return is;
198}
199
200}
201
202#endif /* Herwig_GenericHGGVertex_H */
The GenericHGGVertex class implements the coupling of the Higgs boson to gluons in a generic model us...
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
static void Init()
The standard Init function used to initialize the interfaces.
virtual void setCoupling(Energy2 q2, tcPDPtr part1, tcPDPtr part2, tcPDPtr part3)
Calculate couplings.
bool setup_
Has it been set up?
virtual IBPtr clone() const
Make a simple clone of this object.
GenericHGGVertex & operator=(const GenericHGGVertex &)=delete
The assignment operator is private and must never be called.
vector< PDPtr > bosons_
The bosons to consider as particles.
Complex coupLast_
Last value of the coupling calculated.
long idLast_
Lasst id of the boson.
map< cPDPtr, vector< Interaction > > vertices_
The vertices to use.
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
Energy2 q2Last_
The scale at which coupling was last evaluated.
GenericHGGVertex()
The default constructor.
void initializeVertex()
Initialize the vertex.
tcHwSMPtr model_
The model for running masses.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
The VVSLoopVertex is designed to calculate the coefficents for the terms in the Passarino-Veltman ten...
Definition: VVSLoopVertex.h:21
-*- C++ -*-
PersistentIStream & operator>>(PersistentIStream &is, HandlerGroup< HDLR > &hg)
std::complex< double > Complex
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
ThePEG::Ptr< ParticleData >::pointer PDPtr
ostream & operator<<(ostream &, const Collision &)
Struct to store the stuff needed for the vertices.
Interaction(PDPtr in_particle=PDPtr(), SSSVertexPtr in_scalar=SSSVertexPtr(), FFSVertexPtr in_fermion=FFSVertexPtr())
Constructor.
FFSVertexPtr fermion
The fermion vertex.
SSSVertexPtr scalar
The scalar vertex.