softsusy is hosted by Hepforge, IPPP Durham
SOFTSUSY  3.3
MssmSoftsusy Class Reference

Contains all supersymmetric MSSM parameters, incorporating R_p MSSM. More...

#include <softsusy.h>

Inheritance diagram for MssmSoftsusy:
SoftParsMssm AltEwsbMssm MssmSusy RGE FlavourMssmSoftsusy RpvSoftsusy RpvNeutrino

List of all members.

Public Member Functions

 MssmSoftsusy ()
 Default constructor fills object with zeroes.
 MssmSoftsusy (const MssmSusy &)
 Constructor sets SUSY parameters only from another object.
 MssmSoftsusy (const MssmSoftsusy &)
 Constructor copies another object.
 MssmSoftsusy (const SoftParsMssm &s, const sPhysical &sp, double mu, int l, int t, double hv)
const MssmSoftsusyoperator= (const MssmSoftsusy &s)
 Set all data in the object equal to another.
const MssmSoftsusydisplayMssmSoft () const
 Displays whole object as a const.
const sPhysicaldisplayPhys () const
 Displays physical parameters only.
const drBarParsdisplayDrBarPars () const
const sProblemdisplayProblem () const
 Returns any problem flags associated with the object.
const QedQcddisplayDataSet () const
 Gives the low energy Standard Model data set used for the object.
double displayFracDiff () const
 Displays iteration accuracy attained.
double displayMinpot () const
 Returns minimum of Higgs potential.
double displayMsusy () const
 Returns Higgs minimisation scale.
double displayMw () const
double displayMwRun () const
 Returns DRbar MW, must be calculated by calcDrBarPars first.
double displayMzRun () const
 Returns DRbar MZ, must be calculated by calcDrBarPars first.
double displayTadpole1Ms () const
 displays t_1/v_1 tadpole
double displayTadpole2Ms () const
 displays t_2/v_2 tadpole
double displayTadpole1Ms1loop () const
 displays t_1/v_1 tadpole@1 loop
double displayTadpole2Ms1loop () const
 displays t_2/v_2 tadpole@1 loop
double displayMxBC () const
const MssmSoftsusydisplaySoftsusy () const
 Returns object as a const.
double displayMz () const
 Returns value of pole MZ being used.
bool displaySetTbAtMX () const
 Is tan beta set at the user defined SUSY breaking scale?
const bool displayAltEwsb () const
const double displayPredMzSq () const
void flagMgutOutOfBounds (bool a)
 Flags weird mgut-type problems.
void flagIrqfp (bool a)
 Flags Infra-red quasi fixed point breach problem.
void flagNonperturbative (bool a)
 Flags non-perturbative RG evolution.
void flagTachyon (tachyonType a)
 Flags a negative-mass squared scalar (really a CCB problem)
void flagM3sq (bool a)
 Flags problem with Higgs potential minimum.
void flagNoConvergence (bool a)
 Flags fact that calculation hasn't acheived required accuracy.
void flagNoMuConvergence (bool a)
 Flags fact that mu sub iteration didn't converge.
void flagNoRhoConvergence (bool a)
 Flags fact that rho parameter sub iteration didn't converge.
void flagMusqwrongsign (bool a)
 Flags point inconsistent with electroweak symmetry breaking.
void flagInaccurateHiggsMass (bool a)
void flagHiggsufb (bool a)
 Flags an inconsistent Higgs minimum.
void flagAllProblems (bool a, tachyonType b)
 Sets all problems equal to either true or false (contained in a)
void flagProblemThrown (bool a)
 Flags a numerical exception eg number too big/small.
void setSoftsusy (const MssmSoftsusy &s)
 Sets whole object equal to another.
void setData (const QedQcd &r)
 Sets low energy Standard Model fermion mass and gauge coupling data.
void setMinpot (double)
 Sets potential value at minimum of Higgs potential.
void setMsusy (double)
 Sets scale of Higgs potential minimisation and sparticle mass calculation.
void setMw (double)
 sets pole MW prediction
void setPhys (const sPhysical &s)
 Sets all physical parameters.
void setMxBC (double mx)
 Sets the scale at which high-scale boundary conditions are applied.
void setDrBarPars (const drBarPars &s)
 Sets tree-level DRbar parameters.
void setSetTbAtMX (bool a)
 Sets the setTbAtMX flag.
void useAlternativeEwsb ()
 Use alernative EWSB conditions: set mu and MA(pole)
void setPredMzSq (double a)
 Set MZ^2 predicted after iteration.
void setFracDiff (double a)
 Set the fractional difference parameter.
void doTadpoles (double mt, double sinthDRbar)
 Does the full 2-loop calculation of both tadpoles and sets them.
virtual double doCalcTadpole1oneLoop (double mt, double sinthDRbar)
 Does the calculation of one-loop pieces of $ t_1 / v_1 $.
virtual double doCalcTadpole2oneLoop (double mt, double sinthDRbar)
 Does the calculation of one-loop pieces of $ t_2 / v_2 $.
virtual void calcTadpole1Ms1loop (double mt, double sinthDRbar)
 checked
virtual void calcTadpole2Ms1loop (double mt, double sinthDRbar)
void addStopCorrection (double p, DoubleMatrix &mass, double mt)
 As in BPMZ appendix, INCLUDING weak boson loops.
void addSdownCorrection (DoubleMatrix &mass, int family)
void addSbotCorrection (double p, DoubleMatrix &mass, double mb)
 Cecked 16.08.2005.
void addSlepCorrection (DoubleMatrix &mass, int family)
 16.09.05 checked.
void addSlepCorrection (double p, DoubleMatrix &mass, int family)
void addStauCorrection (double p, DoubleMatrix &mass, double mtau)
void addSupCorrection (DoubleMatrix &mass, int family)
 As in BPMZ appendix, INCLUDING weak boson loops.
void addSnuTauCorrection (double &mass)
void addSnuCorrection (double &mass, int family)
 Found+fixed bug 7/09/06. Thanks to J Kersten.
void addSquarkCorrection (DoubleMatrix &mass)
 Now these are calculated at the squark scale.
virtual void doUpSquarks (double mt, double pizztMS, double sinthDRbarMS, int accuracy)
virtual void doDownSquarks (double mb, double pizztMS, double sinthDRbarMS, int accuracy, double mt)
virtual void doChargedSleptons (double mT, double pizztMS, double sinthDRbarMS, int accuracy)
virtual void doSnu (double pizztMS, int accuracy=0)
void treeUpSquark (DoubleMatrix &mass, double mtrun, double pizztMS, double sinthDRbarMS, int family)
void treeDownSquark (DoubleMatrix &mass, double mbrun, double pizztMS, double sinthDRbarMS, int family)
void treeChargedSlepton (DoubleMatrix &mass, double mTrun, double pizztMS, double sinthDRbarMS, int family)
void treeSnu (double &mSq, double pizztMS, int family)
virtual void calcDrBarPars ()
 Organises tree-level calculation of all sparticle masses and mixings.
void calcDrBarHiggs (double beta, double mz2, double mw2, double sinthDRbar, drBarPars &eg)
void calcDrBarCharginos (double beta, double mw, drBarPars &eg)
void calcDrBarNeutralinos (double beta, double mz, double mw, double sinth, drBarPars &eg)
virtual void sparticleThresholdCorrections (double tb)
double qedSusythresh (double alphaEm, double Q) const
double qcdSusythresh (double alphasMSbar, double Q) const
double calcMs () const
 DRbar pars should be defined already for this.
virtual void physical (int accuracy)
double calcRunningMt ()
double calcRunningMtau () const
 Full BPMZ expression.
double calcRunningMb () const
double calcSinthdrbar () const
 Calculates DRbar sin theta_w at the current scale from gauge couplings.
double getVev ()
 Calculates Higgs VEV parameter from gauge couplings and MZ.
double getVev (double pizzt)
virtual void charginos (int accuracy, double piwwt)
 checked
virtual void addCharginoLoop (double p, DoubleMatrix &)
 Adds the loop corrections on to an input tree-level chargino mass.
virtual void neutralinos (int accuracy, double piwwt, double pizzt)
 mixNeut set to diagonal = mixNeut^T mNeutralino mixNeut: checked
virtual void addNeutralinoLoop (double p, DoubleMatrix &)
 Adds the loop corrections on to an input tree-level neutralino mass.
virtual void gluino (int accuracy)
 Calculates pole gluino mass to 1-loop SUSY corrections.
bool higgs (int accuracy, double piwwt, double pizzt)
virtual int rewsbMu (int sgnMu, double &mu) const
virtual int rewsbM3sq (double, double &) const
 returns 1 if mu < 1.0e-9
void alternativeEwsb (double mt)
 Fixes mH1^2 and mH2^2 in order to get muCond and mAcond correct.
