herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
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
18namespace Herwig {
19
20using namespace ThePEG;
21
29class MSSM: public SusyBase {
30
31public:
32
37
38public:
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
94public:
95
103
109 void persistentInput(PersistentIStream & is, int version);
111
118 static void Init();
119
120protected:
121
128 virtual IBPtr clone() const {return new_ptr(*this);}
129
134 virtual IBPtr fullclone() const {return new_ptr(*this);}
136
137protected:
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
190private:
191
196 MSSM & operator=(const MSSM &) = delete;
197
198private:
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 */
The MSSM class provides the main model class to replace the Standard Model when using the Minimal Sup...
Definition: MSSM.h:29
void higgsMixingAngle(double in)
Value of Higgs mixing angle .
Definition: MSSM.h:188
const MixingMatrixPtr & CPoddHiggsMix() const
Mixing matrix for the neutral CP-odd Higgs bosons.
Definition: MSSM.h:83
void CPevenHiggsMix(MixingMatrixPtr in)
Mixing matrix for the neutral CP-even Higgs bosons.
Definition: MSSM.h:158
virtual void adjustMixingMatrix(long id)
Adjust row of Mixing Matrix if a negative mass occurs in LHA file.
const complex< Energy > & bottomTrilinear() const
Value of down-type trilinear couplings.
Definition: MSSM.h:53
static void Init()
The standard Init function used to initialize the interfaces.
virtual IBPtr clone() const
Make a simple clone of this object.
Definition: MSSM.h:128
void stauMix(MixingMatrixPtr in)
The stau mixing matrix.
Definition: MSSM.h:183
void sbottomMix(MixingMatrixPtr in)
The sbottom chargino mixing matrix.
Definition: MSSM.h:178
const MixingMatrixPtr & stopMix() const
The stop mixing matrix.
Definition: MSSM.h:63
MixingMatrixPtr theSbotMix
The mixing matrix.
Definition: MSSM.h:212
const complex< Energy > & topTrilinear() const
Value of up-type trilinear couplings.
Definition: MSSM.h:48
const complex< Energy > & tauTrilinear() const
Value of lepton trilinear couplings.
Definition: MSSM.h:58
MixingMatrixPtr theStopMix
Third generation squark and slepton mixing matrices.
Definition: MSSM.h:207
void stopMix(MixingMatrixPtr in)
Set the stop mixing matrix.
Definition: MSSM.h:173
complex< Energy > theAtop
Trilinear couplings stored as vector of complex numbers to make use of routine already available to r...
Definition: MSSM.h:228
MixingMatrixPtr HiggsAMix_
Pseudoscalar Higgs mixing.
Definition: MSSM.h:257
void CPoddHiggsMix(MixingMatrixPtr in)
Mixing matrix for the neutral CP-odd Higgs bosons.
Definition: MSSM.h:163
const MixingMatrixPtr & CPevenHiggsMix() const
Mixing matrix for the neutral CP-even Higgs bosons.
Definition: MSSM.h:78
complex< Energy > theAtau
For the charged sleptons.
Definition: MSSM.h:238
virtual void extractParameters(bool checkModel=true)
Extract the parameters from the input blocks.
MixingMatrixPtr theStauMix
The mixing matrix.
Definition: MSSM.h:217
MSSM()
Default constructor.
Definition: MSSM.h:36
MixingMatrixPtr HiggsPMix_
Charged Higgs mixing.
Definition: MSSM.h:262
complex< Energy > theAbottom
For the down type squarks.
Definition: MSSM.h:233
const MixingMatrixPtr & ChargedHiggsMix() const
Mixing matrix for the charged Higgs bosons.
Definition: MSSM.h:90
void ChargedHiggsMix(MixingMatrixPtr in)
Mixing matrix for the charged Higgs bosons.
Definition: MSSM.h:168
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition: MSSM.h:134
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
MSSM & operator=(const MSSM &)=delete
The assignment operator is private and must never be called.
double theAlpha
Value of higgs mixing angle.
Definition: MSSM.h:244
double higgsMixingAngle() const
Value of Higgs mixing angle .
Definition: MSSM.h:43
const MixingMatrixPtr & stauMix() const
The stau mixing matrix.
Definition: MSSM.h:73
const MixingMatrixPtr & sbottomMix() const
The sbottom chargino mixing matrix.
Definition: MSSM.h:68
virtual void createMixingMatrices()
Create the mixing matrices for the model.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
bool createDiagonalMixing_
Create diagonal the stop, bottom and stau mixing matrices if needed.
Definition: MSSM.h:268
MixingMatrixPtr theHiggsMix
Higgs boson mixing matrices.
Definition: MSSM.h:253
This class is designed to be a base class for SUSY models.
Definition: SusyBase.h:51
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr