herwig is hosted by Hepforge, IPPP Durham
Herwig  7.1.4
NMSSMHHHVertex.h
1 // -*- C++ -*-
2 #ifndef HERWIG_NMSSMHHHVertex_H
3 #define HERWIG_NMSSMHHHVertex_H
4 //
5 // This is the declaration of the NMSSMHHHVertex class.
6 //
7 #include "ThePEG/Helicity/Vertex/Scalar/SSSVertex.h"
8 #include "Herwig/Models/StandardModel/StandardModel.h"
9 #include "Herwig/Models/Susy/MixingMatrix.h"
10 
11 namespace Herwig {
12 using namespace ThePEG;
13 using namespace ThePEG::Helicity;
14 
22 class NMSSMHHHVertex: public SSSVertex {
23 
24 public:
25 
30 
31 public:
32 
39  void persistentOutput(PersistentOStream & os) const;
40 
46  void persistentInput(PersistentIStream & is, int version);
48 
55  static void Init();
56 
65  virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,
66  tcPDPtr part3);
67 
68 protected:
69 
76  virtual IBPtr clone() const {return new_ptr(*this);}
77 
82  virtual IBPtr fullclone() const {return new_ptr(*this);}
84 
85 protected:
86 
93  virtual void doinit();
95 
96 private:
97 
103 
108  NMSSMHHHVertex & operator=(const NMSSMHHHVertex &);
109 
110 private:
111 
121  Complex usMix(unsigned int a, unsigned int b, unsigned int c,
122  unsigned int i, unsigned int j, unsigned int k) const {
123  return (*_mixS)(a,i)*(*_mixS)(b,j)*(*_mixS)(c,k) +
124  (*_mixS)(a,i)*(*_mixS)(c,j)*(*_mixS)(b,k) +
125  (*_mixS)(b,i)*(*_mixS)(a,j)*(*_mixS)(c,k) +
126  (*_mixS)(b,i)*(*_mixS)(c,j)*(*_mixS)(a,k) +
127  (*_mixS)(c,i)*(*_mixS)(a,j)*(*_mixS)(b,k) +
128  (*_mixS)(c,i)*(*_mixS)(b,j)*(*_mixS)(a,k);
129  }
130 
140  Complex upMix(unsigned int a, unsigned int b, unsigned int c,
141  unsigned int i, unsigned int j, unsigned int k) const {
142  return (*_mixS)(a,i)*((*_mixP)(b,j)*(*_mixP)(c,k) +
143  (*_mixP)(c,j)*(*_mixP)(b,k));
144  }
145 
146 private:
147 
151  tcHwSMPtr _theSM;
152 
156  Energy _mw;
157 
161  Energy _mz;
165  Energy _mb;
166 
170  Energy _mt;
171 
175  double _sw2;
176 
180  double _cw;
181 
185  MixingMatrixPtr _mixS;
186 
190  MixingMatrixPtr _mixP;
191 
195  double _lambda;
196 
200  double _kappa;
201 
205  Energy _lambdaVEV;
206 
210  Energy _theAl;
211 
215  Energy _theAk;
216 
220  double _sb;
221 
225  double _cb;
226 
230  double _s2b;
231 
235  double _c2b;
236 
241  Energy _vu;
242 
247  Energy _vd;
248 
252  Energy _s;
253 
257  Energy2 _q2last;
258 
262  double _glast;
266  Energy _MQ3;
267 
271  Energy _MU2;
272 
277 
278 };
279 
280 }
281 
282 #include "ThePEG/Utilities/ClassTraits.h"
283 
284 namespace ThePEG {
285 
290 template <>
291 struct BaseClassTrait<Herwig::NMSSMHHHVertex,1> {
293  typedef Helicity::SSSVertex NthBase;
294 };
295 
298 template <>
299 struct ClassTraits<Herwig::NMSSMHHHVertex>
300  : public ClassTraitsBase<Herwig::NMSSMHHHVertex> {
302  static string className() { return "Herwig::NMSSMHHHVertex"; }
310  static string library() { return "HwSusy.so HwNMSSM.so"; }
311 };
312 
315 }
316 
317 #endif /* HERWIG_NMSSMHHHVertex_H */
Complex upMix(unsigned int a, unsigned int b, unsigned int c, unsigned int i, unsigned int j, unsigned int k) const
The mixing matrix combination .
Energy _theAl
The soft trilinear coupling.
Energy _lambdaVEV
The product .
Energy _mt
The mass.
The NMSSMHHHVertex defines the triple Higgs coupling in the NMSSM.
std::complex< double > Complex
double _kappa
The coefficient of the cubic singlet term in the superpotential.
double _glast
The value of the EW coupling when it was last evaluated.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
tcHwSMPtr _theSM
A pointer to the object containing the SM parameters.
Energy _MU2
right scalar top mass
MixingMatrixPtr _mixS
The CP-even Higgs mixing matrix.
Energy _mz
The mass.
Energy2 _q2last
The scale at which this vertex was last evaluated.
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
Energy _MQ3
left 3rd generation scalar quark mass
Energy _vd
The value of the VEV of the higgs that couples to the up-type sector i.e.
static ClassDescription< NMSSMHHHVertex > initNMSSMHHHVertex
The static object used to initialize the description of this class.
Energy _s
The value of the VEV of the singlet higgs.
Energy _vu
The value of the VEV of the higgs that couples to the down-type sector .
MixingMatrixPtr _mixP
The CP-odd Higgs mixing matrix.
-*- C++ -*-
double _lambda
The coefficient of the trilinear term in the superpotential.
virtual IBPtr clone() const
Make a simple clone of this object.
Energy _mb
The mass.
Complex usMix(unsigned int a, unsigned int b, unsigned int c, unsigned int i, unsigned int j, unsigned int k) const
The mixing matrix combination .
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
bool _includeRadiative
Whether or onto to include the radiative terms.
Energy _theAk
The soft cubic coupling.
Energy _mw
The mass.