herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
SSHSFSFVertex.h
1 // -*- C++ -*-
2 //
3 // SSHSFSFVertex.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2019 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 
110  SSHSFSFVertex & operator=(const SSHSFSFVertex &) = delete;
111 
112 private:
113 
124  void downSF(Energy2 q2, long higgs, long smID, unsigned int alpha, unsigned int beta);
125 
134  void upSF(Energy2 q2, long higgs, long smID, unsigned int alpha, unsigned int beta);
135 
144  void leptonSF(Energy2 q2, long higgs, long smID, unsigned int alpha, unsigned int beta);
145 
152  void chargedHiggs(Energy2 q2, long id1, long id2);
153 
155 
156 private:
157 
162  MMPVector theMix;
163 
167  vector<complex<Energy> > theTriC;
168 
172  double theSinA;
173 
177  double theCosA;
178 
182  double theSinB;
183 
187  double theCosB;
188 
192  double theTanB;
193 
197  double theSinAB;
198 
202  double theCosAB;
203 
207  Energy theMw;
208 
212  Energy theMz;
213 
217  Energy theMu;
218 
222  double theSw;
223 
227  double theCw;
228 
232  complex<Energy> theCoupLast;
233 
237  Energy2 theq2Last;
238 
242  double thegLast;
243 
247  long theHLast;
248 
253 
258 
262  tMSSMPtr theMSSM;
263 };
264 }
265 
266 
267 #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.
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