Contains all supersymmetric MSSM parameters, incorporating R_p MSSM. More...
#include <softsusy.h>
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 MssmSoftsusy & | operator= (const MssmSoftsusy &s) |
Set all data in the object equal to another. | |
const MssmSoftsusy & | displayMssmSoft () const |
Displays whole object as a const. | |
const sPhysical & | displayPhys () const |
Displays physical parameters only. | |
const drBarPars & | displayDrBarPars () const |
const sProblem & | displayProblem () const |
Returns any problem flags associated with the object. | |
const QedQcd & | displayDataSet () 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 MssmSoftsusy & | displaySoftsusy () 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 ![]() | |
virtual double | doCalcTadpole2oneLoop (double mt, double sinthDRbar) |
Does the calculation of one-loop pieces of ![]() | |
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 ¶meters) |
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) |
Contains all supersymmetric MSSM parameters, incorporating R_p MSSM.
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.
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
void MssmSoftsusy::addSquarkCorrection | ( | DoubleMatrix & | mass | ) |
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: . 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.
double MssmSoftsusy::calcRunningMt | ( | ) |
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
double MssmSoftsusy::calcRunningMtau | ( | ) | const |
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 : 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 : 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 .
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 .
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 , 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)
string MssmSoftsusy::printLong | ( | ) |
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
double MssmSoftsusy::treeLevelMuSq | ( | ) |
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);