herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
17 namespace Herwig {
18 
19 using namespace ThePEG;
20 using namespace ThePEG::Helicity;
21 
31 
32 public:
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 
63 public:
64 
69 
77  virtual void setCoupling (Energy2 q2, tcPDPtr part1, tcPDPtr part2, tcPDPtr part3);
78 
79 public:
80 
87  void persistentOutput(PersistentOStream & os) const;
88 
94  void persistentInput(PersistentIStream & is, int version);
96 
103  static void Init();
104 
105 protected:
106 
113  virtual IBPtr clone() const;
114 
119  virtual IBPtr fullclone() const;
121 
127  virtual void doinit();
128 
129 private:
130 
135  GenericHGGVertex & operator=(const GenericHGGVertex &) = delete;
136 
137 private:
138 
142  void initializeVertex();
143 
144 private:
145 
149  vector<PDPtr> bosons_;
150 
154  bool setup_;
155 
159  map<cPDPtr,vector<Interaction> > vertices_;
160 
164  Energy2 q2Last_;
165 
170 
174  long idLast_;
175 
179  tcHwSMPtr model_;
180 };
181 
186  const GenericHGGVertex::Interaction & x) {
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 */
map< cPDPtr, vector< Interaction > > vertices_
The vertices to use.
std::complex< double > Complex
bool setup_
Has it been set up?
FFSVertexPtr fermion
The fermion vertex.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
long idLast_
Lasst id of the boson.
Complex coupLast_
Last value of the coupling calculated.
Interaction(PDPtr in_particle=PDPtr(), SSSVertexPtr in_scalar=SSSVertexPtr(), FFSVertexPtr in_fermion=FFSVertexPtr())
Constructor.
ostream & operator<<(ostream &, const DecayIntegrator &)
Output information on the DecayIntegrator for debugging purposes.
PersistentIStream & operator>>(PersistentIStream &is, map< ShowerInteraction, T, Cmp, A > &m)
Read a map with ShowerInteraction as the key.
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
ThePEG::Ptr< ParticleData >::pointer PDPtr
The VVSLoopVertex is designed to calculate the coefficents for the terms in the Passarino-Veltman ten...
Definition: VVSLoopVertex.h:21
SSSVertexPtr scalar
The scalar vertex.
tcHwSMPtr model_
The model for running masses.
The GenericHGGVertex class implements the coupling of the Higgs boson to gluons in a generic model us...
-*- C++ -*-
Energy2 q2Last_
The scale at which coupling was last evaluated.
Struct to store the stuff needed for the vertices.
vector< PDPtr > bosons_
The bosons to consider as particles.