herwig is hosted by Hepforge, IPPP Durham
Herwig  7.1.5
SMFFHVertex.h
1 // -*- C++ -*-
2 //
3 // SMFFHVertex.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2017 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_SMFFHVertex_H
10 #define HERWIG_SMFFHVertex_H
11 //
12 // This is the declaration of the SMFFHVertex class.
13 
14 #include "ThePEG/Helicity/Vertex/Scalar/FFSVertex.h"
15 #include "Herwig/Models/StandardModel/StandardModel.h"
16 #include "ThePEG/PDT/EnumParticles.h"
17 
18 namespace Herwig {
19 using namespace ThePEG;
20 
29 class SMFFHVertex: public FFSVertex {
30 
31 public:
32 
36  SMFFHVertex();
37 
45  virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,tcPDPtr part3);
46 
47 public:
48 
55  void persistentOutput(PersistentOStream & os) const;
56 
62  void persistentInput(PersistentIStream & is, int version);
64 
68  static void Init();
69 
70 protected:
71 
78  virtual IBPtr clone() const;
79 
84  virtual IBPtr fullclone() const;
86 
87 protected:
88 
94  virtual void doinit();
95 
96 private:
97 
102 
106  SMFFHVertex & operator=(const SMFFHVertex &) = delete;
107 
108 private:
109 
113  tcHwSMPtr _theSM;
114 
122  complex<InvEnergy> _couplast;
123 
127  int _idlast;
128 
132  Energy2 _q2last;
133 
137  Energy _masslast;
138 
142  Energy _mw;
143 
148  int _fermion;
150 };
151 
152 }
153 
154 namespace ThePEG {
155 
162 template <>
163 struct BaseClassTrait<Herwig::SMFFHVertex,1> {
165  typedef ThePEG::Helicity::FFSVertex NthBase;
166 };
167 
172 template <>
173 struct ClassTraits<Herwig::SMFFHVertex>
174  : public ClassTraitsBase<Herwig::SMFFHVertex> {
175 
179  static string className() { return "Herwig::SMFFHVertex"; }
180 
181 };
182 
185 }
186 
187 
188 #endif /* HERWIG_SMFFHVertex_H */
tcHwSMPtr _theSM
Pointer to the SM object.
Definition: SMFFHVertex.h:113
Energy _masslast
The mass of the last fermion for which the coupling was evaluated.
Definition: SMFFHVertex.h:137
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
int _idlast
The PDG code of the last fermion the coupling was evaluated for.
Definition: SMFFHVertex.h:127
int _fermion
A definite fermion flavour to couple to.
Definition: SMFFHVertex.h:148
complex< InvEnergy > _couplast
Storage of the couplings.
Definition: SMFFHVertex.h:122
static ClassDescription< SMFFHVertex > initSMFFHVertex
Describe a concrete class with persistent data.
Definition: SMFFHVertex.h:101
Energy2 _q2last
The last the coupling was evaluated at.
Definition: SMFFHVertex.h:132
This is the implementation of the vertex coupling the Standard Model Higgs to the Standard Model ferm...
Definition: SMFFHVertex.h:29
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
Energy _mw
The mass of the boson.
Definition: SMFFHVertex.h:142
-*- C++ -*-