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 focusgmsb(NmssmSoftsusy & m, const DoubleVector & inputParameters);
102 
103 void MssmMsugraBcs(NmssmSoftsusy & m, const DoubleVector & inputParameters);
104 
105 void SemiMsugraBcs(NmssmSoftsusy & m, const DoubleVector & inputParameters);
106 
108 
109  void extendedNMSugraBcs(NmssmSoftsusy & m, const DoubleVector & inputParameters);
110 
112  double sumTol(const NmssmSoftsusy & in, const NmssmSoftsusy & out,
113  int numTries);
114 
115  ostream & operator << (ostream & left, const NmssmSoftsusy & s);
116 
117  void generalNmssmBcs(NmssmSoftsusy & m, const DoubleVector & inputParameters);
118 
124  DoubleVector calcMh1SqNmssmMsugraCoeffs(const NmssmSoftsusy & m, double scale);
125 
132  DoubleVector calcMh1SqSemiMsugraCoeffs(const NmssmSoftsusy & m, double scale);
133 
139  DoubleVector calcMh2SqNmssmMsugraCoeffs(const NmssmSoftsusy & m, double scale);
140 
147  DoubleVector calcMh2SqSemiMsugraCoeffs(const NmssmSoftsusy & m, double scale);
148 
149 } // namespace softsusy
150 
151 #endif
DoubleVector is of variable length, and contains double precision.
Definition: linalg.h:35
class which parses command line options of the NMSSM
Definition: nmssmUtils.h:76
DoubleVector get_pars() const
returns vector of GUT parameters
Definition: nmssmUtils.cpp:242
const char * get_modelIdent() const
returns model identification string
Definition: nmssmUtils.cpp:238
void parse(int argc, char *argv[])
parse command line options
Definition: nmssmUtils.cpp:158
class for NMSSM input parameters
Definition: nmssmUtils.h:26
double get(NMSSM_parameters) const
get value of parameter
Definition: nmssmUtils.cpp:29
bool is_Z3_symmetric() const
returns true if input parameter set defines a Z3 symmetric NMSSM
Definition: nmssmUtils.cpp:61
bool is_set(NMSSM_parameters par) const
returns true if parameter was set, false otherwise
Definition: nmssmUtils.cpp:56
void set(NMSSM_parameters, double)
set parameter to given value
Definition: nmssmUtils.cpp:23
void check_setup()
checks the NMSSM parameter setup, throws if not SLHA2 conform
Definition: nmssmUtils.cpp:70
DoubleVector get_nmpars() const
returns vector with supersymmetric NMSSM parameters
Definition: nmssmUtils.cpp:34
Contains all supersymmetric NMSSM parameters, incorporating R_p NMSSM.
Definition: nmssmsoftsusy.h:44
Contains only the NMSSM soft parameters, NOT the MSSM ones.
Definition: nmssmsoftpars.h:43
DoubleVector and DoubleMatrix classes of doubles and operations between them, complexified copies als...
A few handy routines for the MSSM: SUSY breaking conditions etc.
global variable declaration
Definition: def.cpp:13
DoubleVector calcMh2SqSemiMsugraCoeffs(const NmssmSoftsusy &m, double scale)
Definition: nmssmUtils.cpp:863
void focusgmsb(NmssmSoftsusy &m, const DoubleVector &inputParameters)
Definition: nmssmUtils.cpp:338
void generalNmssmBcs(NmssmSoftsusy &m, const DoubleVector &inputParameters)
Definition: nmssmUtils.cpp:501
DoubleVector calcMh1SqSemiMsugraCoeffs(const NmssmSoftsusy &m, double scale)
Definition: nmssmUtils.cpp:733
void NmssmMsugraBcs(NmssmSoftsusy &m, const DoubleVector &inputParameters)
Definition: nmssmUtils.cpp:311
void SemiMsugraBcs(NmssmSoftsusy &m, const DoubleVector &inputParameters)
Definition: nmssmUtils.cpp:460
double sumTol(const MssmSoftsusy &in, const MssmSoftsusy &out, int numTries)
Difference between two SOFTSUSY objects in and out: EWSB terms only.
Definition: mssmUtils.cpp:343
ostream & operator<<(ostream &left, const FlavourMssmSoftsusy &m)
Formatted output.
Definition: flavoursoft.cpp:217
DoubleVector calcMh2SqNmssmMsugraCoeffs(const NmssmSoftsusy &m, double scale)
Definition: nmssmUtils.cpp:822
void MssmMsugraBcs(NmssmSoftsusy &m, const DoubleVector &inputParameters)
Definition: nmssmUtils.cpp:325
DoubleVector calcMh1SqNmssmMsugraCoeffs(const NmssmSoftsusy &m, double scale)
Definition: nmssmUtils.cpp:692
void NmssmSugraNoSoftHiggsMassBcs(NmssmSoftsusy &m, const DoubleVector &inputParameters)
NMSSM Msugra, without setting the soft Higgs masses.
Definition: nmssmUtils.cpp:478