herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MSSM.h
1 // -*- C++ -*-
2 //
3 // MSSM.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_MSSM_H
10 #define HERWIG_MSSM_H
11 //
12 // This is the declaration of the MSSM class.
13 //
14 
15 #include "SusyBase.h"
16 #include "MSSM.fh"
17 
18 namespace Herwig {
19 
20 using namespace ThePEG;
21 
29 class MSSM: public SusyBase {
30 
31 public:
32 
36  MSSM() : createDiagonalMixing_(false) {}
37 
38 public:
39 
43  double higgsMixingAngle() const {return theAlpha;}
44 
48  const complex<Energy> & topTrilinear() const {return theAtop;}
49 
53  const complex<Energy> & bottomTrilinear() const {return theAbottom;}
54 
58  const complex<Energy> & tauTrilinear() const {return theAtau;}
59 
63  const MixingMatrixPtr & stopMix() const {return theStopMix;}
64 
68  const MixingMatrixPtr & sbottomMix() const {return theSbotMix;}
69 
73  const MixingMatrixPtr & stauMix() const {return theStauMix;}
74 
78  const MixingMatrixPtr & CPevenHiggsMix() const {return theHiggsMix;}
79 
83  const MixingMatrixPtr & CPoddHiggsMix() const {
84  return HiggsAMix_;
85  }
86 
90  const MixingMatrixPtr & ChargedHiggsMix() const {
91  return HiggsPMix_;
92  }
93 
94 public:
95 
102  void persistentOutput(PersistentOStream & os) const;
103 
109  void persistentInput(PersistentIStream & is, int version);
111 
118  static void Init();
119 
120 protected:
121 
128  virtual IBPtr clone() const {return new_ptr(*this);}
129 
134  virtual IBPtr fullclone() const {return new_ptr(*this);}
136 
137 protected:
138 
142  virtual void createMixingMatrices();
143 
147  virtual void extractParameters(bool checkModel=true);
148 
153  virtual void adjustMixingMatrix(long id);
154 
158  void CPevenHiggsMix(MixingMatrixPtr in) {theHiggsMix = in;}
159 
163  void CPoddHiggsMix(MixingMatrixPtr in) {HiggsAMix_ = in;}
164 
168  void ChargedHiggsMix(MixingMatrixPtr in) {HiggsPMix_ = in;}
169 
173  void stopMix(MixingMatrixPtr in) {theStopMix =in;}
174 
178  void sbottomMix(MixingMatrixPtr in) {theSbotMix = in;}
179 
183  void stauMix(MixingMatrixPtr in) {theStauMix = in;}
184 
188  void higgsMixingAngle(double in) {theAlpha = in;}
189 
190 private:
191 
196  MSSM & operator=(const MSSM &) = delete;
197 
198 private:
199 
207  MixingMatrixPtr theStopMix;
208 
212  MixingMatrixPtr theSbotMix;
213 
217  MixingMatrixPtr theStauMix;
219 
228  complex<Energy> theAtop;
229 
233  complex<Energy> theAbottom;
234 
238  complex<Energy> theAtau;
240 
244  double theAlpha;
245 
253  MixingMatrixPtr theHiggsMix;
257  MixingMatrixPtr HiggsAMix_;
258 
262  MixingMatrixPtr HiggsPMix_;
264 
269 
270 };
271 
272 }
273 
274 #endif /* HERWIG_MSSM_H */
complex< Energy > theAtau
For the charged sleptons.
Definition: MSSM.h:238
const MixingMatrixPtr & stopMix() const
The stop mixing matrix.
Definition: MSSM.h:63
MixingMatrixPtr theStopMix
Third generation squark and slepton mixing matrices.
Definition: MSSM.h:207
const complex< Energy > & tauTrilinear() const
Value of lepton trilinear couplings.
Definition: MSSM.h:58
void sbottomMix(MixingMatrixPtr in)
The sbottom chargino mixing matrix.
Definition: MSSM.h:178
double theAlpha
Value of higgs mixing angle.
Definition: MSSM.h:244
This class is designed to be a base class for SUSY models.
Definition: SusyBase.h:51
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
void higgsMixingAngle(double in)
Value of Higgs mixing angle .
Definition: MSSM.h:188
void ChargedHiggsMix(MixingMatrixPtr in)
Mixing matrix for the charged Higgs bosons.
Definition: MSSM.h:168
MixingMatrixPtr HiggsPMix_
Charged Higgs mixing.
Definition: MSSM.h:262
MixingMatrixPtr HiggsAMix_
Pseudoscalar Higgs mixing.
Definition: MSSM.h:257
complex< Energy > theAbottom
For the down type squarks.
Definition: MSSM.h:233
MixingMatrixPtr theSbotMix
The mixing matrix.
Definition: MSSM.h:212
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition: MSSM.h:134
const complex< Energy > & topTrilinear() const
Value of up-type trilinear couplings.
Definition: MSSM.h:48
const MixingMatrixPtr & CPoddHiggsMix() const
Mixing matrix for the neutral CP-odd Higgs bosons.
Definition: MSSM.h:83
bool createDiagonalMixing_
Create diagonal the stop, bottom and stau mixing matrices if needed.
Definition: MSSM.h:268
void stopMix(MixingMatrixPtr in)
Set the stop mixing matrix.
Definition: MSSM.h:173
The MSSM class provides the main model class to replace the Standard Model when using the Minimal Sup...
Definition: MSSM.h:29
void CPevenHiggsMix(MixingMatrixPtr in)
Mixing matrix for the neutral CP-even Higgs bosons.
Definition: MSSM.h:158
void CPoddHiggsMix(MixingMatrixPtr in)
Mixing matrix for the neutral CP-odd Higgs bosons.
Definition: MSSM.h:163
complex< Energy > theAtop
Trilinear couplings stored as vector of complex numbers to make use of routine already available to r...
Definition: MSSM.h:228
MSSM()
Default constructor.
Definition: MSSM.h:36
virtual IBPtr clone() const
Make a simple clone of this object.
Definition: MSSM.h:128
-*- C++ -*-
double higgsMixingAngle() const
Value of Higgs mixing angle .
Definition: MSSM.h:43
const complex< Energy > & bottomTrilinear() const
Value of down-type trilinear couplings.
Definition: MSSM.h:53
MixingMatrixPtr theHiggsMix
Higgs boson mixing matrices.
Definition: MSSM.h:253
void stauMix(MixingMatrixPtr in)
The stau mixing matrix.
Definition: MSSM.h:183
const MixingMatrixPtr & stauMix() const
The stau mixing matrix.
Definition: MSSM.h:73
const MixingMatrixPtr & CPevenHiggsMix() const
Mixing matrix for the neutral CP-even Higgs bosons.
Definition: MSSM.h:78
MixingMatrixPtr theStauMix
The mixing matrix.
Definition: MSSM.h:217
const MixingMatrixPtr & ChargedHiggsMix() const
Mixing matrix for the charged Higgs bosons.
Definition: MSSM.h:90
const MixingMatrixPtr & sbottomMix() const
The sbottom chargino mixing matrix.
Definition: MSSM.h:68