virtual void rewsb (int sgnMu, double mt, const DoubleVector &pars, double muOld=-6.66e66, double eps=0.)
virtual void rewsbTreeLevel (int sgnMu)
double treeLevelMuSq ()
void iterateMu (double &munew, int sgnMu, double mt, int maxTries, double pizztMS, double sinthDRbar, double tol, int &err)
double predTanb (double muSusy=-6.66e66) const
double predMzsq (double &tanb, double muOld=-6.66e66, double eps=0.)
DoubleVector fineTune (void(*boundaryCondition)(MssmSoftsusy &, const DoubleVector &), const DoubleVector &bcPars, double MX, bool doTop=false)
 Pass it an object and it'll return the fine tuning parameters.
double it1par (int numPar, const DoubleVector &bcPars)
double ufb3sl (double)
double realMinMs () const
virtual double piZZT (double p, double Q, bool usePoleMt=false) const
 Transverse part of Z self-energy: has been checked.
virtual double piWWT (double p, double Q, bool usePoleMt=false) const
virtual double piHpHm (double p, double Q) const
 New routine.
double piZGT (double p, double Q) const
virtual double piAA (double p, double Q) const
double pis1s1 (double p, double q) const
double pis1s2 (double p, double q) const
double pis2s2 (double p, double q) const
 checked 28.10.02
double sinSqThetaEff ()
 Calculates sin^2 theta^l_eff.
virtual void rhohat (double &outrho, double &outsin, double alphaMZDRbar, double pizztMZ, double piwwt0, double piwwtMW, double tol, int maxTries)
double deltaVb (double outrho, double outsin, double alphaDRbar, double pizztMZ) const
 outrho, outsin represent the DRbar values
double dRho (double outrho, double outsin, double alphaDRbar, double pizztMZ, double piwwtMW)
double dR (double outrho, double outsin, double alphaDRbar, double pizztMZ, double piwwt0)
double maxMass () const
 Returns the mass of the heaviest SUSY particle, excluding gravitino.
int lsp (double &mass, int &posi, int &posj) const
int nlsp (double &mass, int &posi, int &posj) const
string printShort () const
 Prints a list of important sparticle/Higgs masses to standard output.
string printLong ()
 Prints a list of all sparticle/Higgs masses to standard output.
virtual void printObj ()
 Prints whols object to standard output.
double thet (double a, double b, double c)
 log(max(a^2, b^2, c^2) / Q^2)
void lowOrg (void(*boundaryCondition)(MssmSoftsusy &, const DoubleVector &), double mxGuess, const DoubleVector &pars, int sgnMu, double tanb, const QedQcd &oneset, bool gaugeUnification, bool ewsbBCscale=false)
void itLowsoft (int maxTries, int sgnMu, double tol, double tanb, void(*boundaryCondition)(MssmSoftsusy &, const DoubleVector &), const DoubleVector &pars, bool gaugeUnification, bool ewsbBCscale)
virtual void rpvSet (const DoubleVector &parameters)
virtual void methodBoundaryCondition (const DoubleVector &pars)
void isajetNumbers764 (double &mtopPole, double &mGPole, double &smu, double &mA, double &tanb, double &mq1l, double &mdr, double &mur, double &meL, double &meR, double &mql3, double &mdr3, double &mur3, double &mtauL, double &mtauR, double &at, double &ab, double &atau, double &mq2l, double &msr, double &mcr, double &mmuL, double &mmuR, double &m1, double &m2) const
void isajetInterface764 (const char fname[80]) const
 prints a file into fname which acts as an input to isajet
void ssrunInterface764Inside (const char fname[80], fstream &) const
void ssrunInterface764 (const char fname[80], const char softfname[80]) const
void isawigInterface764 (const char fnamein[80], const char fnameout[80], const char fnamesoft[80]) const
virtual void lesHouchesAccordOutput (ostream &out, const char model[], const DoubleVector &pars, int sgnMu, double tanb, double qMax, int numPoints, bool ewsbBCscale)
 SUSY Les Houches accord for interfacing to Monte-Carlos, decay programs etc.
void slha1 (ostream &out, const char model[], const DoubleVector &pars, int sgnMu, double tanb, double qMax, int numPoints, bool ewsbBCscale)
virtual void setEwsbConditions (const DoubleVector &inputs)
 Again, another dummy - useful in alternative EWSB conditions sometimes.
void headerSLHA (ostream &out)
void spinfoSLHA (ostream &out)
 This does the SPINFO block of SLHA.
void modselSLHA (ostream &out, const char model[])
 This does the MODSEL block of SLHA.
void sminputsSLHA (ostream &out)
 SMINPUTS block of SLHA.
void minparSLHA (ostream &out, const char model[], const DoubleVector &pars, double tanb, int sgnMu, bool ewsbBCscale)
 MINPAR block of SLHA.
virtual void extparSLHA (ostream &out, const DoubleVector &pars, bool ewsbBCscale)
 EXTPAR block of SLHA.
void massSLHA (ostream &out)
 This does the job of the above method, but outputs the Mass block.
virtual void higgsMSLHA (ostream &out)
 higgs part of mass block of SLHA
virtual void sfermionsSLHA (ostream &out)
 sfermions part of mass block of SLHA
void sfermionmixSLHA (ostream &out)
 hmix block output of SLHA
void inomixingSLHA (ostream &out)
 This does the job of the above method, but outputs the UMIX/VMIX blocks.
void softsusySLHA (ostream &out)
 SOFTSUSY comments in SLHA.
void alphaSLHA (ostream &out)
 sfermionic part of mixing blocks
virtual void hmixSLHA (ostream &out)
 higgs part of mixing blocks
void gaugeSLHA (ostream &out)
 sfermionic part of mixing blocks
virtual void yukawasSLHA (ostream &out)
 sfermionic part of mixing blocks
virtual void msoftSLHA (ostream &out)
 MSOFT block of SLHA.
virtual void drbarSLHA (ostream &out, int numPoints, double qMax, int n)
 outputs DRbar parameters at scale Q (default is at MSUSY)
void doUfb3 (double mgut)
void assignHiggs (DoubleVector &higgsm, DoubleVector &higgsc, DoubleVector &dnu, DoubleVector &dnd, DoubleVector &cn, double beta) const
void assignHiggs (DoubleVector &higgsm, DoubleVector &higgsc) const
void assignHiggsSfermions (DoubleVector &higgsm, DoubleVector &higgsc, DoubleVector &dnu, DoubleVector &dnd, DoubleVector &cn, double beta) const
 some switches due to BPMZ's different conventions
double smPredictionMW () const
 checked 22/04/06
double twoLoopGm2 (double amu1Loop) const
double twoLpMt () const
double twoLpMb () const
virtual void doQuarkMixing (DoubleMatrix &mDon, DoubleMatrix &mUpq)
 input diagonal matrices and it'll give you back mixed ones
virtual MssmSusy guessAtSusyMt (double tanb, const QedQcd &oneset)

Detailed Description

Contains all supersymmetric MSSM parameters, incorporating R_p MSSM.


Constructor & Destructor Documentation

MssmSoftsusy::MssmSoftsusy ( const SoftParsMssm s,
const sPhysical sp,
double  mu,
int  l,
int  t,
double  hv 
) [inline]

Sets all parameters from s, sp, mu is the mu superpotential parameter, l is the number of loops used for RG evolution, t is the thresholds accuracy parameter, mg is the gravitino mass, hv is the Higgs VEV parameter.


Member Function Documentation

void MssmSoftsusy::addCharginoLoop ( double  p,
DoubleMatrix mass 
) [virtual]

Adds the loop corrections on to an input tree-level chargino mass.

double p = sqrt(forLoops.mchBpmz(1) * forLoops.mchBpmz(2));

basis is (psi1+ psi2+, L R)

mix 3rd generation sfermions

checked and corrected

checked

checked and corrected 4/10/12

checked and corrected

checked this block

checked and corrected 2/12/08

end of correction 2/12/08

actual contributions start here - corrected 3rd family 2/12/08

checked and corrected

G+

H+

Z0

H

h

G0

A0

void MssmSoftsusy::addNeutralinoLoop ( double  p,
DoubleMatrix mass 
) [virtual]

Adds the loop corrections on to an input tree-level neutralino mass.

double p = sqrt(fabs(forLoops.mneut(1)) * fabs(forLoops.mneut(4)));

mix up the third family sfermions

checked

checked

checked

checked this block

corrections here

G+

H+

H

h

G0

A0

void MssmSoftsusy::addSbotCorrection ( double  p,
DoubleMatrix mass,
double  mb 
)

Cecked 16.08.2005.

Adds one-loop corrections to sbottom mass matrix at p=root(mb1 mb2) IO parameters: p=external momentum scale, mass=tree level mass matrix on input, is returned with radiative corrections added, mt=DR bar top mass

No point adding radiative corrections to tachyonic particles

one-loop correction matrix

Self-energy matrix

brevity

double p = sqrt(msbot(1) * msbot(2));

define Higgs vector in 't-Hooft Feynman gauge, and couplings:

Order (s1 s2 G A, L R)

Mix sbots up

Mix CP-even Higgses up

i is the s1/s2 label

