SoftSUSY is hosted by Hepforge, IPPP Durham
SOFTSUSY  4.0
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  NUMBER_OF_NMSSM_INPUT_PARAMETERS
45  };
46 
47  NMSSM_input();
48  ~NMSSM_input() {}
49 
51  void set(NMSSM_parameters, double);
53  double get(NMSSM_parameters) const;
55  DoubleVector get_nmpars() const;
57  bool is_set(NMSSM_parameters par) const;
59  bool is_Z3_symmetric() const;
61  void check_setup();
62 
63  friend std::ostream& operator<<(std::ostream&, const NMSSM_input&);
64 
65 private:
66  double parameter[NUMBER_OF_NMSSM_INPUT_PARAMETERS];
67  bool has_been_set[NUMBER_OF_NMSSM_INPUT_PARAMETERS];
68  static char const * const parameter_names[NUMBER_OF_NMSSM_INPUT_PARAMETERS];
69 
71  void check_ewsb_output_parameters() const;
72 };
73 
76 public:
79 
81  void parse(int argc, char* argv[]);
83  const char* get_modelIdent() const;
85  DoubleVector get_pars() const;
86 
87 private:
88  NMSSM_input* nmssm_input;
89  const char* model_ident;
90  double m0, m12, a0;
91 
93  static double get_value(const std::string& str, const std::string& prefix);
95  static bool starts_with(const std::string& str, const std::string& prefix);
96 };
97 
98 void NmssmMsugraBcs(NmssmSoftsusy & m, const DoubleVector & inputParameters);
99 
100 void MssmMsugraBcs(NmssmSoftsusy & m, const DoubleVector & inputParameters);
101 
102 void SemiMsugraBcs(NmssmSoftsusy & m, const DoubleVector & inputParameters);
103 
105 
106  void extendedNMSugraBcs(NmssmSoftsusy & m, const DoubleVector & inputParameters);
107 
109  double sumTol(const NmssmSoftsusy & in, const NmssmSoftsusy & out,
110  int numTries);
111 
112  ostream & operator << (ostream & left, const NmssmSoftsusy & s);
113 
114  void generalNmssmBcs(NmssmSoftsusy & m, const DoubleVector & inputParameters);
115 
116 } // namespace softsusy
117 
118 #endif
global variable declaration
Definition: def.cpp:13
double a0(double m, double q)
inlined PV functions: real part
Definition: numerics.h:100
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:45
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:45
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:35
class which parses command line options of the NMSSM
Definition: nmssmUtils.h:75
bool is_Z3_symmetric() const
returns true if input parameter set defines a Z3 symmetric NMSSM
Definition: nmssmUtils.cpp:60