SoftSUSY is hosted by Hepforge, IPPP Durham
SOFTSUSY  4.1
nmssmUtils.h
Go to the documentation of this file.
1 
11 #ifndef NMSSM_UTILS_H
12 #define NMSSM_UTILS_H
13 
14 #include <iosfwd>
15 #include <string>
16 
17 #include "linalg.h"
18 #include "mssmUtils.h"
19 
20 namespace softsusy {
21 
22 class NmssmSoftsusy;
23 class SoftParsNmssm;
24 
26 class NMSSM_input {
27 public:
28  enum NMSSM_parameters {
29  tanBeta, // MINPAR entry 3
30  mHd2, // EXTPAR entry 21
31  mHu2, // EXTPAR entry 22
32  mu, // EXTPAR entry 23
33  BmuOverCosBetaSinBeta, // m3^2/(cos(Beta)sin(Beta)) EXTPAR entry 24
34  lambda, // EXTPAR entry 61
35  kappa, // EXTPAR entry 62
36  Alambda, // EXTPAR entry 63
37  Akappa, // EXTPAR entry 64
38  lambdaS, // lambda * <S> EXTPAR entry 65
39  xiF, // EXTPAR entry 66
40  xiS, // EXTPAR entry 67
41  muPrime, // EXTPAR entry 68
42  mPrimeS2, // EXTPAR entry 69
43  mS2, // EXTPAR entry 70
44  GUTlambda,
45  NUMBER_OF_NMSSM_INPUT_PARAMETERS
46  };
47 
48  NMSSM_input();
49  ~NMSSM_input() {}
50 
52  void set(NMSSM_parameters, double);
54  double get(NMSSM_parameters) const;
56  DoubleVector get_nmpars() const;
58  bool is_set(NMSSM_parameters par) const;
60  bool is_Z3_symmetric() const;
62  void check_setup();
63 
64  friend std::ostream& operator<<(std::ostream&, const NMSSM_input&);
65 
66 private:
67  double parameter[NUMBER_OF_NMSSM_INPUT_PARAMETERS];
68  bool has_been_set[NUMBER_OF_NMSSM_INPUT_PARAMETERS];
69  static char const * const parameter_names[NUMBER_OF_NMSSM_INPUT_PARAMETERS];
70 
72  void check_ewsb_output_parameters() const;
73 };
74 
77 public:
80 
82  void parse(int argc, char* argv[]);
84  const char* get_modelIdent() const;
86  DoubleVector get_pars() const;
87 
88 private:
89  NMSSM_input* nmssm_input;
90  const char* model_ident;
91  double m0, m12, a0;
92 
94  static double get_value(const std::string& str, const std::string& prefix);
96  static bool starts_with(const std::string& str, const std::string& prefix);
97 };
98 
99 void NmssmMsugraBcs(NmssmSoftsusy & m, const DoubleVector & inputParameters);
100 
101 void MssmMsugraBcs(NmssmSoftsusy & m, const DoubleVector & inputParameters);
102 
103 void SemiMsugraBcs(NmssmSoftsusy & m, const DoubleVector & inputParameters);
104 
106 
107  void extendedNMSugraBcs(NmssmSoftsusy & m, const DoubleVector & inputParameters);
108 
110  double sumTol(const NmssmSoftsusy & in, const NmssmSoftsusy & out,
111  int numTries);
112 
113  ostream & operator << (ostream & left, const NmssmSoftsusy & s);
114 
115  void generalNmssmBcs(NmssmSoftsusy & m, const DoubleVector & inputParameters);
116 
117 } // namespace softsusy
118 
119 #endif
global variable declaration
Definition: def.cpp:13
double a0(double m, double q)
inlined PV functions: real part
Definition: numerics.h:105
bool is_set(NMSSM_parameters par) const
returns true if parameter was set, false otherwise
Definition: nmssmUtils.cpp:55
void SemiMsugraBcs(NmssmSoftsusy &m, const DoubleVector &inputParameters)
Definition: nmssmUtils.cpp:338
DoubleVector is of variable length, and contains double precision.
Definition: linalg.h:35
Contains all supersymmetric NMSSM parameters, incorporating R_p NMSSM.
Definition: nmssmsoftsusy.h:44
double sumTol(const MssmSoftsusy &in, const MssmSoftsusy &out, int numTries)
Difference between two SOFTSUSY objects in and out: EWSB terms only.
Definition: mssmUtils.cpp:339
DoubleVector and DoubleMatrix classes of doubles and operations between them, complexified copies als...
void MssmMsugraBcs(NmssmSoftsusy &m, const DoubleVector &inputParameters)
Definition: nmssmUtils.cpp:324
void check_setup()
checks the NMSSM parameter setup, throws if not SLHA2 conform
Definition: nmssmUtils.cpp:69
void generalNmssmBcs(NmssmSoftsusy &m, const DoubleVector &inputParameters)
Definition: nmssmUtils.cpp:379
Contains only the NMSSM soft parameters, NOT the MSSM ones.
Definition: nmssmsoftpars.h:43
void NmssmSugraNoSoftHiggsMassBcs(NmssmSoftsusy &m, const DoubleVector &inputParameters)
NMSSM Msugra, without setting the soft Higgs masses.
Definition: nmssmUtils.cpp:356
class for NMSSM input parameters
Definition: nmssmUtils.h:26
A few handy routines for the MSSM: SUSY breaking conditions etc.
void NmssmMsugraBcs(NmssmSoftsusy &m, const DoubleVector &inputParameters)
Definition: nmssmUtils.cpp:310
DoubleVector get_nmpars() const
returns vector with supersymmetric NMSSM parameters
Definition: nmssmUtils.cpp:34
bool starts_with(const std::string &str, const std::string &prefix)
string routine for options
Definition: softpoint.h:34
class which parses command line options of the NMSSM
Definition: nmssmUtils.h:76
bool is_Z3_symmetric() const
returns true if input parameter set defines a Z3 symmetric NMSSM
Definition: nmssmUtils.cpp:60