Charged Higgs Feynman rules

(H+ G+, L R) basis

(H+ G+, L R) basis

Neutralino Feynman rules

Chargino Feynman Rules

Corrections themselves start here Full corrections from BPMZ w/ g=g'=e=0

line by line....

void MssmSoftsusy::addSdownCorrection ( DoubleMatrix mass,
int  family 
)

Adds one-loop corrections to sbottom mass matrix at p=root(mb1 mb2) IO parameters: mass=tree level mass matrix on input, is returned with radiative corrections added, mt=DR bar top mass

No point adding radiative corrections to tachyonic particles

one-loop correction matrix

Self-energy matrix

brevity

p1 = p2 = sqrt(msd(1) * msd(2));

define Higgs vector in 't-Hooft Feynman gauge, and couplings:

Order (s1 s2 G A, L R)

Mix sbots up

Mix CP-even Higgses up

i is the L/R label

Charged Higgs Feynman rules

(H+ G+, L R) basis

(none for sdownL since they are all Yukawa suppressed)

Neutralino Feynman rules

Chargino Feynman Rules

Corrections themselves start here Full corrections from BPMZ w/ g=g'=e=0

line by line....

void MssmSoftsusy::addSlepCorrection ( DoubleMatrix mass,
int  family 
)

16.09.05 checked.

Adds one-loop corrections to sel_fam mass matrix at p=root(msel1 msel2) IO parameters: mass=tree level mass on input, is returned with radiative corrections added, mt=DR bar top mass

No point adding radiative corrections to tachyonic particles

one-loop correction matrix

Self-energy matrix

brevity

double p = sqrt(msel(1) * msel(2));

define Higgs vector in 't-Hooft Feynman gauge, and couplings:

stau now stands for generation 1 or 2

Order (s1 s2 G A, L R)

Mix CP-even Higgses up

i is the s1/s2 label

Charged Higgs Feynman rules

(H+ G+, L R) basis

Neutralino Feynman rules

Chargino Feynman Rules

Corrections themselves start here Full corrections from BPMZ w/ g=g'=e=0

line by line....

void MssmSoftsusy::addSlepCorrection ( double  p,
DoubleMatrix mass,
int  family 
)

This is a special version that I've added to correct lower families' mixings too

void MssmSoftsusy::addSnuCorrection ( double &  mass,
int  family 
)

Found+fixed bug 7/09/06. Thanks to J Kersten.

Adds one-loop corrections to sneutrino mass of family "family" IO parameters: mass=tree level mass matrix on input, is returned with radiative corrections added

No point adding radiative corrections to tachyonic particles

one-loop correction matrix

Self-energy

brevity

define Higgs vector in 't-Hooft Feynman gauge, and couplings:

Order (s1 s2 G A, L R)

Mix CP-even Higgses up

Charged Higgs Feynman rules

(H+ G+, L R) basis

Neutralino Feynman rules

Chargino Feynman Rules

Corrections themselves start here Full corrections from BPMZ w/ g=g'=e=0

EW bosons

void MssmSoftsusy::addSnuTauCorrection ( double &  mass)

Adds one-loop corrections to tau sneutrino mass IO parameters: p=external momentum, mass=tree level mass matrix on input, is returned with radiative corrections added, mt=DR bar top mass

No point adding radiative corrections to tachyonic particles

one-loop correction matrix

Self-energy matrix

brevity

define Higgs vector in 't-Hooft Feynman gauge, and couplings:

Order (s1 s2 G A, L R)

Mix CP-even Higgses up

Charged Higgs Feynman rules

(H+ G+, L R) basis

Neutralino Feynman rules

Chargino Feynman Rules

Corrections themselves start here Full corrections from BPMZ w/ g=g'=e=0

EW bosons

Now these are calculated at the squark scale.

Adds approximate one-loop corrections to squark mass matrix for first two families. IO parameters: mass=tree level mass matrix on input, is returned with radiative corrections added

No point adding radiative corrections to tachyonic particles

void MssmSoftsusy::addStauCorrection ( double  p,
DoubleMatrix mass,
double  mtau 
)

Adds one-loop corrections to stau mass matrix at p=root(mtau1 mtau2) IO parameters: mass=tree level mass on input, is returned with radiative corrections added, mt=DR bar top mass

No point adding radiative corrections to tachyonic particles

one-loop correction matrix

Self-energy matrix

brevity

define Higgs vector in 't-Hooft Feynman gauge, and couplings:

Order (s1 s2 G A, L R)

Mix staus up

Mix CP-even Higgses up

i is the s1/s2 label

Charged Higgs Feynman rules

(H+ G+, L R) basis

(H+ G+, L R) basis

Neutralino Feynman rules

Chargino Feynman Rules

Corrections themselves start here Full corrections from BPMZ w/ g=g'=e=0

start

line by line....

void MssmSoftsusy::addStopCorrection ( double  p,
DoubleMatrix mass,
double  mt 
)

As in BPMZ appendix, INCLUDING weak boson loops.

Adds one-loop corrections to stop mass matrix IO parameters: p=external momentum, mass=tree level mass matrix on input, is returned with radiative corrections added, mt=DR bar top mass

No point adding radiative corrections to tachyonic particles

one-loop correction matrix

Self-energy matrix

brevity

DRbar value of e

define Higgs vector in 't-Hooft Feynman gauge, and couplings:

Order (s1 s2 G A, L R)

Mix stops up

Mix CP-even Higgses up

i is the s1/s2 label

Charged Higgs Feynman rules

(H+ G+, L R) basis

(H+ G+, L R) basis

Neutralino Feynman rules

Chargino Feynman Rules

Corrections themselves start here Full corrections from BPMZ w/ g=g'=e=0

EW bosons

void MssmSoftsusy::addSupCorrection ( DoubleMatrix mass,
int  family 
)

As in BPMZ appendix, INCLUDING weak boson loops.

Adds one-loop corrections to stau mass matrix at p=root(mtau1 mtau2) IO parameters: mass=tree level mass on input, is returned with radiative corrections added, mt=DR bar top mass

No point adding radiative corrections to tachyonic particles

one-loop correction matrix

Self-energy matrix

brevity

DRbar value of e

define Higgs vector in 't-Hooft Feynman gauge, and couplings:

top now stands for up

Order (s1 s2 G A, L R)

Mix stops up

Mix CP-even Higgses up

i is the s1/s2 label

Charged Higgs Feynman rules

(H+ G+, L R) basis

(H+ G+, L R) basis

Neutralino Feynman rules

Chargino Feynman Rules

Corrections themselves start here Full corrections from BPMZ w/ g=g'=e=0

p1 = p2 = sqrt(msup(1) * msup(2));

EW bosons

void MssmSoftsusy::alternativeEwsb ( double  mt)

Fixes mH1^2 and mH2^2 in order to get muCond and mAcond correct.

two-loop Higgs corrections

void MssmSoftsusy::assignHiggs ( DoubleVector higgsm,
DoubleVector higgsc,
DoubleVector dnu,
DoubleVector dnd,
DoubleVector cn,
double  beta 
) const

Utility function: sets Higgs masses of neutral Higgs' (higgsm) and charged (higgsc). They should be of dimension 4 and 2 respectively. Also sets couplings dnu(4), dnd(4) and cn(4). beta is from tan beta.

void MssmSoftsusy::assignHiggs ( DoubleVector higgsm,
DoubleVector higgsc 
) const

Utility function: sets Higgs masses of neutral Higgs' (higgsm) and charged (higgsc). They should be of dimension 4 and 2 respectively.

void MssmSoftsusy::assignHiggsSfermions ( DoubleVector higgsm,
DoubleVector higgsc,
DoubleVector dnu,
DoubleVector dnd,
DoubleVector cn,
double  beta 
) const

some switches due to BPMZ's different conventions

Utility function: sets Higgs masses of neutral Higgs' (higgsm) and charged (higgsc) constributions for sfermions. They should be of dimension 4 and 2 respectively. Also sets couplings dnu(4), dnd(4) and cn(4). beta is from tan beta.

swap ordering of charged Higgs' for sfermions due to BPMZ conventions

void MssmSoftsusy::calcDrBarCharginos ( double  beta,
double  mw,
drBarPars eg 
)

calculates the chargino DRbar parameters. It will fill in the chargino masses in eg with the appropriate values on exit.

void MssmSoftsusy::calcDrBarHiggs ( double  beta,
double  mz2,
double  mw2,
double  sinthDRbar,
drBarPars eg 
)

calculates the higgs DRbar parameters. Make sure mt is set in eg. It will fill in the Higgs masses with the appropriate values on exit.

Gone badly off-track

You could instead do like sPHENO, choose what you'd get from minimising the potential at tree level, ie (mH2^2-mH1^2)/cos(2 beta)-mz^2. This may* be less sensitive to becoming a tachyon at MZ.

This may be a bad idea in terms of convergence

void MssmSoftsusy::calcDrBarNeutralinos ( double  beta,
double  mz,
double  mw,
double  sinth,
drBarPars eg 
)

