herwig is hosted by Hepforge, IPPP Durham
Herwig  7.1.5
SSHSFSFVertex.h
1 // -*- C++ -*-
2 //
3 // SSHSFSFVertex.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_SSHSFSFVertex_H
10 #define HERWIG_SSHSFSFVertex_H
11 //
12 // This is the declaration of the SSHSFSFVertex class.
13 //
14 
15 #include "ThePEG/Helicity/Vertex/Scalar/SSSVertex.h"
16 #include "MSSM.h"
17 
18 namespace Herwig {
19 using namespace ThePEG;
20 
28 class SSHSFSFVertex: public SSSVertex {
29 
31  typedef vector<MixingMatrixPtr> MMPVector;
32 
33 public:
34 
38  SSHSFSFVertex();
39 
46  void persistentOutput(PersistentOStream & os) const;
47 
53  void persistentInput(PersistentIStream & is, int version);
55 
62  static void Init();
63 
64 
72  void setCoupling(Energy2 q2, tcPDPtr particle1, tcPDPtr particle2,
73  tcPDPtr particle3);
74 
75 protected:
76 
83  virtual IBPtr clone() const {return new_ptr(*this);}
84 
89  virtual IBPtr fullclone() const {return new_ptr(*this);}
91 
92 protected:
93 
101  virtual void doinit();
103 
104 private:
105 
111 
116  SSHSFSFVertex & operator=(const SSHSFSFVertex &) = delete;
117 
118 private:
119 
130  void downSF(Energy2 q2, long higgs, long smID, unsigned int alpha, unsigned int beta);
131 
140  void upSF(Energy2 q2, long higgs, long smID, unsigned int alpha, unsigned int beta);
141 
150  void leptonSF(Energy2 q2, long higgs, long smID, unsigned int alpha, unsigned int beta);
151 
158  void chargedHiggs(Energy2 q2, long id1, long id2);
159 
161 
162 private:
163 
168  MMPVector theMix;
169 
173  vector<complex<Energy> > theTriC;
174 
178  double theSinA;
179 
183  double theCosA;
184 
188  double theSinB;
189 
193  double theCosB;
194 
198  double theTanB;
199 
203  double theSinAB;
204 
208  double theCosAB;
209 
213  Energy theMw;
214 
218  Energy theMz;
219 
223  Energy theMu;
224 
228  double theSw;
229 
233  double theCw;
234 
238  complex<Energy> theCoupLast;
239 
243  Energy2 theq2Last;
244 
248  double thegLast;
249 
253  long theHLast;
254 
259 
264 
268  tMSSMPtr theMSSM;
269 };
270 }
271 
272 
273 #include "ThePEG/Utilities/ClassTraits.h"
274 
275 namespace ThePEG {
276 
281 template <>
282 struct BaseClassTrait<Herwig::SSHSFSFVertex,1> {
284  typedef ThePEG::Helicity::SSSVertex NthBase;
285 };
286 
289 template <>
290 struct ClassTraits<Herwig::SSHSFSFVertex>
291  : public ClassTraitsBase<Herwig::SSHSFSFVertex> {
293  static string className() { return "Herwig::SSHSFSFVertex"; }
301  static string library() { return "HwSusy.so"; }
302 };
303 
306 }
307 
308 #endif /* HERWIG_SSHSFSFVertex_H */
Energy theMw
The mass of the .
double theCosAB
The value of .
Energy2 theq2Last
The scale at which the coupling was last evaluated.
double theCosB
The value of .
long theSF2Last
The ID of the second sfermion when the vertex was last evaluated.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition: SSHSFSFVertex.h:89
complex< Energy > theCoupLast
The value of the coupling when it was last evaluated.
double theSinB
The value of .
double theSinAB
The value of .
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
virtual IBPtr clone() const
Make a simple clone of this object.
Definition: SSHSFSFVertex.h:83
double theCw
The value of .
double thegLast
The value of g coupling when it was last evaluated.
tMSSMPtr theMSSM
The Model.
MMPVector theMix
A vector containing pointers to the mixing matrices, 0 = stop, 1 = sbottom, 2 = stau.
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
vector< complex< Energy > > theTriC
A vector containing the trilinear couplings, quarks then leptons.
Energy theMu
The parameter.
This is the implementation of the coupling for a Higgs in the MSSM to a pair of sfermions.
Definition: SSHSFSFVertex.h:28
double theSw
The value of .
Energy theMz
The mass of the .
-*- C++ -*-
double theCosA
The value of .
double theTanB
The value of .
long theSF1Last
The ID of the first sfermion when the vertex was last evaluated.
static ClassDescription< SSHSFSFVertex > initSSHSFSFVertex
The static object used to initialize the description of this class.
long theHLast
The ID of the higgs when the vertex was last evaluated.
double theSinA
The value of .
vector< MixingMatrixPtr > MMPVector
A vector of MixingMatrix pointers.
Definition: SSHSFSFVertex.h:31