herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
GenericHPPVertex.h
1// -*- C++ -*-
2#ifndef Herwig_GenericHPPVertex_H
3#define Herwig_GenericHPPVertex_H
4//
5// This is the declaration of the GenericHPPVertex 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/Helicity/Vertex/Scalar/VVSVertex.h"
12#include "ThePEG/Persistency/PersistentOStream.h"
13#include "ThePEG/Persistency/PersistentIStream.h"
14#include "ThePEG/Utilities/EnumIO.h"
15#include "ThePEG/PDT/ParticleData.h"
16#include "Herwig/Models/StandardModel/StandardModel.h"
17
18namespace Herwig {
19
20using namespace ThePEG;
21using namespace ThePEG::Helicity;
22
32
33public:
34
38 struct Interaction {
39
43 Interaction(PDPtr in_particle=PDPtr(),SSSVertexPtr in_scalar=SSSVertexPtr(),
44 FFSVertexPtr in_fermion=FFSVertexPtr(),
45 VVSVertexPtr in_vector=VVSVertexPtr())
46 : particle(in_particle), scalar(in_scalar), fermion(in_fermion), vector(in_vector)
47 {}
48
53
57 SSSVertexPtr scalar;
58
62 FFSVertexPtr fermion;
63
67 VVSVertexPtr vector;
68 };
69
70public:
71
76
84 virtual void setCoupling (Energy2 q2, tcPDPtr part1, tcPDPtr part2, tcPDPtr part3);
85
86public:
87
95
101 void persistentInput(PersistentIStream & is, int version);
103
110 static void Init();
111
112protected:
113
120 virtual IBPtr clone() const;
121
126 virtual IBPtr fullclone() const;
128
134 virtual void doinit();
135
136private:
137
143
144private:
145
150
151private:
152
156 vector<PDPtr> bosons_;
157
161 bool setup_;
162
166 map<cPDPtr,vector<Interaction> > vertices_;
167
171 Energy2 q2Last_;
172
177
182
186 tcHwSMPtr model_;
187};
188
194 os << x.particle << x.scalar << x.fermion << x.vector;
195 return os;
196}
197
203 is >> x.particle >> x.scalar >> x.fermion >> x.vector;
204 return is;
205}
206
207}
208
209#endif /* Herwig_GenericHPPVertex_H */
The GenericHPPVertex 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.
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
vector< PDPtr > bosons_
The bosons to consider as particles.
map< cPDPtr, vector< Interaction > > vertices_
The vertices to use.
long idLast_
Lasst id of the boson.
GenericHPPVertex()
The default constructor.
bool setup_
Has it been set up?
Complex coupLast_
Last value of the coupling calculated.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual void setCoupling(Energy2 q2, tcPDPtr part1, tcPDPtr part2, tcPDPtr part3)
Calculate couplings.
void initializeVertex()
Initialize the vertex.
tcHwSMPtr model_
The model for running masses.
GenericHPPVertex & operator=(const GenericHPPVertex &)=delete
The assignment operator is private and must never be called.
Energy2 q2Last_
The scale at which coupling was last evaluated.
virtual IBPtr clone() const
Make a simple clone of this object.
static void Init()
The standard Init function used to initialize the interfaces.
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.
VVSVertexPtr vector
The vector vertex.
SSSVertexPtr scalar
The scalar vertex.
Interaction(PDPtr in_particle=PDPtr(), SSSVertexPtr in_scalar=SSSVertexPtr(), FFSVertexPtr in_fermion=FFSVertexPtr(), VVSVertexPtr in_vector=VVSVertexPtr())
Constructor.
FFSVertexPtr fermion
The fermion vertex.