calculates the chargino DRbar parameters. It will fill in the chargino masses in eg with the appropriate values on exit.

void MssmSoftsusy::calcDrBarPars ( ) [virtual]

Organises tree-level calculation of all sparticle masses and mixings.

calculates masses all at tree-level in the DRbar scheme, useful for radiative corrections.

We want to set mu to be the one obtained from the tree-level Higgs potential for these purposes

First, must define mstop,sbot,stau and mixing angles in DRbar scheme

Restore the proper loop corrected value for mu

Reimplemented in FlavourMssmSoftsusy.

double MssmSoftsusy::calcMs ( ) const

DRbar pars should be defined already for this.

Calculates the best scale at which to do symmetry breaking: $ M_{SUSY}=\sqrt{m_{{\tilde t}_1 {\tilde t}_2}} $. Should only be called after calcDrBarPars.

double MssmSoftsusy::calcRunningMb ( ) const

Applies approximate 1-loop SUSY corrections to mb(MZ) in order to return the DRbar running value

First convert mbMZ into DRbar value from hep-ph/9703293,0207126,9701308 (SM gauge boson contributions)

Chargino contribution

new corrections follow and they must be checked! Neutralinos to follow... Higgs

Neutralinos

functions of couplings needed for loops

it's NOT clear if this resummation is reliable in the full 1-loop scheme but it's at least valid to 1 loop. Warning though: if you add higher loops, you'll have to re-arrange.

Applies 1-loop SUSY and 2-loop QCD corrections to pole mt in order to return the DRbar running value at the current scale

Formulae from hep-ph/9801365: checked but should be checked again! Implicitly calculates at the current scale.

For brevity

1 loop QCD only -- DRbar 10% correction

stop/gluino correction 6% correction

2 loop QCD: hep-ph/0210258 -- debugged 15-6-03

2 loop QCD involving MSSM sparticles -- hep-ph/0210258, in the approximation that all squarks and the gluino have mass mSUSY: a few per mille error induced at SPS1a.

colour weighted average mass scale of squarks and gluino

rest are extra bits from Matchev et al: 2% corrections

Neutralino contribution

Neutralinos

functions of couplings needed for loops

Chargino contribution

Full BPMZ expression.

Applies 1-loop SUSY corrections to pole mtau in order to return the DRbar running value at the current scale

MSbar value

conversion to DRbar

Chargino contribution

Mass eignebasis of charginos

checked charginos

Higgs

Neutralinos

functions of couplings needed for loops

old calculation of tau mass

double delta = sqr(displayGaugeCoupling(2)) / (16 * sqr(PI)) * (-displaySusyMu()) * displayGaugino(2) * displayTanb() / (sqr(displaySusyMu()) - sqr(displayGaugino(2))) * (b0(mTauPole, displayGaugino(2), forLoops.msnu(3), displayMu()) - b0(mTauPole, -displaySusyMu(), forLoops.msnu(3), displayMu()));

From hep-ph/9912516

double MssmSoftsusy::calcSinthdrbar ( ) const

Calculates DRbar sin theta_w at the current scale from gauge couplings.

Calculates sin theta at the current scale.

void MssmSoftsusy::calcTadpole1Ms1loop ( double  mt,
double  sinthDRbar 
) [virtual]

checked

Calculates and sets the one-loop pieces of $ t_1 / v_1 $: sets both 1-loop and total pieces equal to the one-loop piece

void MssmSoftsusy::calcTadpole2Ms1loop ( double  mt,
double  sinthDRbar 
) [virtual]

Calculates then sets the one-loop pieces of $ t_2 / v_2 $: sets both 1-loop and total pieces equal to the one-loop piece

CHECKED

void MssmSoftsusy::charginos ( int  accuracy,
double  piwwt 
) [virtual]

checked

Calculates pole chargino masses and mixing using approximate 1-loop SUSY corrections. IO parameters: piwwt is the W self-energy at the current, accuracy is the number of loops required (0 or 1 currently)

tree level mass matrix

You should take the sign of the chargino mass to be the same as got from the chargino_1 determination. Otherwise, if there's a difference, this will screw things up...

double MssmSoftsusy::deltaVb ( double  outrho,
double  outsin,
double  alphaDRbar,
double  pizztMZ 
) const

outrho, outsin represent the DRbar values

Calculates delta_v corrections for outrho=DRbar rho parameter, outsin=DRbar sin theta_w, alphaDRbar=alpha(Q) in the DR bar scheme, pizztMZ=self-energy of the Z at MZ

These ought to be in physpars

const drBarPars & MssmSoftsusy::displayDrBarPars ( ) const [inline]

Displays tree-level masses and mixings of sparticles and third generation fermions

double MssmSoftsusy::displayMw ( ) const [inline]

Returns predicted pole MW

const MssmSoftsusy& MssmSoftsusy::displaySoftsusy ( ) const [inline]

Returns object as a const.

displays M_X value

double MssmSoftsusy::doCalcTadpole1oneLoop ( double  mt,
double  sinthDRbar 
) [virtual]

Does the calculation of one-loop pieces of $ t_1 / v_1 $.

From hep-ph/9606211's appendix. It should be done at MSusy to minimize the 1-loop contributions. Only call if you've calculated drbarpars. inputs are running top/bottom masses: call at MSusy only

sneutrino coupling

stop couplings

sbottom couplings

stau couplings

bottom quark and tau, ignore others - factor (10^-2)^3 down I have included the bottom pole mass in the propagators and the Yukawa for the coupling, hence BPMZ's hb is written mb * root2 / v1

third generation squarks

third generation sleptons

first two families of squarks

sleptons

Higgs

Neutralinos

Charginos

Weak bosons

Reimplemented in RpvNeutrino.

double MssmSoftsusy::doCalcTadpole2oneLoop ( double  mt,
double  sinthDRbar 
) [virtual]

Does the calculation of one-loop pieces of $ t_2 / v_2 $.

From hep-ph/9311269's appendix. It should be done at MSusy to minimize the 1-loop contributions. Only call if you've calculated physpars inputs are running top/bottom masses. Call at MSusy

CHECKED

Stop couplings

sneutrino coupling

sbottom couplings

stau couplings

top quark, ignore others - factor (10^-2)^3 down

third generation squarks

third generation sleptons

first two families of squarks

sleptons

Higgs

Neutralinos

Weak bosons

Reimplemented in RpvNeutrino.

void MssmSoftsusy::doChargedSleptons ( double  mT,
double  pizztMS,
double  sinthDRbarMS,
int  accuracy 
) [virtual]

Organises calculation of all slepton masses. IO parameters: mT=DRbar tau mass, pizztMS=Z self energy at Q=M_SUSY, sinthDRbarMS=DRbar value of sin theta_w, accuracy=0,1: number of loops to add to tree-level squark mass matrix

no mixing assuming for first two families

do third family

theta is calculated at p=mstau1

twisted measures the ordering of the sbottom masses. If mstop1 > mstop2, twisted is defined to be true (mstop2 > mstop1 is defined "untwisted").

Reimplemented in FlavourMssmSoftsusy.

void MssmSoftsusy::doDownSquarks ( double  mb,
double  pizztMS,
double  sinthDRbarMS,
int  accuracy,
double  mt 
) [virtual]

Organises calculation of all down squark masses. IO parameters: mb=DRbar bottom mass, pizztMS=Z self energy at Q=M_SUSY, sinthDRbarMS=DRbar value of sin theta_w, accuracy=0,1: number of loops to add to tree-level squark mass matrix

start 3rd family computation: more complicated!

tree-level matrices

The ordering and the mixing angle is defined by the following matrix, with the LIGHT sbottom as the external momentum

Check for tachyonic sbottoms

twisted measures the ordering of the sbottom masses. If msbot1 > msbot2, twisted is defined to be true (msbot2 > msbot1 is defined "untwisted").

Reimplemented in FlavourMssmSoftsusy.

void MssmSoftsusy::doQuarkMixing ( DoubleMatrix mDon,
DoubleMatrix mUpq 
) [virtual]

input diagonal matrices and it'll give you back mixed ones

Input diagonal mass matrices and it'll give you back mixed ones, based on the CKM quark mixing matrix you supplied in vCkm. The idea is that MssmSoftsusy objects are UNmixed. Therefore this method does nothing. Derived objects may have mixing implemented

