softsusy is hosted by Hepforge, IPPP Durham
SOFTSUSY  4.1
nmssmsoftsusy.h
Go to the documentation of this file.
1 
13 #ifndef NMSSMSOFTSUSY_H
14 #define NMSSMSOFTSUSY_H
15 
16 #include <iostream>
17 #include <fstream>
18 #include <sstream>
19 #include <cstring>
20 #include <cstdlib>
21 #include <cmath>
22 #include <utility>
23 #include "def.h"
24 #include "utils.h"
25 #include "numerics.h"
26 #include "physpars.h"
27 #include "lowe.h"
28 #include "nmssmsoftpars.h"
29 #include "softsusy.h"
30 #include "mssmUtils.h"
31 #include "nmssm2loop.h"
32 #include "nmssmUtils.h"
33 #include "nmssmjacobian.h"
34 #include <cassert>
35 
36 namespace softsusy {
37 
38  /* class NmssmSoftsusy; */
39  /* std::istream & operator >>(std::istream &left, NmssmSoftsusy &s);\ */
40 
42  class NmssmSoftsusy: public NmssmSusyPars, public SoftParsNmssm,
43  public MssmSoftsusy {
44  private:
45  double tSOVSMs;
46  double tSOVSMs1loop;
47  bool GUTlambda;
52  bool GUTkappa;
53  bool GUTmuPrime;
54  bool GUTxiF;
55  bool GUTxiS;
56  bool GUTsVev;
60  int MICROMEGAS;
61  int NMSDECAY;
62 
64  double drbarHiggsAccuracy;
65  double physHiggsAccuracy;
66 
68  double looplog(double mass) const;
69 
71  struct FineTuningPars {
72  NmssmSoftsusy* model;
73  int ftFunctionality;
74  DoubleVector ftPars;
75  double mzSqr;
76  void (*ftBoundaryCondition)(NmssmSoftsusy &, const DoubleVector &);
77 
78  FineTuningPars()
79  : model(0), ftFunctionality(0),
80  ftPars(3), mzSqr(0.), ftBoundaryCondition(0)
81  {}
82  };
83 
85  static double calcMzsq(double x, void* parameters);
86 
90  std::pair<double,double> it1par(int numPar, const DoubleVector & bcPars,
91  FineTuningPars & tuningPars);
92 
93  public:
94  // void (*boundaryCondition)(NmssmSoftsusy &, const DoubleVector &);
96  NmssmSoftsusy();
98  NmssmSoftsusy(const NmssmSusy &);
100  NmssmSoftsusy(const NmssmSoftsusy &);
102  NmssmSoftsusy(const MssmSoftsusy &);
107  NmssmSoftsusy(const NmssmSusyPars & ss, const SoftParsNmssm & s,
108  const MssmSoftsusy & sp);
110  const NmssmSoftsusy & operator=(const NmssmSoftsusy & s);
111 
112  double displayTadpoleSMs() const;
113  double displayTadpoleSMs1loop() const;
114  double displaySoftAkappa() const {
116  };
117  double displaySoftAlambda() const {
119  };
120  NmssmSusy displayNmssmSusy() const {
122  }
123  MssmSoftsusy convertToMssm() const;
124  bool displayGUTlambda() const { return GUTlambda; }
125  bool displayGUTkappa() const { return GUTkappa; }
126  bool displayGUTmuPrime() const { return GUTmuPrime; }
127  bool displayGUTxiF() const { return GUTxiF; }
128  bool displayGUTxiS() const { return GUTxiS; }
129  bool displayGUTsVev() const { return GUTsVev; }
130  bool displayMICROMEGAS() const { return MICROMEGAS; }
131  bool displayNMSDECAY() const { return NMSDECAY; }
133  double displayDrBarHiggsAccuracy() const { return drbarHiggsAccuracy; }
134  double displayPhysHiggsAccuracy() const { return physHiggsAccuracy; }
135 
138  void P1SfSfCouplings(DoubleMatrix & lTP1Lr, DoubleMatrix & lBP1Lr,
139  DoubleMatrix & lTauP1Lr) const;
141  //for 3rd generation sfermions
142  void P2SfSfCouplings(DoubleMatrix & lTP2Lr, DoubleMatrix & lBP2Lr,
143  DoubleMatrix & lTauP2Lr) const;
145  //for 3rd generation sfermions
146  void P3SfSfCouplings(DoubleMatrix & lTP3Lr, DoubleMatrix & lBP3Lr,
147  DoubleMatrix & lTauP3Lr) const;
148 
150  //for 3rd generation sfermions
151  void H1SfSfCouplings(DoubleMatrix & lTS1Lr, DoubleMatrix & lBS1Lr,
152  DoubleMatrix & lTauS1Lr, double gmzOcthW,
153  double mu, double cosb, double v1) const;
155  //for 3rd generation sfermions
156  void H2SfSfCouplings(DoubleMatrix & lTS1Lr, DoubleMatrix & lBS1Lr,
157  DoubleMatrix & lTauS1Lr, double gmzOcthW,
158  double mu, double sinb) const;
160  //for 3rd generation sfermion
161  void SSfSfCouplings(DoubleMatrix & lTS3Lr, DoubleMatrix & lBS3Lr,
162  DoubleMatrix & lTauS3Lr, double lam) const;
164  double doCalcTadSSfermions(DoubleMatrix lTS3Lr, DoubleMatrix lBS3Lr,
165  DoubleMatrix lTauS3Lr, double q, double s) const;
167  void assignHiggs(DoubleVector & higgsm, DoubleVector & higgsa,
168  DoubleVector & higgsc) const;
170  //Includes goldstone bosons.
171  double doCalcTad1Higgs(double q, double costhDRbar, double g, double tanb) const;
173  //Includes goldstone bosons.
174  double doCalcTad2Higgs(double q, double costhDRbar, double g, double tanb) const;
176  //Includes goldstone bosons.
177  double doCalcTadSHiggs(double q, double tanb) const;
179  double doCalcTad1Neutralinos(double q, double costhDRbar, double g,
180  double tanb) const;
182  double doCalcTad2Neutralinos(double q, double costhDRbar,
183  double g, double sinb) const;
185  double doCalcTadSNeutralinos(double q, double lam, double kap) const;
187  double doCalcTadSCharginos(double q, double lam) const;
189  virtual double doCalcTadpole1oneLoop(double mt, double sinthDRbar) const;
191  virtual double doCalcTadpole2oneLoop(double mt, double sinthDRbar) const;
193  virtual double doCalcTadpoleSoneLoop(double mt, double sinthDRbar) const;
194 
197  virtual void calcTadpole1Ms1loop(double mt, double sinthDRbar);
200  virtual void calcTadpole2Ms1loop(double mt, double sinthDRbar);
205  virtual void calcTadpoleSMs1loop(double mt, double sinthDRbar);
209  void doTadpoles(double mt, double sinthDRbar);
211  virtual void calcDrBarPars();
212 
216  DoubleMatrix addStopHiggs(double p, double mt, DoubleMatrix & higgs);
220  virtual void addStopCorrection(double p, DoubleMatrix & mass, double mt);
224  DoubleMatrix addSupHiggs(double p1, double p2, int family,
225  DoubleMatrix & higgs);
229  virtual void addSupCorrection(DoubleMatrix & mass, int family);
233  DoubleMatrix addSbotHiggs(double p, double mt, DoubleMatrix & higgs);
237  virtual void addSbotCorrection(double p, DoubleMatrix & mass, double mt);
241  DoubleMatrix addSdownHiggs(double p1, double p2, int family,
242  DoubleMatrix & higgs);
246  virtual void addSdownCorrection(DoubleMatrix & mass, int family);
249  double addSnuTauHiggs(double p, double & higgs);
253  virtual void addSnuTauCorrection(double & mass);
257  double addSnuHiggs(double p, int family, double & higgs);
261  virtual void addSnuCorrection(double & mass, int family);
265  DoubleMatrix addStauHiggs(double p, double mtau, DoubleMatrix & higgs);
269  virtual void addStauCorrection(double p, DoubleMatrix & mass, double mtau);
273  DoubleMatrix addSlepHiggs(double p1, double p2, int family, DoubleMatrix & higgs);
277  virtual void addSlepCorrection(DoubleMatrix & mass, int family);
278  void getNeutPassarinoVeltman(double p, double q, DoubleMatrix & b0fn,
279  DoubleMatrix & b1fn);
283  void addNeutLoopHiggs(double p, DoubleMatrix & sigmaL, DoubleMatrix & sigmaR, DoubleMatrix & sigmaS);
285  virtual void addNeutralinoLoop(double p, DoubleMatrix &);
286 
292  virtual void treeUpSquark(DoubleMatrix & mass, double mtrun,
293  double pizztMS, double sinthDRbarMS,
294  int family);
295 
301  virtual void treeDownSquark(DoubleMatrix & mass, double mbrun, double pizztMS,
302  double sinthDRbarMS, int family);
308  virtual void treeChargedSlepton(DoubleMatrix & mass, double mTrun, double pizztMS,
309  double sinthDRbarMS, int family);
311  //Returns tree-level chargino mass matrix in the NMSSM
312  void treeCharginos(DoubleMatrix & mass, double beta, double mw);
313 
315  //Returns tree-level Neutralino mass matrix in the NMSSM
316  void treeNeutralinos(DoubleMatrix & mass, double beta, double mz, double mw,
317  double sinthDRbar);
320  void calcDrBarGauginos(double beta, double mw, double mz, double sinth,
321  drBarPars & eg);
323  //and tree level mHPm. Does *not* use EWSB substitution
324  void treeHiggsAlt(DoubleMatrix & mS, DoubleMatrix & mPpr, DoubleMatrix & mP2,
325  double & mHpm, double beta) const;
327  //and tree level mHPm. Uses EWSB substitution.
328  //Called in higgs and calcDrBarParsHiggs
329  void treeHiggs(DoubleMatrix & mS, DoubleMatrix & mPpr, DoubleMatrix & mP2,
330  double & mHpm, double beta) const;
331  //calculates DrBar Higgs masses and sets them
332  void calcDrBarHiggs(double beta, double mz2, double mw2, double sinthDRbar,
333  drBarPars & eg);
334 
336  DoubleVector beta() const;
338  NmssmSoftsusy beta2() const;
339  const DoubleVector display() const;
340 
341  void set(const DoubleVector & y);
342  void setNmssmSusy(const NmssmSusy & n) {
345  }
346  void setGUTlambda(bool i) { GUTlambda = i; }
347  void setGUTkappa(bool i) { GUTkappa = i; }
348  void setGUTmuPrime(bool i) { GUTmuPrime = i; }
349  void setGUTxiF(bool i) { GUTxiF = i; }
350  void setGUTxiS(bool i) { GUTxiS = i; }
351  void setGUTsVev(bool i) { GUTsVev = i; }
352  void setMICROMEGAS(int i) { MICROMEGAS = i; }
353  void setNMSDECAY(int i) { NMSDECAY = i; }
354 
357  double VhAtMin(double v1, double v2, double s, double mHu2, double mHd2, double mSsq);
358 
362  virtual int rewsbMu(int sgnMu, double & mu) const;
367  virtual int rewsbSvev(int sgnMu, double & svev) const;
370  virtual int rewsbM3sq(double mu, double & m3sq) const;
372  virtual int rewsbKap(double & kap) const;
374  //new with respect to the MSSM.
375  virtual int rewsbXiS(double & xiS) const;
378  virtual int rewsbSvevNoZ3(double & xiS) const;
381  virtual int rewsbmSsq(double & mSsq) const;
383  virtual int rewsbmH1sq(double & mH1sq) const;
385  virtual int rewsbmH2sq(double & mH211sq) const;
387  virtual void rewsbTreeLevel(int sgnMu);
389  //(mu, m3sq, XiS) --> (mZ, tb, s)
392  void iterateMu(double & munew, int sgnMu, double mt,
393  int maxTries, double pizztMS, double sinthDRbar, double tol,
394  int & err);
395  //Routine for iteratively solving for the singlet vev, s = <S>.
400  void iterateSvev(double & sold, int sgnMu,
401  double mt, int maxTries, double pizzMS,
402  double sinthDRbar, double tol, int & err);
406  //Z3 = true: s --> mZ, kappa --> tan beta, mS --> s
407  //ie (kappa, mS) --> (mZ, tb)
408  //Z3 = false: mu --> mZ, m3sq --> tan beta, s --> XiS (Z3 = false)
410  void rewsb(int sgnMu, double mt, double muOld = -6.66e66, double eps = 0.);
413  virtual void physical(int accuracy);
416  virtual void addChaLoopHiggs(double p, DoubleMatrix & sigmaL, DoubleMatrix & sigmaR, DoubleMatrix & sigmaS, DoubleMatrix b1pCha, DoubleMatrix b0pCha, DoubleMatrix b1pNeut, DoubleMatrix b0pNeut) const;
418  virtual void addCharginoLoop(double p, DoubleMatrix &);
422  virtual void charginos(int accuracy, double piwwt, sPhysical & phys);
424  //IO parameters: piwwt is the W self-energy at M_SUSY,
427  virtual void neutralinos(int accuracy, double piwwt, double pizzt,
428  sPhysical & phys);
431  //corrections at order alpha_s alpha_t for Z_3 case from Degrassi and Slavich.
435  bool higgs(int accuracy, double piwwt, double pizzt, sPhysical & phys);
438  void DegrassiSlavicMix(DoubleMatrix & P) const;
440  //for p=external momentum, Q=renormalisation scale
441  virtual double piZZTHiggs(double p, double q, double thetaWDRbar) const;
443  //for p=external momentum, Q=renormalisation scale
444  virtual double piZZTNeutralinos(double p, double Q, double thetaWDRbar) const;
447  virtual double piZZT(double p, double Q, bool usePoleMt = false) const;
449  //for p=external momentum, q=renormalisation scale
450  virtual double piWWTHiggs(double p, double q, double thetaWDRbar) const;
452  //for p=external momentum, Q=renormalisation scale
453  virtual double piWWTgauginos(double p, double Q, double thetaWDRbar) const;
456  virtual double piWWT(double p, double Q, bool usePoleMt = false) const;
458  double pip1p1(double p, double q) const;
459  double pip1p2(double p, double q) const;
460  double pip2p2(double p, double q) const;
461  double pip1p3(double p, double q) const;
462  double pip2p3(double p, double q) const;
463  double pip3p3(double p, double q) const;
465  void getP1HiggsTriCoup(DoubleMatrix & spp1, DoubleMatrix & hphpp1, double cw2DRbar) const;
467  void getP2HiggsTriCoup(DoubleMatrix & spp2, DoubleMatrix & hphpp2, double cw2DRbar) const;
469  void getP3HiggsTriCoup(DoubleMatrix & spp2, DoubleMatrix & hphpp2) const;
471  void getS1HiggsTriCoup(DoubleMatrix & sss1, DoubleMatrix & pps1, DoubleMatrix & hphps1, double thetaWDRbar) const;
473  void getS2HiggsTriCoup(DoubleMatrix & sss2, DoubleMatrix & pps2, DoubleMatrix & hphps2, double thetaWDRbar) const;
475  void getS3HiggsTriCoup(DoubleMatrix & sss3, DoubleMatrix & pps3, DoubleMatrix & hphps3) const;
477  //for p=external momentum, q=renormalisation scale
478  double pis1s1Higgs(double p, double q) const;
479  double pis1s2Higgs(double p, double q) const;
480  double pis2s2Higgs(double p, double q) const;
481  double pis1s3Higgs(double p, double q) const;
482  double pis2s3Higgs(double p, double q) const;
483  double pis3s3Higgs(double p, double q) const;
485  void getS1NeutralinoCoup(ComplexMatrix & aChi, ComplexMatrix & bChi) const;
486  void getS2NeutralinoCoup(ComplexMatrix & aChi, ComplexMatrix & bChi) const;
487  void getS3NeutralinoCoup(ComplexMatrix & aChi, ComplexMatrix & bChi) const;
489  void getP1NeutralinoCoup(ComplexMatrix & aChi, ComplexMatrix & bChi) const;
490  void getP2NeutralinoCoup(ComplexMatrix & aChi, ComplexMatrix & bChi) const;
491  void getP3NeutralinoCoup(ComplexMatrix & aChi, ComplexMatrix & bChi) const;
493  //for p=external momentum, q=renormalisation scale
494  double pis1s1Neutralinos(double p, double q) const;
495  double pis1s2Neutralinos(double p, double q) const;
496  double pis2s2Neutralinos(double p, double q) const;
497  double pis1s3Neutralinos(double p, double q) const;
498  double pis2s3Neutralinos(double p, double q) const;
499  double pis3s3Neutralinos(double p, double q) const;
501  //for p=external momentum, q=renormalisation scale
502  double pis1s3Charginos(double p, double q) const;
503  double pis2s3Charginos(double p, double q) const;
504  double pis3s3Charginos(double p, double q) const;
505 
507  //for p=external momentum, q=renormalisation scale
508  double pis1s3Sfermions(double p, double q, DoubleMatrix ls1tt,
509  DoubleMatrix ls1bb, DoubleMatrix ls1tautau,
510  DoubleMatrix ls3tt, DoubleMatrix ls3bb,
511  DoubleMatrix ls3tautau) const;
512  double pis2s3Sfermions(double p, double q, DoubleMatrix ls2tt,
513  DoubleMatrix ls2bb, DoubleMatrix ls2tautau,
514  DoubleMatrix ls3tt, DoubleMatrix ls3bb,
515  DoubleMatrix ls3tautau) const;
516  double pis3s3Sfermions(double p, double q, DoubleMatrix ls3tt,
517  DoubleMatrix ls3bb, DoubleMatrix ls3tautau) const;
518 
521  double pis1s1(double p, double q) const;
522  double pis1s2(double p, double q) const;
523  double pis2s2(double p, double q) const;
524  double pis1s3(double p, double q) const;
525  double pis2s3(double p, double q) const;
526  double pis3s3(double p, double q) const;
527 
529  virtual double h1s2Mix();
530 
532  void getHp1HiggsTriCoup(DoubleMatrix & ahphp1, DoubleMatrix & hhphp1) const;
533  void getHp2HiggsTriCoup(DoubleMatrix & ahphp2, DoubleMatrix & hhphp2) const;
536  ComplexMatrix & apph2, ComplexMatrix & bpph1, ComplexMatrix & bpph2) const;
537 
539  void getGaugeHiggsHpmCoup(DoubleVector & wmhhp1, DoubleVector & wmahp1,
540  DoubleVector & gamhphp1, DoubleVector & zhphp1, DoubleVector & wmhhp2,
541  DoubleVector & wmahp2, DoubleVector & gamhphp2, DoubleVector & zhphp2) const;
542 
546  double piHpm11Higgs(double p, double q) const;
547  double piHpm12Higgs(double p, double q) const;
548  double piHpm22Higgs(double p, double q) const;
549 
553  double piHpm11Gaugino(double p, double q) const;
554  double piHpm12Gaugino(double p, double q) const;
555  double piHpm22Gaugino(double p, double q) const;
556 
559  double piHpHm(double p, double q) const;
561  virtual double calcRunMtHiggs() const;
563  virtual double calcRunMtNeutralinos() const;
565  virtual double calcRunMbHiggs() const;
567  virtual double calcRunMbNeutralinos() const;
569  virtual double calcRunMtauHiggs() const;
572  virtual double calcRunMtauNeutralinos(double mTauSMMZ) const;
573 
574  NmssmSusyRGE guessAtSusyMt(double tanb, const DoubleVector & nmpars,
575  const QedQcd & oneset);
576 
577  double predTanb(double muSusy = -6.66e66) const;
578  double predMzsq(double & tanb, double muOld = -6.66e66, double eps = 0.);
579 
581  double ewsbCondition1TreeLevel() const;
582  double ewsbCondition2TreeLevel() const;
583  double ewsbConditionSTreeLevel() const;
587  void ewsbConditions(DoubleVector & values) const;
590  void predVevs(DoubleVector & vevs, int & err);
591 
603  const DoubleVector &),
604  const DoubleVector & bcPars, double MX,
605  bool doTop = false);
607  double calcBayesianNaturalness() const;
608 
619  void itLowsoft(int maxTries, int sgnMu, double tol,
620  double tanb, void (*boundaryCondition)(NmssmSoftsusy &,
621  const DoubleVector &),
622  const DoubleVector & pars, const DoubleVector nmpars,
623  bool gaugeUnification, bool ewsbBCscale);
624 
625 
626  void lowOrg(void (*boundaryCondition)
627  (NmssmSoftsusy &, const DoubleVector &),
628  double mxGuess, const DoubleVector & pars,
629  const DoubleVector nmpars, int sgnMu, double tanb,
630  const QedQcd & oneset, bool gaugeUnification,
631  bool ewsbBCscale = false);
632 
636  void printall() const;
638  virtual void printObj() {
639  cout << this->displayNmssmSoftsusy();
640  };
642  const NmssmSoftsusy & displayNmssmSoftsusy() const;
643 
656  virtual void lesHouchesAccordOutput(ostream & out, const char model[],
657  const DoubleVector & pars,
658  int sgnMu, double tanb, double qMax,
659  int numPoints,
660  bool ewsbBCscale);
662  void headerSLHA(ostream & out);
664  void modselSLHA(ostream & out, const char model[], double qMax);
666  virtual void extparSLHA(ostream & out, const DoubleVector & pars,
667  bool ewsbBCscale);
669  virtual void higgsMSLHA(ostream & out);
671  virtual void neutralinoCharginoMSLHA(ostream & out);
673  virtual void neutralinoMixingSLHA(ostream & out);
675  void nmhmixSLHA(ostream&);
677  void nmamixSLHA(ostream&);
679  void nmssmrunSLHA(ostream&, const char* blockName = "NMSSMRUN");
681  void extranmssmtoolsSLHA(ostream&);
683  void yukawaMatricesSLHA(ostream&, const char* blockName = "");
685  void extramsoftSLHA(ostream&, const char* blockName = "");
687  void extrahmixSLHA(ostream&, const char* blockName = "");
689  void extragaugeSLHA(ostream&, const char* blockName = "GAUGE");
691  void extrasfermionmixSLHA(ostream & out);
693  virtual void drbarSLHA(ostream&, int numPoints, double qMax, int n);
695  virtual void softsusySLHA(ostream & out);
697  virtual void spinfoSLHA(ostream & out);
698  };
699 
701  : NmssmSusyPars(), SoftParsNmssm(), MssmSoftsusy(), tSOVSMs(0.0),
702  tSOVSMs1loop(0.0), GUTlambda(false), GUTkappa(false),
703  GUTmuPrime(false), GUTxiF(false), GUTxiS(false), GUTsVev(false),
704  MICROMEGAS(0), NMSDECAY(0), drbarHiggsAccuracy(0.),
705  physHiggsAccuracy(0.) {}
706 
708  : NmssmSusyPars(s.displayNmssmSusyPars()),
709  SoftParsNmssm(s.displaySoftParsNmssm()),
710  MssmSoftsusy(s.displayMssmSoft()),
711 
712  tSOVSMs(s.tSOVSMs), tSOVSMs1loop(s.tSOVSMs1loop),
713  GUTlambda(s.GUTlambda), GUTkappa(s.GUTkappa), GUTmuPrime(s.GUTmuPrime),
714  GUTxiF(s.GUTxiF), GUTxiS(s.GUTxiS), GUTsVev(s.GUTsVev),
715  MICROMEGAS(s.MICROMEGAS), NMSDECAY(s.NMSDECAY),
716  drbarHiggsAccuracy(s.drbarHiggsAccuracy),
717  physHiggsAccuracy(s.physHiggsAccuracy) {
718  setPars(121);
719  }
720 
722  : NmssmSusyPars(s.displayNmssmSusy()), SoftParsNmssm(),
723  MssmSoftsusy(s.MssmSusy::displayMssmSusy()), tSOVSMs(0.0),
724  tSOVSMs1loop(0.0), GUTlambda(false), GUTkappa(false),
725  GUTmuPrime(false), GUTxiF(false), GUTxiS(false), GUTsVev(false),
726  MICROMEGAS(0), NMSDECAY(0), drbarHiggsAccuracy(0.),
727  physHiggsAccuracy(0.) {
728  setPars(121);
729  }
730 
732  (const NmssmSusyPars & ss, const SoftParsNmssm & s,
733  const MssmSoftsusy & sp): NmssmSusyPars(ss),
734  SoftParsNmssm(s), MssmSoftsusy(sp),
735  tSOVSMs(0.0), tSOVSMs1loop(0.0),
736  GUTlambda(false), GUTkappa(false),
737  GUTmuPrime(false), GUTxiF(false), GUTxiS(false), GUTsVev(false),
738  MICROMEGAS(0), NMSDECAY(0),
739  drbarHiggsAccuracy(0.),
740  physHiggsAccuracy(0.) {
741  setPars(121);
742  }
743 
744  inline double NmssmSoftsusy::displayTadpoleSMs() const { return tSOVSMs; }
745 
747  return tSOVSMs1loop;
748  }
749 
750 }
751 
752 #endif
virtual void higgsMSLHA(ostream &out)
higgs part of mass block of SLHA
void predVevs(DoubleVector &vevs, int &err)
void getS1NeutralinoCoup(ComplexMatrix &aChi, ComplexMatrix &bChi) const
PA: obtains CP even Higgs-Neutralino couplings.
void getP1HiggsTriCoup(DoubleMatrix &spp1, DoubleMatrix &hphpp1, double cw2DRbar) const
PA: Obtains trilnear couplings of P1-Higgs, for use in loop functions.
double pis1s1Higgs(double p, double q) const
PA:Calculates (16 Pi^2) times the Higgs contribution to Higgs self-energy:
DoubleMatrix addStopHiggs(double p, double mt, DoubleMatrix &higgs)
virtual double piZZT(double p, double Q, bool usePoleMt=false) const
void iterateMu(double &munew, int sgnMu, double mt, int maxTries, double pizztMS, double sinthDRbar, double tol, int &err)
PA: finds mu iteratively in the case where we use EWSB to swap.
virtual void treeDownSquark(DoubleMatrix &mass, double mbrun, double pizztMS, double sinthDRbarMS, int family)
virtual void addSbotCorrection(double p, DoubleMatrix &mass, double mt)
void getNeutralinoCharginoHpmCoup(ComplexMatrix &apph1, ComplexMatrix &apph2, ComplexMatrix &bpph1, ComplexMatrix &bpph2) const
LCT: Charged Higgs trilinear couplings with neutralinos/charginos.
const NmssmSoftsusy & displayNmssmSoftsusy() const
Displays whole object as a const.
virtual void lesHouchesAccordOutput(ostream &out, const char model[], const DoubleVector &pars, int sgnMu, double tanb, double qMax, int numPoints, bool ewsbBCscale)
global variable declaration
Definition: def.cpp:13
void extrasfermionmixSLHA(ostream &out)
extra DRbar smuon mixing matrix elements for NMSSMTools decays
switches (options) and parameters such as default fermion masses, required accuracy etc
double piHpm11Gaugino(double p, double q) const
virtual void addStauCorrection(double p, DoubleMatrix &mass, double mtau)
void setPars(int i)
Set number of parameters in RGE object.
Definition: rge.h:64
void getGaugeHiggsHpmCoup(DoubleVector &wmhhp1, DoubleVector &wmahp1, DoubleVector &gamhphp1, DoubleVector &zhphp1, DoubleVector &wmhhp2, DoubleVector &wmahp2, DoubleVector &gamhphp2, DoubleVector &zhphp2) const
LCT: Returns gauge-Higgs-hpm trilinear couplings with hpm in weak basis.
virtual void drbarSLHA(ostream &, int numPoints, double qMax, int n)
outputs DRbar parameters at scale Q (default is at MSUSY)
Contains all supersymmetric RPC-MSSM parameters.
Definition: susy.h:71
void set(const DoubleVector &y)
Contains all supersymmetric RPC-MSSM parameters and is an RGE.
Definition: nmssmsusy.h:254
const NmssmSoftsusy & operator=(const NmssmSoftsusy &s)
Set all data in the object equal to another.
void extrahmixSLHA(ostream &, const char *blockName="")
extra DRbar Higgs mixing parameters for NMSSMTools decays
double doCalcTad2Higgs(double q, double costhDRbar, double g, double tanb) const
PA: NMSSM routine to obtain Higgs loop parts of (16 \pi^2) t2/v2.
virtual double piWWT(double p, double Q, bool usePoleMt=false) const
Contains all SUSY RPC-NMSSM parameters but is not an RGE object.
Definition: nmssmsusy.h:171
void getHp1HiggsTriCoup(DoubleMatrix &ahphp1, DoubleMatrix &hhphp1) const
LCT: Charged Higgs trilinear couplings with CP-odd and CP-even Higgs'.
void treeCharginos(DoubleMatrix &mass, double beta, double mw)
LCT: new routine to allocate NMSSM chargino masses,.
const DoubleVector display() const
Return contents of object in a vector: for RG evolution.
void headerSLHA(ostream &out)
Proper citation info in SLHA file.
DoubleMatrix addSupHiggs(double p1, double p2, int family, DoubleMatrix &higgs)
virtual void calcDrBarPars()
Organises tree-level calculation of all sparticle masses and mixings.
double displayTadpoleSMs1loop() const
displays t_2/v_s tadpole @1 loop
Definition: nmssmsoftsusy.h:746
void extranmssmtoolsSLHA(ostream &)
extra DRbar parameters block for NMSSMTools decays
Header file for RP conserving MSSM object including all (real) soft SUSY breaking parameters and (rea...
const MssmSusy & displayMssmSusy() const
Returns whole object as a const.
Definition: susy.h:267
virtual double piZZTHiggs(double p, double q, double thetaWDRbar) const
Calculates Higgs contribution to the transverse part of Z self-energy:
Contains NMSSM-only part of RPC SUSY parameters.
Definition: nmssmsusy.h:85
virtual double calcRunMbNeutralinos() const
PA: routine to calculate the Neutralino loop contributions to running Mb.
double piHpHm(double p, double q) const
virtual void addSnuCorrection(double &mass, int family)
Contains only the NMSSM soft parameters, NOT the MSSM ones.
Definition: nmssmsoftpars.h:43
virtual void addCharginoLoop(double p, DoubleMatrix &)
Adds the loop corrections on to an input tree-level chargino mass.
const NmssmSusyPars & displayNmssmSusyPars() const
returns whole object
Definition: nmssmsusy.h:130
Quark and lepton masses and gauge couplings in QEDxQCD effective theory.
Definition: lowe.h:55
DoubleVector is of variable length, and contains double precision.
Definition: linalg.h:35
virtual int rewsbmH2sq(double &mH211sq) const
PA: for non universal Higgs.
double displaySoftAlambda(double lam) const
Definition: nmssmsoftpars.cpp:392
double displayDrBarHiggsAccuracy() const
DH: returns the achieved accuracy in Higgs mass diagonalisation.
Definition: nmssmsoftsusy.h:133
void getP1NeutralinoCoup(ComplexMatrix &aChi, ComplexMatrix &bChi) const
PA: obtains CP odd Higgs-Neutralino couplings.
virtual void neutralinoMixingSLHA(ostream &out)
nmnmix block output of SLHA
void P3SfSfCouplings(DoubleMatrix &lTP3Lr, DoubleMatrix &lBP3Lr, DoubleMatrix &lTauP3Lr) const
PA: obtains NMSSM P3-sfermion-sfermion couplings.
double doCalcTad2Neutralinos(double q, double costhDRbar, double g, double sinb) const
PA: NMSSM routine to obtain Neutralino loop parts of (16 \pi^2) t2/v2.
Contains all supersymmetric MSSM parameters, incorporating R_p MSSM.
Definition: softsusy.h:72
void nmhmixSLHA(ostream &)
CP even mixing matrix NMHMIX block of SLHA.
virtual double piZZTNeutralinos(double p, double Q, double thetaWDRbar) const
Calculates neutralino contrib. to the transverse part of Z self-energy:
virtual void neutralinos(int accuracy, double piwwt, double pizzt, sPhysical &phys)
Calculates pole neutralino masses and mixing.
virtual int rewsbSvevNoZ3(double &xiS) const
virtual double doCalcTadpole1oneLoop(double mt, double sinthDRbar) const
Does the calculation of one-loop pieces of .
virtual void treeUpSquark(DoubleMatrix &mass, double mtrun, double pizztMS, double sinthDRbarMS, int family)
DoubleMatrix addStauHiggs(double p, double mtau, DoubleMatrix &higgs)
virtual void addSupCorrection(DoubleMatrix &mass, int family)
virtual void addChaLoopHiggs(double p, DoubleMatrix &sigmaL, DoubleMatrix &sigmaR, DoubleMatrix &sigmaS, DoubleMatrix b1pCha, DoubleMatrix b0pCha, DoubleMatrix b1pNeut, DoubleMatrix b0pNeut) const
virtual void rewsbTreeLevel(int sgnMu)
PA: Imposes EWSB at the tree level.
void P2SfSfCouplings(DoubleMatrix &lTP2Lr, DoubleMatrix &lBP2Lr, DoubleMatrix &lTauP2Lr) const
PA: obtains NMSSM P2-sfermion-sfermion couplings.
virtual void addSnuTauCorrection(double &mass)
void getS3HiggsTriCoup(DoubleMatrix &sss3, DoubleMatrix &pps3, DoubleMatrix &hphps3) const
PA: Obtains trilnear couplings of s3-higgs-higgs for use in loop functions.
virtual void spinfoSLHA(ostream &out)
This does the SPINFO block of SLHA.
virtual int rewsbMu(int sgnMu, double &mu) const
void treeHiggs(DoubleMatrix &mS, DoubleMatrix &mPpr, DoubleMatrix &mP2, double &mHpm, double beta) const
PA: fills tree level CP even and CP odd Higgs mass matrices.
double doCalcTad1Higgs(double q, double costhDRbar, double g, double tanb) const
PA: NMSSM routine to obtain Higgs loop parts of (16 \pi^2) t1/v1.
A few handy routines for the MSSM: SUSY breaking conditions etc.
virtual double calcRunMbHiggs() const
PA: routine to calculate the Higgs loop contributions to running Mb.
virtual double calcRunMtauHiggs() const
PA: routine to calculate the Higgs loop contributions to running Mtau.
A few handy bits and pieces - little mathematical functions and the like.
virtual double doCalcTadpole2oneLoop(double mt, double sinthDRbar) const
Does the calculation of one-loop pieces of .
Flags for potential problems in sProblem structure, and structure for containing physical MSSM parame...
DoubleVector beta() const
Beta functions of NMSSM.
double pis1s1Neutralinos(double p, double q) const
PA:Calculates (16 Pi^2) times Neutralino contrib. to Higgs self-energy:
void iterateSvev(double &sold, int sgnMu, double mt, int maxTries, double pizzMS, double sinthDRbar, double tol, int &err)
void treeHiggsAlt(DoubleMatrix &mS, DoubleMatrix &mPpr, DoubleMatrix &mP2, double &mHpm, double beta) const
PA: fills tree level CP even and CP odd Higgs mass matrices.
Matrix from 1..rows, 1..cols of double values.
Definition: linalg.h:214
virtual void addNeutralinoLoop(double p, DoubleMatrix &)
Adds the loop corrections on to an input tree-level neutralino mass.
double doCalcTad1Neutralinos(double q, double costhDRbar, double g, double tanb) const
PA: NMSSM routine to obtain Neutralino loop parts of (16 \pi^2) t1/v1.
virtual double calcRunMtNeutralinos() const
PA: routine to calculate the Neutralino loop contributions to running Mt.
DoubleMatrix fineTune(void(*boundaryCondition)(NmssmSoftsusy &, const DoubleVector &), const DoubleVector &bcPars, double MX, bool doTop=false)
double pis1s3Charginos(double p, double q) const
PA:Calculates (16 Pi^2) times Chargino contrib. to Higgs self-energy:
void setNmssmSusyPars(const NmssmSusyPars &s)
sets the whole object
Definition: nmssmsusy.cpp:276
virtual double calcRunMtauNeutralinos(double mTauSMMZ) const
double addSnuHiggs(double p, int family, double &higgs)
A few handy routines for the NMSSM: SUSY breaking conditions etc.
virtual int rewsbmH1sq(double &mH1sq) const
PA: for non universal Higgs.
virtual void printObj()
Prints whole object to standard output.
Definition: nmssmsoftsusy.h:638
DoubleMatrix addSdownHiggs(double p1, double p2, int family, DoubleMatrix &higgs)
bool higgs(int accuracy, double piwwt, double pizzt, sPhysical &phys)
DoubleVector boundaryCondition(double m0, double m12, double a0, const RpvSusyPars &r)
Definition: rpvsusypars.cpp:373
void itLowsoft(int maxTries, int sgnMu, double tol, double tanb, void(*boundaryCondition)(NmssmSoftsusy &, const DoubleVector &), const DoubleVector &pars, const DoubleVector nmpars, bool gaugeUnification, bool ewsbBCscale)
void modselSLHA(ostream &out, const char model[], double qMax)
This does the MODSEL block of SLHA.
virtual void calcTadpole2Ms1loop(double mt, double sinthDRbar)
double VhAtMin(double v1, double v2, double s, double mHu2, double mHd2, double mSsq)
virtual void calcTadpole1Ms1loop(double mt, double sinthDRbar)
matrix of complex double values dimensions (rows x cols)
Definition: linalg.h:608
void nmssmrunSLHA(ostream &, const char *blockName="NMSSMRUN")
NMSSMRUN block of SLHA.
double displaySoftAkappa(double ka) const
Definition: nmssmsoftpars.cpp:401
virtual int rewsbmSsq(double &mSsq) const
virtual double doCalcTadpoleSoneLoop(double mt, double sinthDRbar) const
Does the calculation of one-loop pieces of .
double piHpm11Higgs(double p, double q) const
virtual void addSlepCorrection(DoubleMatrix &mass, int family)
QedQcd object contains Standard Model quark and lepton masses. It integrates them using 3 loop qcd x ...
void H1SfSfCouplings(DoubleMatrix &lTS1Lr, DoubleMatrix &lBS1Lr, DoubleMatrix &lTauS1Lr, double gmzOcthW, double mu, double cosb, double v1) const
PA: obtains NMSSM H1-sfermion-sfermion couplings.
virtual int rewsbM3sq(double mu, double &m3sq) const
double pis1s1(double p, double q) const
void yukawaMatricesSLHA(ostream &, const char *blockName="")
extra DRbar Yukawa couplings for NMSSMTools decays
virtual int rewsbSvev(int sgnMu, double &svev) const
void SSfSfCouplings(DoubleMatrix &lTS3Lr, DoubleMatrix &lBS3Lr, DoubleMatrix &lTauS3Lr, double lam) const
PA: obtains NMSSM S-sfermion-sfermion couplings.
mass
used to give order of quark masses stored
Definition: lowe.h:46
double pis1s3Sfermions(double p, double q, DoubleMatrix ls1tt, DoubleMatrix ls1bb, DoubleMatrix ls1tautau, DoubleMatrix ls3tt, DoubleMatrix ls3bb, DoubleMatrix ls3tautau) const
PA:Calculates (16 Pi^2) times sfermion contrib. to Higgs self-energy:
double calcBayesianNaturalness() const
Calculates Bayesian naturalness a la arXiv:1709.07895.
double displayTadpoleSMs() const
displays t_s/s tadpole
Definition: nmssmsoftsusy.h:744
virtual int rewsbKap(double &kap) const
PA:: In case of Z3 invariance EWSB outputs kappa instead.
virtual double piWWTgauginos(double p, double Q, double thetaWDRbar) const
Calculates gaugino contr. to transverse part of W self-energy:
virtual int rewsbXiS(double &xiS) const
PA: third EWSB condition (for the singlet Higgs field)
void getP2HiggsTriCoup(DoubleMatrix &spp2, DoubleMatrix &hphpp2, double cw2DRbar) const
PA: Obtains trilnear couplings of P2-Higgs for use in loop functions.
void P1SfSfCouplings(DoubleMatrix &lTP1Lr, DoubleMatrix &lBP1Lr, DoubleMatrix &lTauP1Lr) const
DoubleMatrix addSbotHiggs(double p, double mt, DoubleMatrix &higgs)
DRbar values of masses and mixings in MSSM.
Definition: physpars.h:120
void printall() const
Provides routines for calculating Jacobian fine-tuning.
void DegrassiSlavicMix(DoubleMatrix &P) const
numerical routines - differential equation solver, differentiator and function minimiser for instance
void treeNeutralinos(DoubleMatrix &mass, double beta, double mz, double mw, double sinthDRbar)
LCT: new routine for NMSSM neutralino masses,.
void doTadpoles(double mt, double sinthDRbar)
virtual double piWWTHiggs(double p, double q, double thetaWDRbar) const
Calculates Higgs contribution to the transverse part of W self-energy:
Soft SUSY breaking parameters for NMSSM.
void assignHiggs(DoubleVector &higgsm, DoubleVector &higgsa, DoubleVector &higgsc) const
PA: for loop corrections, helps adding Higgs corrections in a tidy way.
virtual void treeChargedSlepton(DoubleMatrix &mass, double mTrun, double pizztMS, double sinthDRbarMS, int family)
virtual void charginos(int accuracy, double piwwt, sPhysical &phys)
void getP3HiggsTriCoup(DoubleMatrix &spp2, DoubleMatrix &hphpp2) const
PA: Obtains trilnear couplings of P3-Higgs for use in loop functions.
virtual void softsusySLHA(ostream &out)
SOFTSUSY comments in SLHA.
void getS1HiggsTriCoup(DoubleMatrix &sss1, DoubleMatrix &pps1, DoubleMatrix &hphps1, double thetaWDRbar) const
PA: Obtains trilnear couplings of s1-higgs-higgs for use in loop functions.
double doCalcTadSCharginos(double q, double lam) const
PA: NMSSM routine to obtain Chargino loop parts of (16 \pi^2) tS/s.
void calcDrBarGauginos(double beta, double mw, double mz, double sinth, drBarPars &eg)
NmssmSoftsusy beta2() const
Beta functions of NMSSM.
virtual void neutralinoCharginoMSLHA(ostream &out)
neutralino and charigno part of mass block of SLHA
virtual void physical(int accuracy)
virtual void addSdownCorrection(DoubleMatrix &mass, int family)
void addNeutLoopHiggs(double p, DoubleMatrix &sigmaL, DoubleMatrix &sigmaR, DoubleMatrix &sigmaS)
double pip1p1(double p, double q) const
PA: self energy routines for pseudo scalar self energies.
DoubleMatrix addSlepHiggs(double p1, double p2, int family, DoubleMatrix &higgs)
virtual void calcTadpoleSMs1loop(double mt, double sinthDRbar)
double doCalcTadSNeutralinos(double q, double lam, double kap) const
PA: NMSSM routine to obtain Neutralino loop parts of (16 \pi^2) tS/s.
NmssmSoftsusy()
Default constructor fills object with zeroes.
Definition: nmssmsoftsusy.h:700
virtual void extparSLHA(ostream &out, const DoubleVector &pars, bool ewsbBCscale)
EXTPAR block of SLHA.
Two-loop Higgs and potential corrections from Pietro Slavich.
void H2SfSfCouplings(DoubleMatrix &lTS1Lr, DoubleMatrix &lBS1Lr, DoubleMatrix &lTauS1Lr, double gmzOcthW, double mu, double sinb) const
PA: obtains NMSSM H2-sfermion-sfermion couplings.
void setMssmSusy(const MssmSusy &s)
sets object to be equal to another
Definition: susy.cpp:237
double displayKappa() const
returns superpotential parameter lambda
Definition: nmssmsusy.h:124
virtual void addStopCorrection(double p, DoubleMatrix &mass, double mt)
double doCalcTadSHiggs(double q, double tanb) const
PA: NMSSM routine to obtain Higgs loop parts of (16 \pi^2) ts/s.
void extramsoftSLHA(ostream &, const char *blockName="")
extra DRbar soft parameters for NMSSMTools decays
virtual double h1s2Mix()
PA: gets h1 mixing element with Hu.
void extragaugeSLHA(ostream &, const char *blockName="GAUGE")
extra DRbar gauge couplings for NMSSMTools decays
double ewsbCondition1TreeLevel() const
DH: returns the values of the tree-level EWSB conditions.
double displayLambda() const
returns superpotential parameter lambda
Definition: nmssmsusy.h:122
void getS2HiggsTriCoup(DoubleMatrix &sss2, DoubleMatrix &pps2, DoubleMatrix &hphps2, double thetaWDRbar) const
PA: Obtains trilnear couplings of s2-higgs-higgs for use in loop functions.
void ewsbConditions(DoubleVector &values) const
void rewsb(int sgnMu, double mt, double muOld=-6.66e66, double eps=0.)
ie (mu, m3sq, XiS) --> (mZ, tb, s)
double doCalcTadSSfermions(DoubleMatrix lTS3Lr, DoubleMatrix lBS3Lr, DoubleMatrix lTauS3Lr, double q, double s) const
PA:routine to calculate sfermiom contributions to (16 \pi^2) ts / s.
virtual double calcRunMtHiggs() const
PA: routine to calculate the Higgs loop contributions to running Mt.
Contains all supersymmetric NMSSM parameters, incorporating R_p NMSSM.
Definition: nmssmsoftsusy.h:42
Masses of the physical particles.
Definition: physpars.h:32
const double accuracy
Approximate accuracy with which 3 body decays are calculated.
Definition: threeBodyDecays.h:38
double addSnuTauHiggs(double p, double &higgs)
void nmamixSLHA(ostream &)
CP odd mixing matrix NMHMIX block of SLHA.