This is a dummy routine - MIXING is ignored in this object (it's all done in FLAVOURMSSMSOFTSUSY these days).

Reimplemented in FlavourMssmSoftsusy.

void MssmSoftsusy::doSnu ( double  pizztMS,
int  accuracy = 0 
) [virtual]

Organises calculation of all sneutrino masses, pizztMS=Z self energy at Q=M_SUSY

Reimplemented in FlavourMssmSoftsusy.

void MssmSoftsusy::doTadpoles ( double  mt,
double  sinthDRbar 
)

Does the full 2-loop calculation of both tadpoles and sets them.

tachyons tend to screw up this, so only calculate if we don't have them

add the two-loop terms, prepare inputs

two-loop Higgs corrections: alpha_s alpha_b

end of 2-loop bit

void MssmSoftsusy::doUfb3 ( double  mgut) [inline]

Sets the minimum of potential to be the difference between the UFB-3 direction minimum and the standard EW breaking minimum. mgut is obviously the high-scale at which boundary conditions are employed

void MssmSoftsusy::doUpSquarks ( double  mt,
double  pizztMS,
double  sinthDRbarMS,
int  accuracy 
) [virtual]

Organises calculation of all up squark masses. IO parameters: mt=DRbar top mass, pizztMS=Z self energy at Q=M_SUSY, sinthDRbarMS=DRbar value of sin theta_w, accuracy=0,1: number of loops to add to tree-level squark mass matrix

first two families are simpler

StopSquared2 is now tree-level

one loop corrections

theta is calculated at p=mstop1

twisted measures the ordering of the sbottom masses. If mstop1 > mstop2, twisted is defined to be true (mstop2 > mstop1 is defined "untwisted").

Reimplemented in FlavourMssmSoftsusy.

double MssmSoftsusy::dR ( double  outrho,
double  outsin,
double  alphaDRbar,
double  pizztMZ,
double  piwwt0 
)

Calculates delta r corrections for outrho=DRbar rho parameter, outsin=DRbar sin theta_w, alphaDRbar=alpha(Q) in the DR bar scheme, pizztMZ=self-energy of the Z at p=MZ, pizzt0=self-energy of the W at p=0

2 loop SM contribution

Dominant two-loop SM term

void MssmSoftsusy::drbarSLHA ( ostream &  out,
int  numPoints,
double  qMax,
int  n 
) [virtual]

outputs DRbar parameters at scale Q (default is at MSUSY)

Starting non-essential information. The following decides what scale to output the running parameters at. It depends upon what qMax is and how many points the user has requested. For qMax = 0 and 1 point (defaults), Q=MSUSY is printed out. For qMax = 0 and n points, points are spaced logarithmically between MZ and MSUSY. For qMax != 0 and 1 point, Q=qMax is printed. For qMax != 0 and n points, points are log spaced between MZ and qMax.

double MssmSoftsusy::dRho ( double  outrho,
double  outsin,
double  alphaDRbar,
double  pizztMZ,
double  piwwtMW 
)

Calculates delta rho corrections for outrho=DRbar rho parameter, outsin=DRbar sin theta_w, alphaDRbar=alpha(Q) in the DR bar scheme, pizztMZ=self-energy of the Z at MZ, piwwtMW=self-energy of the W at p=MW

2 loop SM contribution

bug-fixed 24.08.2002

DoubleVector MssmSoftsusy::fineTune ( void(*)(MssmSoftsusy &, const DoubleVector &)  boundaryCondition,
const DoubleVector bcPars,
double  MX,
bool  doTop = false 
)

Pass it an object and it'll return the fine tuning parameters.

Calculates fine-tuning for soft parameters and mu, m_3^2, top Yukawa. IO parameters: bcPars should be a vector giving the high-scale SUSY breaking boundary condition parameters, MX is the high-scale, boundaryCondition is the user-supplied function that sets the SUSY breaking BCs. If doTop is true, it also calculates the fine tuning associated with the top Yukawa coupling.

Stores running parameters in a vector

flag problem FT calculation with NaN...too inaccurate

Restore initial parameters at correct scale

void MssmSoftsusy::flagInaccurateHiggsMass ( bool  a) [inline]

Flags point where higher order corrections to higgs mass are potentially very large

double MssmSoftsusy::getVev ( double  pizzt)

Input for this one (saves time, possibly) is to give the self-energy of the Z at the current scale

void MssmSoftsusy::gluino ( int  accuracy) [virtual]

Calculates pole gluino mass to 1-loop SUSY corrections.

One loop corrections to gluino pole mass: hep-ph/9606211 BUG fixed to use g3 at current scale 8.1.2001 Changed to resummed version 11.05.2001

SUSY QCD radiative correction (gluon/gluino)

Quark/squark correction

Third family mixing contribution: NB changed sign of these 4/6/10 Matchev says BPMZ may be wrong! Fixed again by dividing by M3 on 26/8/11 Corrected this incorrect "fix" 2/10/12

MssmSusy MssmSoftsusy::guessAtSusyMt ( double  tanb,
const QedQcd oneset 
) [virtual]

Provides the first guess at a SUSY object at mt, inputting tanb and oneset (should be at MZ) - it's very crude, doesn't take radiative corrections into account etc. oneset provides low energy data and tanb=tan beta

Provides the first guess at a SUSY object at mt, inputting tanb and oneset (should be at MZ) - it's very crude, doesn't take radiative corrections into account etc.

This bit gives a guess at a SUSY object

Gauge couplings at mt

Yukawa couplings -- at roughly tree level

Reimplemented in FlavourMssmSoftsusy.

void MssmSoftsusy::headerSLHA ( ostream &  out)

This does the job of the above method, but performs the header and CHANGES TO 8 SIG FIGS

Reimplemented in RpvNeutrino.

bool MssmSoftsusy::higgs ( int  accuracy,
double  piwwt,
double  pizzt 
)

Calculates pole Higgs masses and mixings: full 1-loop SUSY corrections and 2-loop alpha_t (alpha_s + alpha_t) + alpha_s alpha_b effective potential corrections. IO parameters: piwwt is the W self-energy at M_SUSY, accuracy is number of loops (0 or 1) to use and pizzt is the Z self-energy at M_SUSY Returns "true" if there's a tachyon problem

physical value

double mApole2 = sqr(mApole);

There'll be trouble if B has the opp sign to mu. This isn't really tree-level since it includes some one loops correrctions, namely tadpoles and Z loops

radiative corrections:

one-loop radiative corrections included in sigma

two-loop Higgs corrections: alpha_s alpha_b

chooses DR-bar scheme from slavich et al

two-loop Higgs corrections: alpha_s alpha_t, alpha_s alpha_b and alpha_b^2, alpha_t*2, alpha_b alpha_t

In hep-ph/0406277 found the lambda_tau^2 and lambda_tau lambda_b corrections to be negligible. Have commented them here for calculational efficiency. Uncomment to see their effect.

If certain DRbar ratios are large, they can cause massive higher order corrections in the higgs mass, making it have O(1) uncertainties. In these cases, you should switch to an OS calculation (eg by using FEYNHIGGS) for the Higgs mass (but there are other points at high tan beta where the DRbar scheme does better).

Definitions are such that theta should diagonalise the matrix like O = [ cos sin ] [-sin cos ] and O m O^T = [ m2^2 ] [ m1^2 ] where m1 < m2, therefore if they come out in the wrong order, add pi/2 onto theta.

theta defined for p=mh

Reimplemented in RpvSoftsusy.

void MssmSoftsusy::inomixingSLHA ( ostream &  out)

This does the job of the above method, but outputs the UMIX/VMIX blocks.

implementing positive-only chargino masses in SLHA

Reimplemented in RpvNeutrino.

void MssmSoftsusy::isajetInterface764 ( const char  fname[80]) const

prints a file into fname which acts as an input to isajet

For input into isajet parameter file called fname.

PRINT out the fiddle in ISAJET PARAMETER file format

void MssmSoftsusy::isajetNumbers764 ( double &  mtopPole,
double &  mGPole,
double &  smu,
double &  mA,
double &  tanb,
double &  mq1l,
double &  mdr,
double &  mur,
double &  meL,
double &  meR,
double &  mql3,
double &  mdr3,
double &  mur3,
double &  mtauL,
double &  mtauR,
double &  at,
double &  ab,
double &  atau,
double &  mq2l,
double &  msr,
double &  mcr,
double &  mmuL,
double &  mmuR,
double &  m1,
double &  m2 
) const

Works out how best to fit the isajet numbers to the spectrum. There are problems with the Higgs and sbottoms because ISAJET assumes certain tree-level relations between masses that are broken by SOFTSUSY's higher accuracy. The differences get large for high tan beta around 50, at around 10 they're typically only a percent. Output parameters: mtopPole is the pole mass of the top quark, mGPole is the gluino pole mass, smu is the superpotential Higgs parameter, mA is the pseudoscalar Higgs mass, tanb is tan beta, mq1l is the mass of the LH first family squark, mdr is the mass of the RH first family squark, meL is the LH selectron mass, meR is the RH selectron mass, mql3 is the LH stop mass, mdr3 is the RH sbottom mass, mur3 is the RH stop mass, mtauL is the LH stau mass, mtauR is the RH stau mass, at is the stop trilinear term, ab is the sbottom trilinear term, atau is the stau trilinear term, mq2l, msr, mcr are 2nd family squark masses, mmuL, mmuR are the smu masses, m1 and m2 are the gaugino mass parameters.

Works out how best to fit the isajet numbers to the spectrum. There are problems with the Higgs and sbottoms because ISAJET assumes certain tree-level relations between masses that are broken by SOFTSUSY's higher accuracy. The differences get large for high tan beta around 50, at around 10 they're typically only a percent.

Store a copy of the current object

Run to MSUSY

Store current object in vector

restore object at MSUSY

tree level

define ISAJET constants

Loop is for iterative solution

We're fiddling these variables to reproduce inside isajet the squark mass matrices that we've found in softsusy

void MssmSoftsusy::isawigInterface764 ( const char  fnamein[80],
const char  fnameout[80],
const char  fnamesoft[80] 
) const

Prints a file into fnamesoft that can be input into isawig. fnamein gives the ISASSRUN output file name, fnameout is the filename for the ISAWIG input file

double MssmSoftsusy::it1par ( int  numPar,
const DoubleVector bcPars 
)

Give it a GUT scale object consistent with rewsb and it'll return the fine tuning of one parameter specified by numPar ht, mu and m3sq at the high

Give it a GUT scale object consistent with rewsb and it'll return the fine tuning by varying m32, mu and m3sq at the high scale

Stores running parameters in a vector

Defines starting value to calculate derivative from

Fine tuning is a / MZ^2 d MZ^2 / d a for any parameter a

High error: if can't find a derivative, error comes back with 1.0e30

Restore initial parameters at correct scale

void MssmSoftsusy::iterateMu ( double &  muold,
int  sgnMu,
double  mt,
int  maxTries,
double  pizzMS,
double  sinthDRbar,
double  tol,
int &  err 
)

Obtains solution of one-loop effective potential minimisation via iteration technique. Currently includes: all 1-loop SUSY tadpoles, plus 2-loop alpha_t (alpha_t + alpha_s) + alpha_b alpha_s corrections IO parameters: munew=current value of mu for this iteration, sgnMu=desired sign of mu, mt=DRbar mtop, maxTries=maximum number of iterations before it bails out, pizzMS=self-energy of MZ at current scale, sinthDRbar=DRbar value of sin theta_w, tol=desired fractional accuracy on mu, err=error flag: err=1 if no iteration reached, 2 if incorrect rewsb

Obtains solution of one-loop effective potential minimisation via iteration technique err is 1 if no iteration reached 2 if incorrect rewsb

How close to convergence are we?

calculate the new one-loop tadpoles with old value of mu

Error in rewsb

void MssmSoftsusy::itLowsoft ( int  maxTries,
int  sgnMu,
double  tol,
double  tanb,
void(*)(MssmSoftsusy &, const DoubleVector &)  boundaryCondition,
const DoubleVector pars,
bool  gaugeUnification,
bool  ewsbBCscale 
)

Main iteration routine: Boundary condition is the theoretical condition on parameters at the high energy scale mx: the parameters themselves are contained within the vector. IO parameters: maxTries is the maximum number of iterations allowed, mx is the GUT scale (negative if you require gauge unification), sgnMu is the desired sign of mu: + or - 1. If mu is 0, mu is set initially as a boundary condition. tanb = desired value of DR bar tan beta(MZ).

Iterating too long: bail out

On first iteration, don't bother with finite corrections

precision of running/RGE integration: start off low and increase

first stab at MSUSY: root(mstop1(MZ) mstop2(MZ))

Guard against the top Yukawa fixed point

problem with running: bail out

Equal gauge couplings: let them and their derivatives set the boundary condition scale -- linear approximation

if mx is too high/low, will likely get non-perturbative problems

< This will be at MSUSY

< After 11 tries, we start averaging old/new mu values

< Accuracy achieved: bail out

< Reset the number of iterations for the next time

guards against nasty fatal problems

Old iteration is 'old': these are the parameters by which convergence is measured.

If a print out is desired, print respectively, the difference with the last iteration (sum tol or sT), the mu parameter and m3^2 from EWSB, and the predicted MW and MZ boson masses

problem with running: bail out

old = MssmSoftsusy();

void MssmSoftsusy::lesHouchesAccordOutput ( ostream &  out,
const char  model[],
const DoubleVector pars,
int  sgnMu,
double  tanb,
double  qMax,
int  numPoints,
bool  ewsbBCscale 
) [virtual]

SUSY Les Houches accord for interfacing to Monte-Carlos, decay programs etc.

Outputs with Les Houches accord conventions to standard output. Inputs: out should be something like cout or fout depending on whether you want output in a file or not. model contains what form of model is used for the SUSY breaking terms (eg sugra, gmsb, amsb, nonUniversal). qMax is only relevant if you want a gridded output of running parameters up to some scale qMax. Put numPoints = 1 if you don't want to use this option - then qMaz is immaterial. mb is mb(mb) in the MSbar scheme used to produce the output, whereas mtau is the pole mass used (eg 1.777). mgut is the GUT scale that has been determined, and altEwsb is true if you specified mu and mA as input parameters (not tan beta and mH1, mH2).

Reimplemented in RpvNeutrino, and FlavourMssmSoftsusy.

void MssmSoftsusy::lowOrg ( void(*)(MssmSoftsusy &, const DoubleVector &)  boundaryCondition,
double  mxGuess,
const DoubleVector pars,
int  sgnMu,
double  tanb,
const QedQcd oneset,
bool  gaugeUnification,
bool  ewsbBCscale = false 
)

Driver calculation to determine all sparticle masses and parameters. Returns low energy softsusy object consistent with BC's m0 etc at MGUT. oneset should be at MZ and contains the SM data to fit the model to. If the running comes into difficulty, eg if a Landau pole is reached, it returns a ZERO object: no result is possible! Boundary condition is the theoretical condition on parameters at the high energy scale mx: the parameters themselves are contained within the vector. IO parameters: sgnMu is the desired sign of mu: + or - 1. If mu is 0, mu is set initially as a boundary condition. tanb = desired value of DR bar tan beta(MZ). boundaryCondition is the function which sets to SUSY BCs at the high scale, mxGuess is the GUT scale gaugeUnification=true if the user requests true gauge unification, in which case mxGuess is the first guess. Returns actual GUT scale. ewsbBCscale = false (or omitted) means that the boundary condition on SUSY breaking is set in the usual way. If it is true, the boundary condition is set to $\sqrt{m_{{\tilde t}_1} m_{{\tilde t}_2}} $, ie like in the "pheno MSSM".

Returns low energy softsusy object consistent with BC's m0 etc at MGUT. oneset should be at MZ and contains the SM data to fit the model to. If the running comes into difficulty, eg if a Landau pole is reached, it returns a ZERO object: no result is possible! Boundary condition is the theoretical condition on parameters at the high energy scale mx: the parameters themselves are contained within the vector.

Remember initial values

Always starts from an empty object

These are things that are re-written by the new initialisation

Here all was same

2 loops should protect against ht Landau pole

Initial guess: B=0,

int MssmSoftsusy::lsp ( double &  mass,
int &  posi,
int &  posj 
) const

Returns lsp mass in mass and function return labels which particle is lsp=0 means LSP is neutralino, 1=up squark, 2=down squark, 3=sleptons, 4=charginos, 5=sneutrinos, 6=gluino. posi, posj give the "handedness" (ie 1 or 2) for scalars and family respectively.

Returns lsp mass in mass and function return labels which particle is lsp: 0 is neutralino posi = #, posj = 0

up squarks 1

down squarks 2

sleptons 3

charginos 4

sneutrinos 5

gluino 6

gravitino -1

void MssmSoftsusy::massSLHA ( ostream &  out)

This does the job of the above method, but outputs the Mass block.

out << " 6 "; printRow(out, displayDataSet().displayPoleMt()); out << " # top\n";

Reimplemented in RpvNeutrino.

double MssmSoftsusy::maxMass ( ) const

Returns the mass of the heaviest SUSY particle, excluding gravitino.

up squarks 1

down squarks 2

sleptons 3

charginos 4

sneutrinos 5

gluino 6

void MssmSoftsusy::methodBoundaryCondition ( const DoubleVector pars) [virtual]

Dummy function to allow users to re-define it in user supplied objects. Pars will contain necessary parameters to describe high-scale boundary conditions on SUSY breaking terms

Reimplemented in RpvSoftsusy.

void MssmSoftsusy::minparSLHA ( ostream &  out,
const char  model[],
const DoubleVector pars,
double  tanb,
int  sgnMu,
bool  ewsbBCscale 
)

MINPAR block of SLHA.

For universal models, users still want to know MX and it has to be specially printed out as EXTPAR 0

Reimplemented in FlavourMssmSoftsusy.

void MssmSoftsusy::modselSLHA ( ostream &  out,
const char  model[] 
)

This does the MODSEL block of SLHA.

Les Houches

accord codes

Reimplemented in RpvNeutrino, and FlavourMssmSoftsusy.

void MssmSoftsusy::neutralinos ( int  accuracy,
double  piwwt,
double  pizzt 
) [virtual]

mixNeut set to diagonal = mixNeut^T mNeutralino mixNeut: checked

Calculates pole neutralino masses and mixingusing approximate 1-loop SUSY corrections. IO parameters: piwwt is the W self-energy at M_SUSY, accuracy is the number of loops required (0 or 1 currently), pizzt is the Z self-energy at M_SUSY

tree level

symmetrise tree-level

We should choose sign conventions from the case where the mixing is defined, in case there is a difference

Reimplemented in RpvSoftsusy.

int MssmSoftsusy::nlsp ( double &  mass,
int &  posi,
int &  posj 
) const

Returns nlsp mass in mass and function return labels which particle is nlsp=0 means NLSP is neutralino, 1=up squark, 2=down squark, 3=sleptons, 4=charginos, 5=sneutrinos, 6=gluino. posi, posj give the "handedness" (ie 1 or 2) for scalars and family respectively.

Returns nlsp mass in mass and function return labels which particle is nlsp: 0 is neutralino posi = #, posj = 0

up squarks 1

down squarks 2

sleptons 3

charginos 4

sneutrinos 5

gluino 6

check that nlsp is not the next-to-lightest in the group of the lsp

neutralinos

up squarks 1

down squarks 2

sleptons 3

charginos 4

sneutrinos 5

gluino 6 there is only one gluino mass

void MssmSoftsusy::physical ( int  accuracy) [virtual]

Calculates physical sparticle masses to accuracy number of loops. Should be called at M_{SUSY}.

Organises calculation of physical quantities such as sparticle masses etc Call AT MSusy

Running masses at MSUSY

Re-calculate the 1-loop tadpoles for the calculation

Sfermion masses: all three families in each

Charginos/neutralinos/higgs

Iterate Higgs calculation (unless accuracy=0, in which case we just need a rough calculation) until the Higgs masses all converge to better than TOLERANCE fractional accuracy

iterate

Reimplemented in RpvNeutrino.

double MssmSoftsusy::piAA ( double  p,
double  Q 
) const [virtual]

Calculates transverse part of A^0 self-energy: for p=external momentum, Q=renormalisation scale

checked 30.07.03

< protects vs zeros

Up fermions/sfermions

ignore 1st 2 families

LH gens 1-2

RH gen 1-2

Other Higgs'

trilinear Higgs coupling Feynman rules

trilinear Higgs/Goldstone Feynman rules

quartic Higgs coupling Ferynman rules: check

Rotate to A neutralino basis

To A-mass basis

cout << "f=" << fChChiA << " g=" << gChChiA;

Down fermions

sneutrinos

LH gens 1-2

RH gens 1-2

Sign of certain contributions bug-fixed 30-07-03

double MssmSoftsusy::piHpHm ( double  p,
double  Q 
) const [virtual]

New routine.

Calculates transverse part of H^+H^- self-energy: for p=external momentum, Q=renormalisation scale

first two generations: forget lighter Yukawas

3rd family

ups

downs

sneutrinos/selectrons

downs

3rd fam ups

3rd fam downs

3rd fam snus

3rd fam es

BPMZ not so clear: assuming (D.67) that s_i G+ H- coupling is same as s_i G- H+ (by C conservation): basis is (s1 s2, G- H-)

in (H h) basis

Get to physical gaugino estates, and G+H+

double MssmSoftsusy::pis1s1 ( double  p,
double  q 
) const

Calculates transverse part of Higgs self-energy: for p=external momentum, Q=renormalisation scale

minus sign taken into acct here!

fermions: 3rd family only for now

stop couplings to s1 Higgs state

sbottom couplings to s1 Higgs state

stau couplings to s1 Higgs state

Mix 3rd family up

selectron couplings to s1 Higgs state: neglect Yukawas + mixing

Trilinear Higgs couplings in basis H h G A: have assumed the couplings are symmetric (ie hHs1 = Hhs1)

Quadrilinear Higgs couplings

define Higgs vector in 't-Hooft Feynman gauge, and couplings:

cout << "higgs(" << i << "," << j << ")=" << higgs;

cout << "higgs(" << i << "," << j << ")=" << higgs;

cout << hhs1 << hhs1s1 << higgsm;

Basis (G+ H+, G- H-)

(G+ H+)

Neutralino contribution

Chargino contribution

double MssmSoftsusy::pis1s2 ( double  p,
double  q 
) const

Calculates transverse part of Higgs self-energy: for p=external momentum, Q=renormalisation scale

minus sign taken into acct here!

stop couplings to s1 Higgs state

sbottom couplings to s1 Higgs state

stau couplings to s1 Higgs state

Mix 3rd family up

stop couplings to s2 Higgs state

sbottom couplings to s2 Higgs state

stau couplings to s2 Higgs state

Mix 3rd family up

sneutrinos

selectron couplings to s1 Higgs state: neglect Yukawas + mixing

couplings to s2 Higgs state: neglect Yukawas + mixing

Trilinear Higgs couplings in basis H h G A: have assumed the couplings are symmetric (ie hHs1 = Hhs1)

Trilinear Higgs couplings in basis H h G A: have assumed the couplings are symmetric (ie hHs2 = Hhs2)

Quadrilinear Higgs couplings

cout << "alpha=" << alpha << " g=" << g << " " << gp << " cw" << costhDrbar << " " << displayTanb();

define Higgs vector in 't-Hooft Feynman gauge, and couplings:

Neutralino contribution

Chargino contribution

double MssmSoftsusy::pis2s2 ( double  p,
double  q 
) const

checked 28.10.02

Calculates transverse part of Higgs self-energy: for p=external momentum, Q=renormalisation scale

minus sign taken into acct here!

fermions: 3rd family only for now, others make negligible difference

stop contribution

sbottom contribution

first two families of sparticles

stop couplings to s2 Higgs state

sbottom couplings to s2 Higgs state

stau couplings to s2 Higgs state

Mix 3rd family up

stop

sbottom

stay

couplings to s2 Higgs state: neglect Yukawas + mixing

gauge boson/Higgs contributions

Trilinear Higgs couplings in basis H h G A: have assumed the couplings are symmetric (ie hHs2 = Hhs2)

Quadrilinear Higgs couplings

define Higgs vector in 't-Hooft Feynman gauge, and couplings:

Neutralino contribution

Chargino contribution

double MssmSoftsusy::piWWT ( double  p,
double  q,
bool  usePoleMt = false 
) const [virtual]

Calculates transverse part of W self-energy: for p=external momentum, Q=renormalisation scale

W propagator to 1 loop in MSSM It's all been checked

We utilise pole mt for these corrections (which the 2-loop Standard Model pieces assume)

fermions: these are valid at MZ

sfermions

stop/sbottom

LH slepton

These ought to be in physpars

double MssmSoftsusy::piZGT ( double  p,
double  Q 
) const

Calculates Z gamma self-energy: for p=external momentum, Q=renormalisation scale

! checked 7/6/6

double MssmSoftsusy::piZZT ( double  p,
double  Q,
bool  usePoleMt = false 
) const [virtual]

Transverse part of Z self-energy: has been checked.

Calculates transverse part of Z self-energy: for p=external momentum, Q=renormalisation scale

fermions: these are valid at MZ

We utilise pole mt for these corrections (which the 2-loop Standard Model pieces assume)

first two families of sfermions

sneutrinos

up squarks

down squarks

sleptons

THIRD FAMILY sneutrinos

up squarks

down squarks

selectrons

Neutralinos

Charginos static

double MssmSoftsusy::predMzsq ( double &  tanb,
double  muOld = -6.66e66,
double  eps = 0. 
)

Predicts value of MZ(pole) from values of soft parameters and mu that we have. tanb=tan beta is also predicted

Apply at scale MSusy: checked 19.12.2000 Displays PHYSICAL MZ, ie MZ(q) - piZz^T(q) Fixed pizztMS to resummed version 6/1/13

< resums logs

double MssmSoftsusy::predTanb ( double  susyMu = -6.66e66) const

This is a check: predicts tan beta from the values of soft parameters and mu that we have

Predicts tan beta once mu and soft terms are predicted at low energy Useful for fine-tuning calculation. Call at MSusy only. Predicts tan beta once mu and soft terms are predicted at low energy Useful for fine-tuning calculation. Call at MSusy only.

Note: we want to take inverse sine so that fundamental domain is greater than pi/4. sin(pi - 2 beta)=sin 2 beta should achieve this. we also use tan (pi/2 - theta) = 1/tan(theta)

Prints a list of all sparticle/Higgs masses to standard output.

output: 1 2 3 4 5 6 7 8 9 10 11 12 13 mu m3sq mH1sq mH2sq g1 g2 mt(mt) mh mA mH mH+ alphaH msnu3 14 15 16 17 18 19 20 msnu1 mstopL mstopR msupL msupR msbotL msbotR 21 22 23 24 25 26 27 28 29 msdL msdR mstauL mstauR mselL mselR thetat thetab thetatau 30 31 32 33 34 35 36 37 38 mgl mch1 mch2 thetaL thetaR mneut1 mneut2 mneut3 mneut4 39 40 41 sinthW t1ov1 t2ov2

string MssmSoftsusy::printShort ( ) const

Prints a list of important sparticle/Higgs masses to standard output.

Prints mu, B and important spectral information.

double MssmSoftsusy::qcdSusythresh ( double  alphasMSbar,
double  q 
) const

Does SUSY (and other) threshold corrections to alphaS Input alphas in MSbar and it returns it in DRbar scheme. From hep-ph/9606211

double MssmSoftsusy::qedSusythresh ( double  alphaEm,
double  q 
) const

Does SUSY (and other) threshold corrections to alphaEm - returns alpha in DRbar scheme at scale Q. From hep-ph/9606211. Input empirical value of alpha at 0 momentum....

Does SUSY (and other) threshold corrections to alphaEm - returns alpha in DRbar scheme at scale Q. From hep-ph/9606211. Input empirical value of alpha at MZ external momentum....

commented out since alpha(MZ) includes it!

double MssmSoftsusy::realMinMs ( ) const

You should evaluate this at a scale MSusy average of stops. Returns depth of electroweak minimum

You should evaluate this at a scale MSusy average of stops. Depth of electroweak minimum: hep-ph/9507294. Bug-fixed 19/11/04

void MssmSoftsusy::rewsb ( int  sgnMu,
double  mt,
const DoubleVector pars,
double  muOld = -6.66e66,
double  eps = 0. 
) [virtual]

Organises high accuracy rewsb: call it at the low scale M_{SUSY} IO parameters: sgnMu is +/-1 (desired sign of mu), mt is DRbar top mass muOld is a value of mu with which the current one is to be averaged, if it is set to some value above the number of the beast. This can be useful in attaining convergence in regions where it is difficult. eps reflects how the old and new values of mu are to be averaged: it's (eps * mu + (1-eps) * muOld)

Organises rewsb: call it at the low scale MS^2 = sqrt(0.5 * (mT1^2 + mT2^2)) is best, or below if it's decoupled from there. Call with zero, or no mt if you want tree level

Iterate to get a self-consistent mu solution

< resums logs

average mu with the input value of muOld, if it isn't the number of the beast

Reimplemented in RpvSoftsusy.

int MssmSoftsusy::rewsbM3sq ( double  mu,
double &  m3sq 
) const [virtual]

returns 1 if mu < 1.0e-9

Tree-level REWSB calculation, returning m3sq at correct value consistent with mu

Following means no good rewsb

int MssmSoftsusy::rewsbMu ( int  sgnMu,
double &  mu 
) const [virtual]

Calculates pole Higgs masses and mixings: full 1-loop SUSY corrections and 2-loop alpha_t (alpha_s + alpha_t) + alpha_s alpha_b effective potential corrections. IO parameters: piwwt is the W self-energy at M_SUSY, accuracy is number of loops (0 or 1) to use and pizzt is the Z self-energy at M_SUSY Tree-level REWSB calculation, returning mu at correct value. sgnMu is the required sign (+/- 1). Returns 1 if mu^2<0, indicating an inconsistent minimum

Returns mu from rewsb requirement. returns 1 if there's a problem. Call at MSusy

Tree-level relation

mu has incorrect sign

void MssmSoftsusy::rewsbTreeLevel ( int  sgnMu) [virtual]

Organises tree-level rewsb: call it at the low scale M_{SUSY} IO parameters: sgnMu is +/-1 (desired sign of mu)

void MssmSoftsusy::rhohat ( double &  outrho,
double &  outsin,
double  alphaDRbar,
double  pizztMZ,
double  piwwt0,
double  piwwtMW,
double  tol,
int  maxTries 
) [virtual]

Iterative determination of rho parameter consistent with muon decay constant, MZ and alpha_0. IO parameters: outrho and outsin are the current DRbar values of sin theta_w and the rho parameter. alphaMZDRbar=already calculated value of fine-structure constant, pizztMZ=Z self-energy at Q=MZ, tol=desired piwwt0=self-energy of the W at p=0, piwwtMW=self-energy of the W at p=MW accuracy and maxTries is the maximum number of iterations the routines will allow

Checked 20.11.00 Flags noconvergence if there's trouble...then don't believe outrho and outsin produced - they are fudged!

Difference to last iteration

void MssmSoftsusy::rpvSet ( const DoubleVector parameters) [virtual]

Dummy function to allow users to re-define it in user supplied objects. Pars will contain necessary parameters to describe high-scale boundary conditions on SUSY breaking terms

Reimplemented in RpvSoftsusy.

void MssmSoftsusy::setEwsbConditions ( const DoubleVector inputs) [virtual]

Again, another dummy - useful in alternative EWSB conditions sometimes.

Normally, this is just a dummy function that is un-used. But sometimes, it can be used to re-set electroweak symmetry breaking conditions, depending on the value of inputs at the GUT scale.

double MssmSoftsusy::smPredictionMW ( ) const

checked 22/04/06

predicts MW in Standard Model limit: parameterisation from hep-ph/0311148: estimated 4 MeV on the error

first contribution is leptonic: from hep-ph/9803313 second from hep-ph/0104304

void MssmSoftsusy::sparticleThresholdCorrections ( double  tb) [virtual]

For an input tan beta=tb, sets gauge and Yukawa couplings according to the tree-level spectrum and data set: pars contains the boundary conditions. They aren't used in R-parity conservation, though.

It'll set the important SUSY couplings: supposed to be applied at MZ You should set up an iteration here since Yuk's depend on top mass which depends on Yuk's etc.

for the up-coming loops

Do gauge couplings

replace third family quark masses with their loop-corrected values

to do: for a better approximation, the lighter quarks/leptons should also be corrected with MSSM/DRbar corrections

3-family mixed-up Yukawa couplings: From PDG 2000

Reimplemented in RpvSoftsusy.

void MssmSoftsusy::ssrunInterface764 ( const char  fname[80],
const char  softfname[80] 
) const

prints a file into fname which acts as an input to isajet First name input is the name of an OUTPUT file from ssrun, the second name is the name of the interface file for INPUT to ssrun

First name input is the name of an OUTPUT file from ssrun, the second name is the name of the interface file for INPUT to ssrun

void MssmSoftsusy::ssrunInterface764Inside ( const char  fname[80],
fstream &  softOutput 
) const

prints a file into fname which acts as an input to isassrun: fstream should be opened before calling

void MssmSoftsusy::treeChargedSlepton ( DoubleMatrix mass,
double  mTrun,
double  pizztMS,
double  sinthDRbarMS,
int  family 
)

Returns tree-level down squark mass matrix in "mass". IO parameters: mass=tree level mass matrix on input, is returned with radiative corrections added, mTrun=DR bar tau mass, family=generation of slepton, pizztMS=Z self energy at Q=M_SUSY, sinthDRbarMS=DRbar value of sin theta_w

void MssmSoftsusy::treeDownSquark ( DoubleMatrix mass,
double  mbrun,
double  pizztMS,
double  sinthDRbarMS,
int  family 
)

Returns tree-level down squark mass matrix in "mass". IO parameters: mass=tree level mass matrix on input, is returned with radiative corrections added, mbrun=DR bar bottom mass, family=generation of squark, pizztMS=Z self energy at Q=M_SUSY, sinthDRbarMS=DRbar value of sin theta_w

This is the value you'd get from minimising the Higgs potential at tree-level

void MssmSoftsusy::treeSnu ( double &  mSq,
double  pizztMS,
int  family 
)

Organises calculation of all sneutrino masses, pizztMS=Z self energy at Q=M_SUSY, mSq=mass of sneutrino, family=generation of sneutrino

void MssmSoftsusy::treeUpSquark ( DoubleMatrix mass,
double  mtrun,
double  pizztMS,
double  sinthDRbarMS,
int  family 
)

Returns tree-level up squark mass matrix in "mass". IO parameters: mass=tree level mass matrix on input, is returned with radiative corrections added, mtrun=DR bar top mass, family=generation of squark, pizztMS=Z self energy at Q=M_SUSY, sinthDRbarMS=DRbar value of sin theta_w

double MssmSoftsusy::twoLoopGm2 ( double  amu1Loop) const

gives two-loop contribution to (g-2)_mu according to the calculation in Stockinger et al

Neutralinos

Higgs-sfermion couplings

double MssmSoftsusy::twoLpMt ( ) const

Two-loop O(^2) MSSM corrections to the pole masses of heavy quarks by A.Bednyakov, A.Onishchenko, V.Velizhanin, O.Veretin

double MssmSoftsusy::ufb3sl ( double  mx)

Input mx the scale up to which you search for minima. Returns minimum value of potential along UFB3 direction. Does ufbs truly properly but takes a long time.

Input mx the scale up to which you search for minima Returns minimum value of potential along that direction Does ufbs truly properly but takes ages.

Save initial parameters

Running should be faster from high scales on the whole

Numerical recipes routine to determine minimum of potential specified in minimufb3

Restore initial parameters setMu(initialMu); set(parSave);


The documentation for this class was generated from the following files: