SoftSUSY is hosted by Hepforge, IPPP Durham
SOFTSUSY  4.0
threeBodyDecays.cpp File Reference
#include "threeBodyDecays.h"

Functions

double Zfunc (double m1, double mq, double m, double Etbarmax, double Etbarmin)
 Integrand functions for 1->3 decays. More...
 
DoubleVector Etbarmaxmin (double m1, double m2, double massq, double Et)
 required for many of the 1->3 integrals, this gives E max and min of t bar for given Et therefore different to overall limits of integration on Et which are Etmax, Etmin More...
 
DoubleVector Ebbarmaxmin (double mass1, double mass2, double mass3, double mass4, double Et)
 function required for gluino 3 body decays to chargino and q q'bar, mass1 is gluino mass, mass2 is top mass, mass3 is bottom mass, mass4 is chargino mass More...
 
double Xfunc (double mass1, double mass2, double mass3, double mass4, double mass5, double Et)
 required for gluino 3 body decays to chargino and q q'bar, mass1 is gluino mass, mass2 is top mass, mass3 is bottom mass, mass4 is chargino mass, mass5 is the sbottom mass
 
double gluinoamplitudedecaydgausscharginoqqpbarfirsttwogen (double mgluino, double mchargino, double mquark, double mquarkp, double msqL, double msqpL, double g, double thetaL, double thetaR, double alphas, int charg, bool onetothree)
 Functions for 1->3 decays via dgauss: More...
 
double alphasrun (double mu, double mu0, double alphasmu0)
 Function that runs alphas to desired scale using 1-loop renormalisation group equations, inc. MSSM gluinos and squarks (hence 2/3 not 2/7) More...
 
double alphasrunlambdaQCD (double mu, double LAMBDA, double Nf)
 Function that mimics hdecay's ALPHAS running with the link to Lambda QCD.
 
double alpharun (double mu, double mu0, double alphamu0)
 Function that runs alpha to desired scale using 1-loop renormalisation group equations, inc. MSSM particles hence 1 rather than -19/6 of SM. More...
 
void printRowPDG (ostream &fout, double x)
 
void OutputNoPWs (ostream &fout, Particle &P)
 Outputs the decay table into the leshouchesOutput file with no PWs (partial widths) given, just branching ratios.
 
void OutputYesPWs (ostream &fout, Particle &P)
 Outputs the decay table into the leshouchesOutput file with PWs (partial widths) given after the comments column so as not to affect SLHA form.
 
double gpsitildadgauss (double Et)
 
double gphitildadgauss (double Et)
 
double gxsidgauss (double Et)
 
double grhodgauss (double Et)
 
double gchidgauss (double Et)
 
double gzetadgauss (double Et)
 
double gXdgauss (double Et)
 
double gYdgauss (double Et)
 
double gchiprimedgauss (double Et)
 
double gG1dgauss (double Et)
 m1 = mgluino, m2 = mstopi, m6 = mtop, m8 = mcharginoj
 
double gG4dgauss (double Et)
 m1 = mgluino, m2 = mstopi, m4 = msbottomi, m6 = mtop, m7 = mbottom , m8 = mcharginoj
 
double gG5dgauss (double Et)
 m1 = mgluino, m2 = mstopi, m4 = msbottomi, m6 = mtop, m7 = mbottom , m8 = mcharginoj
 
double gG6dgauss (double Et)
 m1 = mgluino, m2 = mstopi, m4 = msbottomi, m6 = mtop, m7 = mbottom , m8 = mcharginoj
 
double gG7dgauss (double Et)
 
double gG8dgauss (double Et)
 
double gG2dgauss (double Ebbar)
 
double gG3dgauss (double Ebbar)
 
double gZdgauss (double E)
 m1 = mZi, m4 = mZj, m2 = mstop1, m3 = mstop2, mq = mt, MZboson = mz
 
double ghHdgauss (double E)
 m1 = mZi, m4 = mZj, m2 = mstop1, m3 = mstop2, mq = mt, MZboson = mz
 
double gAdgauss (double E)
 m1 = mZi, m4 = mZj, m2 = mstop1, m3 = mstop2, mq = mt
 
double gZsfdgauss (double s)
 m2 = msfi where i is the sfermion contribution interference with Z you are considering
 
double gJdgauss (double s)
 
double gneutineutjffZ1dgauss (double s)
 m1 = mneuti, m4 = mneutj, mq = mf, MZboson = mZboson More...
 
double gneutineutjffZ2dgauss (double s)
 
double gneutineutjffZ3dgauss (double s)
 
double gneutineutjffZ4dgauss (double s)
 
double gintegralhdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mh = mhiggsl
 
double gintegralHdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mH = mhiggsH
 
double gintegralh1dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mh = mhiggsl
 
double gintegralh2dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mh = mhiggsl
 
double gintegralh3dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mh = mhiggsl
 
double gintegralh4dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mh = mhiggsl
 
double gintegralH1dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mH = mhiggsH
 
double gintegralH2dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mH = mhiggsH
 
double gintegralH3dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mH = mhiggsH
 
double gintegralH4dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mh = mhiggsl
 
double gintegralhH1dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mh = mhiggsl, mH = mhiggsH
 
double gintegralhH2dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mh = mhiggsl, mH = mhiggsH
 
double gintegralhH3dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mh = mhiggsl, mH = mhiggsH
 
double gintegralhH4dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mh = mhiggsl, mH = mhiggsH
 
double gintegralA1dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mA = mhiggsA
 
double gintegralA2dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mA = mhiggsA
 
double gintegralA3dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mA = mhiggsA
 
double gintegralA4dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mA = mhiggsA
 
double gintegral1Zsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral2Zsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral3Zsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral4Zsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral5Zsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral6Zsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral7Zsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral8Zsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral1hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral2hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral3hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral4hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral5hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral6hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral7hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral8hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral1Hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral2Hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral3Hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral4Hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral5Hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral6Hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral7Hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral8Hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral1ZAdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mA = mhiggsA, m2 = msfi, MZboson = mz
 
double gintegral2ZAdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mA = mhiggsA, m2 = msfi, MZboson = mz
 
double gintegral3ZAdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mA = mhiggsA, m2 = msfi, MZboson = mz
 
double gintegral4ZAdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mA = mhiggsA, m2 = msfi, MZboson = mz
 
double gneutineutjffgA1dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mA = mhiggsA, MZboson = mz
 
double gneutineutjffgA2dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mA = mhiggsA, MZboson = mz
 
double gneutineutjffgA3dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mA = mhiggsA, MZboson = mz
 
double gneutineutjffgA4dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mA = mhiggsA, MZboson = mz
 
double gneuticharjffpW1dgauss (double E)
 m1 = mZi, m2 = mWj, m3 = mf, m4 = mfp, MWboson = mw
 
double gneuticharjffpW2dgauss (double E)
 m1 = mZi, m2 = mWj, m3 = mf, m4 = mfp, MWboson = mw
 
double gneuticharjffpHpm1dgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mHpm; //sometimes mass order differs as called in different cases
 
double gneuticharjffpHpm2dgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mHpm; //sometimes mass order differs as called in different cases
 
double gneuticharjffpHpm3dgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mHpm; //sometimes mass order differs as called in different cases
 
double gneuticharjffpHpm4dgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mHpm; //sometimes mass order differs as called in different cases
 
double gneuticharjffp1sf1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msf1, m6 = msf2 More...
 
double gneuticharjffp2sf1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msf1, m6 = msf2 More...
 
double gneuticharjffp3sf1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msf1, m6 = msf2 More...
 
double gneuticharjffp4sf1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msf1, m6 = msf2 More...
 
double gneuticharjffp1sfp1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msfp1, m6 = msf2
 
double gneuticharjffp2sfp1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msfp1, m6 = msf2
 
double gneuticharjffp3sfp1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msfp1, m6 = msf2
 
double gneuticharjffp4sfp1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msfp1, m6 = msf2
 
double gneuticharjffp5sfp1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msfp1, m6 = msf2
 
double gneuticharjffp6sfp1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msfp1, m6 = msf2
 
double gneuticharjffp7sfp1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msfp1, m6 = msf2
 
double gneuticharjffp8sfp1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msfp1, m6 = msf2
 
double gneuticharjffp1WHpmdgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mWboson, m6 = mHpm
 
double gneuticharjffp2WHpmdgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mWboson, m6 = mHpm
 
double gneuticharjffp3WHpmdgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mWboson, m6 = mHpm
 
double gneuticharjffp4WHpmdgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mWboson, m6 = mHpm
 
double gneuticharjffpW1Sfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp
 
double gneuticharjffpW2Sfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp
 
double gneuticharjffpW3Sfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp
 
double gneuticharjffpW4Sfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp
 
double gneuticharjffpW5Sfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp
 
double gneuticharjffpW6Sfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp
 
double gneuticharjffpW7Sfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp
 
double gneuticharjffpW8Sfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp
 
double gneuticharjffpHg1dgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mWboson, m6 = mHP
 
double gneuticharjffpHg2dgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mWboson, m6 = mHP
 
double gneuticharjffpHg3dgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mWboson, m6 = mHP
 
double gneuticharjffpHg4dgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mWboson, m6 = mHP
 
double gneuticharjffp1gsfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp1
 
double gneuticharjffp2gsfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp1
 
double gneuticharjffp3gsfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp1
 
double gneuticharjffp4gsfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp1
 
double gneuticharjffp5gsfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp1
 
double gneuticharjffp6gsfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp1
 
double gneuticharjffp7gsfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp1
 
double gneuticharjffp8gsfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp1
 
double gneuticharjffp1sfpsfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = -mf, m4 = charginoj, m5 = msfp1, m6 = msfp2
 
double gneuticharjffp2sfpsfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = -mf, m4 = charginoj, m5 = msfp1, m6 = msfp2
 
double gneuticharjffp3sfpsfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = -mf, m4 = charginoj, m5 = msfp1, m6 = msfp2
 
double gneuticharjffp4sfpsfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = -mf, m4 = charginoj, m5 = msfp1, m6 = msfp2
 
double gluinoamplitudedecaydgaussneutralinoqqpbarfirsttwogen (double mgluino, double mneutralino, double msqL, double msqR, double mquark, double g, double gp, DoubleMatrix &mixNeut, double alphas, char uord, int neut, bool onetothree)
 m1 is mgluino, m2 is neutralinoi mass, m3 is sqL mass, m4 is sqR mass, m5 is quark mass but assumed zero in calculation here, just used to check allowed for now; char uord tells us if the quark is u type 'u' or d type 'd', int neut tells us which neutralino it is More...
 
double gluinoamplitudedecaydgaussneutralinottbar (double mgluino, double mst1, double mst2, double mneutralino, double mt, double mWboson, double g, double gp, double thetat, double beta, double alphas, DoubleMatrix &mixNeut, double runmt, int neutralino, bool onetothree, char torb)
 calculates PW for gluino -> neutralino + q qbar pair where q are t More...
 
double gluinoamplitudedecaydgausschartbbar (double mgluino, double mst1, double mst2, double msb1, double msb2, double mtop, double mbottom, double mchar, double alphas, double thetat, double thetab, double MWboson, double g, double gp, double gammaL, double gammaR, double beta, double runmt, double runmb, int chargino, bool onetothree)
 
double neutralinoamplitudedecaydgaussneutralinoffbar (double mneutralinoi, double msf1, double msf2, double mZboson, double mhiggsl, double mhiggsH, double mhiggsA, double mneutralinoj, double mf, double alphas, double thetaq, double mWboson, double g, double gp, double alpha, double beta, double runmq, DoubleMatrix &mixNeut, int ineutralino, int jneutralino, bool onetothree, char uordornuorl)
 
double neutralinoamplitudedecaycharginoffprimebar (double mneutralinoi, double msfp1, double msfp2, double msf1, double msf2, double mWboson, double mHP, double mcharginoj, double mfp, double mf, double thetaqp, double thetaq, double g, double gp, double alpha, double beta, double thetaL2, double thetaR2, double runmqp, double runmq, DoubleMatrix &mixNeut, int ineutralino, int jchargino, bool onetothree, char qorl, char norc)
 
double higgsAamplitudedecaygammagammaNMSSM (double m1, double g, double gprime, double alpha, double mWboson, DoubleMatrix &CPOMix, double beta, double mtop, double mbottom, double mcharm, double mtau, double mch1, double mch2, double thetaL, double thetaR, double lam, int higgs)
 
double higgsAamplitudedecaygluongluonNMSSM (double m1, double g, double gs, double alphas, double mWboson, DoubleMatrix &CPOMix, double beta, double mtop, double mbottom, double mcharm, double lam, int higgs, bool QCD)
 
double higgsAamplitudedecayZgammaNMSSM (double m1, double g, double gp, double alpha, double mWboson, double mZboson, DoubleMatrix &CPOMix, double beta, double mtop, double mbottom, double mcharm, double mch1, double mch2, double thetaL, double thetaR, double lam, int higgs)
 
double higgsCPevenamplitudedecaygammagammaNMSSM (double m1, double mtop, double mbottom, double mcharm, double mtau, double mWboson, double mHpm, double mchar1, double mchar2, double mscharmL, double mscharmR, double mstop1, double mstop2, double msstrangeL, double msstrangeR, double msbottom1, double msbottom2, double msmuonL, double msmuonR, double mstau1, double mstau2, DoubleMatrix &CPEMix, double beta, double g, double gp, double alpha, double thetat, double thetab, double thetatau, double thetaL, double thetaR, double At, double Ab, double Atau, double mu, double mueff, double lam, double kappa, double Alambda, int higgs)
 
double higgsCPevenamplitudedecaygluongluonNMSSM (double m1, double mtop, double mbottom, double mcharm, double mWboson, double mscharmL, double mscharmR, double mstop1, double mstop2, double msstrangeL, double msstrangeR, double msbottom1, double msbottom2, double msupL, double msupR, double msdownL, double msdownR, double runmt, double runmb, DoubleMatrix &CPEMix, double beta, double g, double gp, double gs, double alphas, double thetat, double thetab, double thetaL, double thetaR, double At, double Ab, double mu, double mueff, double lam, double kappa, double Alambda, int higgs, bool QCD)
 
double higgshamplitudedecayZgammaNMSSM (double m1, double g, double gp, double alpha, double mWboson, double mZboson, double mHpm, DoubleMatrix &CPEMix, double beta, double mtop, double mbottom, double mcharm, double mch1, double mch2, double thetaL, double thetaR, double lam, double kappa, double Alambda, double greekmu, double mueff, int higgs)
 
double higgshamplitudedecayneutineutjNMSSM (double m1, double mneuti, double mneutj, double g, double gp, DoubleMatrix &CPEMix, DoubleMatrix &mixNeut, double lam, double kappa, int neuti, int neutj, int higgs)
 
double higgsAamplitudedecayHpmWboson (double m1, double mWboson, double mHpm, double g, double thetaA, int pseudoscalar, bool nmssmIsIt)
 Does A/A2 -> H+W- (note multiply by 2 if want to include H-W+ as well as H+W- in this)
 
double CPEhCPOACPOACoupling (DoubleMatrix &CPEMix, DoubleMatrix &CPOMix, int higgs, int pseudoscalar1, int pseudoscalar2, int j, int k, int l)
 
double higgsCPevenamplitudedecayAANMSSM (double m1, double mA1, double mA2, double mWboson, double runmt, double runmb, double g, double gp, double beta, DoubleMatrix &CPEMix, DoubleMatrix &CPOMix, double lam, double kappa, double Alambda, double Akappa, double mueff, int higgs, int pseudoscalar1, int pseudoscalar2)
 
double higgsCPevenamplitudedecaypseudoscalarZNMSSM (double m1, double mA, double mZboson, double g, double gp, double beta, DoubleMatrix &CPEMix, DoubleMatrix &CPOMix, int higgs, int pseudoscalar)
 
double higgsCPevenamplitudedecayHpHmNMSSM (double m1, double mHpm, double mWboson, double g, double gp, double mtop, double mbottom, double beta, double lam, double mueff, double kappa, double Alambda, DoubleMatrix &CPEMix, int higgs)
 
double hHH3Couplings (DoubleMatrix &CPEMix, int higgsno, int higgs1, int higgs2, int x, int y, int z)
 
double higgsCPevenamplitudedecayhhorhHorHHNMSSM (double m1, double mh1, double mh2, double g, double gp, double mWboson, double mtop, double mbottom, double beta, double lam, double Alambda, double kappa, double Akappa, double mueff, DoubleMatrix &CPEMix, DoubleMatrix &CPOMix, int higgs1, int higgs2, int starthiggs)
 
double higgsA2amplitudedecayA1CPevenNMSSM (double m1, double mA1, double mh, double mWboson, double runmt, double runmb, double g, double gp, double beta, DoubleMatrix &CPEMix, DoubleMatrix &CPOMix, double lam, double kappa, double Alambda, double Akappa, double mueff, int higgs)
 
double higgsCPevenamplitudedecayWHpmNMSSM (double m1, double mWboson, double mHpm, double beta, double g, DoubleMatrix &CPEMix, int higgs)
 
double higgsCPevenamplitudedecaystopistopiNMSSM (double m1, double mstopi, double thetat, double runmt, double g, double gp, double mWboson, double beta, DoubleMatrix &CPEMix, double At, double mueff, double lam, int stop, int higgs)
 
double higgsCPevenamplitudedecaystopistopjNMSSM (double m1, double mstopi, double mstopj, double thetat, double runmt, double g, double gp, double mWboson, double beta, DoubleMatrix &CPEMix, double At, double mueff, double lam, int higgs)
 
double higgsCPevenamplitudedecaysbottomisbottomiNMSSM (double m1, double msbottomi, double thetab, double runmb, double g, double gp, double mWboson, double beta, DoubleMatrix &CPEMix, double Ab, double mueff, double lam, int sbottom, int higgs)
 
double higgsCPevenamplitudedecaysbottomisbottomjNMSSM (double m1, double msbottomi, double msbottomj, double thetab, double runmb, double g, double gp, double mWboson, double beta, DoubleMatrix &CPEMix, double Ab, double mueff, double lam, int higgs)
 
double higgsCPevenamplitudedecaystauistauiNMSSM (double m1, double mstaui, double thetatau, double runmtau, double g, double gp, double mWboson, double beta, DoubleMatrix &CPEMix, double Atau, double mueff, double lam, int stau, int higgs)
 
double higgsCPevenamplitudedecaystauistaujNMSSM (double m1, double mstaui, double mstauj, double thetatau, double runmtau, double g, double gp, double mWboson, double beta, DoubleMatrix &CPEMix, double Atau, double mueff, double lam, int higgs)
 
double stop2amplitudedecaystop1CPevenhiggsNMSSM (double mst2, double mst1, double mh, double mt, double thetat, DoubleMatrix &CPEMix, double beta, double mWboson, double g, double gp, double At, double mueff, double lam, int higgs)
 
double stop2amplitudedecaystop1CPoddhiggsNMSSM (double mst2, double mst1, double ma, double mt, double thetat, DoubleMatrix &CPOMix, double beta, double mWboson, double g, double At, double mueff, double lam, int higgs)
 
double sbottom2amplitudedecaysbottom1CPevenhiggsNMSSM (double msb2, double msb1, double mh, double mb, double thetab, DoubleMatrix &CPEMix, double beta, double mWboson, double g, double gp, double Ab, double mueff, double lam, int higgs)
 
double sbottom2amplitudedecaysbottom1CPoddhiggsNMSSM (double msb2, double msb1, double ma, double mb, double thetab, DoubleMatrix &CPOMix, double beta, double mWboson, double g, double Ab, double mueff, double lam, int higgs)
 
double stau2amplitudedecaystau1CPevenhiggsNMSSM (double mstau2, double mstau1, double mh, double mtau, double thetatau, DoubleMatrix &CPEMix, double beta, double mWboson, double g, double gp, double Atau, double mueff, double lam, int higgs)
 
double stau2amplitudedecaystau1CPoddhiggsNMSSM (double mstau2, double mstau1, double ma, double mtau, double thetatau, DoubleMatrix &CPOMix, double beta, double mWboson, double g, double Atau, double mueff, double lam, int higgs)
 
double chargino2amplitudedecaychargino1CPevenhiggsNMSSM (double mchar2, double mchar1, double mh, double g, double lam, double thetaL, double thetaR, DoubleMatrix &CPEMix, int higgs)
 
double chargino2amplitudedecaychargino1CPoddhiggsNMSSM (double mchar2, double mchar1, double mA, double g, double lam, double thetaL, double thetaR, DoubleMatrix &CPOMix, int higgs)
 
double neutralinoamplitudedecaycharginoWNMSSM (double mneut, double mchar, double mWboson, double g, double thetaL, double thetaR, DoubleMatrix &mixNeut, int neutralino, int chargino)
 
double neutralinoamplitudedecayneutralinoZNMSSM (double mneuti, double mneutj, double mZboson, double g, double gp, DoubleMatrix &mixNeut, int neutralinoi, int neutralinoj)
 
double neutralinoamplitudecharginoHpmNMSSM (double mneut, double mchar, double mHp, double g, double gp, double beta, double thetaL, double thetaR, double lam, DoubleMatrix &mixNeut, int neutralino, int chargino)
 
double neutralinoamplitudedecayneutralinoCPevenhiggsNMSSM (double mneuti, double mneutj, double mhiggs, double g, double gp, double lam, double kappa, DoubleMatrix &mixNeut, DoubleMatrix &CPEMix, int neutralinoi, int neutralinoj, int higgs)
 
double neutralinoamplitudedecayneutralinoCPoddhiggsNMSSM (double mneuti, double mneutj, double ma, double g, double gp, double lam, double kappa, DoubleMatrix &mixNeut, DoubleMatrix &CPOMix, int neuti, int neutj, int higgsa)
 
double neutralinoamplitudedecaysfermionfermionfirst2genNMSSM (double mneut, double msf, double mf, double g, double gp, DoubleMatrix &mixNeut, int neut, char type, char LorR)
 type indicates type of fermion, 'u' for up type quark, 'd' for down type quark, 'l' for charged lepton, 'n' for neutrino, note ignoring yukawa of fermion here as first 2 gen
 
double neutralinoamplitudestoptopNMSSM (double mneut, double mst, double mt, double g, double gp, double thetat, double beta, double mWboson, DoubleMatrix &mixNeut, double runmt, int neut, int stop)
 
double neutralinoamplitudesbottombottomNMSSM (double mneut, double msb, double mb, double g, double gp, double thetab, double beta, double mWboson, DoubleMatrix &mixNeut, double runmb, int neut, int sbottom)
 
double neutralinoamplitudestautauNMSSM (double mneut, double mstau, double mtau, double g, double gp, double thetatau, double beta, double mWboson, DoubleMatrix &mixNeut, double runmtau, int neut, int stau)
 
double neutralinoamplitudestauneutrinotauneutrinoNMSSM (double mneut, double mstaunu, double mtaunu, double g, double gp, DoubleMatrix &mixNeut, int neut)
 
double squarkamplitudedecayquarkneutralinoNMSSM (double m1, double mq, double mneut, double g, double gp, DoubleMatrix &mixNeut, char uord, char LorR, int neut)
 
double sleptonamplitudedecayleptonneutralinoNMSSM (double m1, double ml, double mneut, double g, double gp, DoubleMatrix &mixNeut, char uord, char LorR, int neut)
 
double stopamplitudedecaytopneutralinoNMSSM (double m1, double mt, double mneut, double g, double gp, double thetat, DoubleMatrix &mixNeut, double runmt, double mWboson, double beta, int stop, int neut)
 
double sbottomamplitudedecaybottomneutralinoNMSSM (double m1, double mb, double mneut, double g, double gp, double thetab, DoubleMatrix &mixNeut, double runmb, double mWboson, double beta, int sbottom, int neut)
 
double stauamplitudedecaytauneutralinoNMSSM (double m1, double mtau, double mneut, double g, double gp, double thetatau, DoubleMatrix &mixNeut, double runmtau, double mWboson, double beta, int stau, int neut)
 
double charginoiamplitudedecayneutralinojHpmNMSSM (double mchar, double mneut, double mHpm, double g, double gp, double thetaL, double thetaR, double beta, DoubleMatrix &mixNeut, double lam, int chargino, int neut)
 
double charginoiamplitudedecayneutralinojWNMSSM (double mchar, double mneut, double mWboson, double g, double gp, double thetaL, double thetaR, DoubleMatrix &mixNeut, int chargino, int neut)
 
double HpmamplitudecharginojneutralinoiNMSSM (double mHp, double mchar, double mneut, double g, double gp, double beta, double thetaL, double thetaR, double lam, DoubleMatrix &mixNeut, int neutralino, int chargino)
 
double snutauamplitudedecaynutauneutralinoNMSSM (double m1, double mneut, double g, double gp, DoubleMatrix &mixNeut, int neutralino)
 
DoubleVector squarkmixcharginocouplings (double g, double theta, double beta, double gammaL, double gammaR, double runmt, double runmb, double mWboson, double mch1, double mch2, int torb)
 Functions that calculate the couplings:
 
DoubleVector higgsphisamecharginocouplings (double alpha, double beta, double thetaL, double thetaR)
 calculates the couplings of a neutral higgs (h,H,A) to Wtildai Wtildai - i.e. to two charginos of the same type (mass)
 
DoubleVector higgsphidifcharginocouplings (double alpha, double beta, double thetaL, double thetaR)
 calculates the couplings of a netural higgs (h,H,A) to Wtildai Wtildaj - i.e. to two charginos of different type (mass)
 
DoubleVector higgshsquarksamehandcouplings (double mWboson, double g, double gp, double alpha, double beta, double mupq, double mdownq)
 calculates the couplings of light scalar higgs h to two squarks of same handedness
 
DoubleVector higgshsquarkdiffhandcouplings (double mWboson, double g, double alpha, double beta, double mupq, double mdownq, double greekmu, double Aup, double Adown)
 calculates the couplings of light scalar higgs h to two squarks of different handedness
 
DoubleVector higgsHsquarksamehandcouplings (double mWboson, double g, double gp, double alpha, double beta, double mupq, double mdownq)
 calculates the couplings of heavy scalar higgs H to two squarks of same handedness
 
DoubleVector higgsHsquarkdiffhandcouplings (double mWboson, double g, double alpha, double beta, double mupq, double mdownq, double greekmu, double Aup, double Adown)
 calculates the couplings of heavy scalar higgs H to two squarks of different handedness
 
DoubleVector higgshsleptonsamehandcouplings (double mWboson, double g, double gp, double alpha, double beta, double mel)
 calculates the couplings of light scalar higgs h to two sleptons of same handedness
 
DoubleVector higgshsleptondiffhandcouplings (double mWboson, double g, double alpha, double beta, double mel, double greekmu, double Ae)
 calculates the couplings of light scalar higgs h to two sleptons of different handedness
 
DoubleVector higgsHsleptonsamehandcouplings (double mWboson, double g, double gp, double alpha, double beta, double mel)
 calculates the couplings of heavy scalar higgs H to two sleptons of same handedness
 
DoubleVector higgsHsleptondiffhandcouplings (double mWboson, double g, double alpha, double beta, double mel, double greekmu, double Ae)
 calculates the couplings of heavy scalar higgs H to two sleptons of different handedness
 
DoubleVector higgsHplussquarkcouplings (double mWboson, double g, double beta, double mup, double mdown, double greekmu, double Au, double Ad)
 calculates the couplings of charged scalar higgs H+ to two squarks
 
DoubleVector foftau (double mpart, double mcomp)
 Function to calculate the gluino decay amplitudes. More...
 
DoubleVector goftau (double mpart, double mcomp)
 g(tau) function for use in h->Z gamma
 
Complex fofqsq (double qSq)
 
Complex bw (double mSq, double gamma, double qSq)
 
double chToN2piInt (double qSq, const DoubleVector &v)
 
double charginoToNeutralino2pion (const MssmSoftsusy *m)
 

Variables

const double GFosqrt2 = GMU / root2
 

Detailed Description

Project: SOFTSUSY Author: Tom Cridge, Ben Allanach Manual: hep-ph/0104145, Comp. Phys. Comm. 143 (2002) 305 Webpage: http://softsusy.hepforge.org/

Function Documentation

double alpharun ( double  mu,
double  mu0,
double  alphamu0 
)

Function that runs alpha to desired scale using 1-loop renormalisation group equations, inc. MSSM particles hence 1 rather than -19/6 of SM.

MSSM

double alphasrun ( double  mu,
double  mu0,
double  alphasmu0 
)

Function that runs alphas to desired scale using 1-loop renormalisation group equations, inc. MSSM gluinos and squarks (hence 2/3 not 2/7)

MSSM

DoubleVector Ebbarmaxmin ( double  mass1,
double  mass2,
double  mass3,
double  mass4,
double  Et 
)

function required for gluino 3 body decays to chargino and q q'bar, mass1 is gluino mass, mass2 is top mass, mass3 is bottom mass, mass4 is chargino mass

Avoid issues of finite precision meaning you get a very small negative squareplus at Amin (smin) rather than 0, this can cause issues when you take the squareroot of lambda, giving a nan

I have -pow(mass3,2) here whereas T&B have + pow(mass3,2), I have changed the sign to agree with SPheno, note however this actually makes negligible difference due to the smallness of the b mass

I have -pow(mass3,2) here whereas T&B have + pow(mass3,2), I have changed the sign to agree with SPheno, note however this actually makes negligible difference due to the smallness of the b mass

DoubleVector Etbarmaxmin ( double  m1,
double  m2,
double  massq,
double  Et 
)

required for many of the 1->3 integrals, this gives E max and min of t bar for given Et therefore different to overall limits of integration on Et which are Etmax, Etmin

B may become very very small and negative at the tails of this squareroot, this causes problems as we get sqrt(-ve) therefore set B to 0 here as it's very small anyway so has negligible effect on the overall answer.

Etbarmax

Etbarmin

DoubleVector foftau ( double  mpart,
double  mcomp 
)

Function to calculate the gluino decay amplitudes.

Function Declarations used to calculate Partial Widths in decays.cpp.

f(tau) function for use in h->gamma gamma or Z gamma

double gintegral1hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral1Hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral1Zsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral2hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral2Hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral2Zsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral3hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral3Hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral3Zsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral4hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral4Hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral4Zsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral5hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral5Hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral5Zsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral6hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral6Hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral6Zsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral7hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral7Hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral7Zsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral8hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral8Hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral8Zsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gluinoamplitudedecaydgausscharginoqqpbarfirsttwogen ( double  mgluino,
double  mchargino,
double  mquark,
double  mquarkp,
double  msqL,
double  msqpL,
double  g,
double  thetaL,
double  thetaR,
double  alphas,
int  charg,
bool  onetothree 
)

Functions for 1->3 decays via dgauss:

1->3 decay not relevant here if one to two decay open

chargino1 decaying

chargino2 decaying

Note mq isn't important really for these modes as they are first two gen quarks

double gluinoamplitudedecaydgausschartbbar ( double  mgluino,
double  mst1,
double  mst2,
double  msb1,
double  msb2,
double  mtop,
double  mbottom,
double  mchar,
double  alphas,
double  thetat,
double  thetab,
double  MWboson,
double  g,
double  gp,
double  gammaL,
double  gammaR,
double  beta,
double  runmt,
double  runmb,
int  chargino,
bool  onetothree 
)

Different to T&B, they have + sin(2*thetat)*G8, I follow SPheno

Different to T&B, they have - sin(2*thetat)*G8, I follow SPheno

Global minus sign difference cf T&B, I follow SPheno

Different to T&B, they have - alphasb1ch*betasb1ch*G3sb1, I follow SPheno

Different to T&B, they have - alphasb2ch*betasb2ch*G3sb2, I follow SPheno

Taken mb -> 0 limit in squared matrix element (but not in phase space) so no sb1sb2 interference term

The sign in front of the G7st1sb1 and G5st1sb1 terms has been changed from that given in Baer and Tata in order to agree with SPheno.

The sign in front of the G7st1sb1 and G5st1sb1 terms has been changed from that given in Baer and Tata in order to agree with SPheno.

The sign in front of the G7st1sb1 and G5st1sb1 terms has been changed from that given in Baer and Tata in order to agree with SPheno.

The sign in front of the G7st1sb1 and G5st1sb1 terms has been changed from that given in Baer and Tata in order to agree with SPheno.

double gluinoamplitudedecaydgaussneutralinoqqpbarfirsttwogen ( double  mgluino,
double  mneutralino,
double  msqL,
double  msqR,
double  mquark,
double  g,
double  gp,
DoubleMatrix mixNeut,
double  alphas,
char  uord,
int  neut,
bool  onetothree 
)

m1 is mgluino, m2 is neutralinoi mass, m3 is sqL mass, m4 is sqR mass, m5 is quark mass but assumed zero in calculation here, just used to check allowed for now; char uord tells us if the quark is u type 'u' or d type 'd', int neut tells us which neutralino it is

Hintegral.

1->3 decay not relevant here if one to two decay open

double gluinoamplitudedecaydgaussneutralinottbar ( double  mgluino,
double  mst1,
double  mst2,
double  mneutralino,
double  mt,
double  mWboson,
double  g,
double  gp,
double  thetat,
double  beta,
double  alphas,
DoubleMatrix mixNeut,
double  runmt,
int  neutralino,
bool  onetothree,
char  torb 
)

calculates PW for gluino -> neutralino + q qbar pair where q are t

Note the effect of the complex couplings and the pm factors for negative masses cancel out as the couplings always appear in pairs so multiplying them gives an extra minus sign when they are purely imaginary, but this extra minus sign is cancelled out by the extra minus sign in the pm factor. Therefore really the additional minus signs come from the fact I've used the neutralino mass itself throughout my calculation (rather than its absolute value) which therefore naturally introduces additional minus signs.

Gammast1st2 terms as from T&B but with sign change for X term and also the factor of -(cos^2(thetat)-sin^2(thetat))(st1alpha1*st2alpha1+st1beta1*st2beta1) T&B has in the chiprime term has been changed to (cos^2(thetat)+sin^2(thetat))(st1alpha1*st2alpha1 - st1beta1*st2beta1) = 1*(st1alpha1*st2alpha1 - st1beta1*st2beta1), in order in both cases to agree with SPHENO

Extra terms SPHENO has in Gammast1st2 not present in T&B

double gneuticharjffp1sf1sf2dgauss ( double  E)

m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msf1, m6 = msf2

Avoid small negative values of squareplus at upper boundary where theoretically s = 0 exactly.

double gneuticharjffp2sf1sf2dgauss ( double  E)

m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msf1, m6 = msf2

Avoid small negative values of squareplus at upper boundary where theoretically s = 0 exactly.

double gneuticharjffp3sf1sf2dgauss ( double  E)

m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msf1, m6 = msf2

Avoid small negative values of squareplus at upper boundary where theoretically s = 0 exactly.

double gneuticharjffp4sf1sf2dgauss ( double  E)

m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msf1, m6 = msf2

Avoid small negative values of squareplus at upper boundary where theoretically s = 0 exactly.

double gneutineutjffZ1dgauss ( double  s)

m1 = mneuti, m4 = mneutj, mq = mf, MZboson = mZboson

Set to 0 to avoid numerical precision causing a very small but positive squareminus1 at smax when it should be exactly 0, this can cause problems as it would make lambda1 the sqrt of a negative number (as squareplus1 is negative), avoid this by setting to 0

double gneutineutjffZ2dgauss ( double  s)

Set to 0 to avoid numerical precision causing a very small but positive squareminus1 at smax when it should be exactly 0, this can cause problems as it would make lambda1 the sqrt of a negative number (as squareplus1 is negative), avoid this by setting to 0

double gneutineutjffZ3dgauss ( double  s)

Set to 0 to avoid numerical precision causing a very small but positive squareminus1 at smax when it should be exactly 0, this can cause problems as it would make lambda1 the sqrt of a negative number (as squareplus1 is negative), avoid this by setting to 0

double gneutineutjffZ4dgauss ( double  s)

Set to 0 to avoid numerical precision causing a very small but positive squareminus1 at smax when it should be exactly 0, this can cause problems as it would make lambda1 the sqrt of a negative number (as squareplus1 is negative), avoid this by setting to 0

double gpsitildadgauss ( double  Et)

< this can happen erronesouly at very end of range due to finite precision used, squareplus should actually then be very very small and +ve

double higgsAamplitudedecaygammagammaNMSSM ( double  m1,
double  g,
double  gprime,
double  alpha,
double  mWboson,
DoubleMatrix CPOMix,
double  beta,
double  mtop,
double  mbottom,
double  mcharm,
double  mtau,
double  mch1,
double  mch2,
double  thetaL,
double  thetaR,
double  lam,
int  higgs 
)

Initialise these components

double higgsAamplitudedecaygluongluonNMSSM ( double  m1,
double  g,
double  gs,
double  alphas,
double  mWboson,
DoubleMatrix CPOMix,
double  beta,
double  mtop,
double  mbottom,
double  mcharm,
double  lam,
int  higgs,
bool  QCD 
)

Initialise these components

No squark loop contributions as CP odd higgs

No squark loop contributions as CP odd higgs

Pass hggQCDcorrections 'A' as it just matters whether it is CPeven (so 95/4 in FQCD) or CPodd (so 97/4 in FQCD)

double higgsAamplitudedecayZgammaNMSSM ( double  m1,
double  g,
double  gp,
double  alpha,
double  mWboson,
double  mZboson,
DoubleMatrix CPOMix,
double  beta,
double  mtop,
double  mbottom,
double  mcharm,
double  mch1,
double  mch2,
double  thetaL,
double  thetaR,
double  lam,
int  higgs 
)

Initialise these components

double higgsCPevenamplitudedecayAANMSSM ( double  m1,
double  mA1,
double  mA2,
double  mWboson,
double  runmt,
double  runmb,
double  g,
double  gp,
double  beta,
DoubleMatrix CPEMix,
DoubleMatrix CPOMix,
double  lam,
double  kappa,
double  Alambda,
double  Akappa,
double  mueff,
int  higgs,
int  pseudoscalar1,
int  pseudoscalar2 
)

Multiplied by 2 later if A A2 to account for indistinguishability

double higgsCPevenamplitudedecaygammagammaNMSSM ( double  m1,
double  mtop,
double  mbottom,
double  mcharm,
double  mtau,
double  mWboson,
double  mHpm,
double  mchar1,
double  mchar2,
double  mscharmL,
double  mscharmR,
double  mstop1,
double  mstop2,
double  msstrangeL,
double  msstrangeR,
double  msbottom1,
double  msbottom2,
double  msmuonL,
double  msmuonR,
double  mstau1,
double  mstau2,
DoubleMatrix CPEMix,
double  beta,
double  g,
double  gp,
double  alpha,
double  thetat,
double  thetab,
double  thetatau,
double  thetaL,
double  thetaR,
double  At,
double  Ab,
double  Atau,
double  mu,
double  mueff,
double  lam,
double  kappa,
double  Alambda,
int  higgs 
)

Initialise

double higgsCPevenamplitudedecaygluongluonNMSSM ( double  m1,
double  mtop,
double  mbottom,
double  mcharm,
double  mWboson,
double  mscharmL,
double  mscharmR,
double  mstop1,
double  mstop2,
double  msstrangeL,
double  msstrangeR,
double  msbottom1,
double  msbottom2,
double  msupL,
double  msupR,
double  msdownL,
double  msdownR,
double  runmt,
double  runmb,
DoubleMatrix CPEMix,
double  beta,
double  g,
double  gp,
double  gs,
double  alphas,
double  thetat,
double  thetab,
double  thetaL,
double  thetaR,
double  At,
double  Ab,
double  mu,
double  mueff,
double  lam,
double  kappa,
double  Alambda,
int  higgs,
bool  QCD 
)

Initialise

Pass hggQCDcorrections 'h' as it just matters whether it is CPeven (so 95/4 in FQCD) or CPodd (so 97/4 in FQCD)

double higgshamplitudedecayneutineutjNMSSM ( double  m1,
double  mneuti,
double  mneutj,
double  g,
double  gp,
DoubleMatrix CPEMix,
DoubleMatrix mixNeut,
double  lam,
double  kappa,
int  neuti,
int  neutj,
int  higgs 
)

accounts for decay being neuti neutj or neutj neuti when i!=j

for same neutralino they are QM indistinguishable so don't get factor of 2

double higgshamplitudedecayZgammaNMSSM ( double  m1,
double  g,
double  gp,
double  alpha,
double  mWboson,
double  mZboson,
double  mHpm,
DoubleMatrix CPEMix,
double  beta,
double  mtop,
double  mbottom,
double  mcharm,
double  mch1,
double  mch2,
double  thetaL,
double  thetaR,
double  lam,
double  kappa,
double  Alambda,
double  greekmu,
double  mueff,
int  higgs 
)

Initialise these components

ignored corrections for now - no top or bottom loop corrections ///MUP in NMSSMTools is a fine-tuning parameter - set 0

double neutralinoamplitudedecaycharginoffprimebar ( double  mneutralinoi,
double  msfp1,
double  msfp2,
double  msf1,
double  msf2,
double  mWboson,
double  mHP,
double  mcharginoj,
double  mfp,
double  mf,
double  thetaqp,
double  thetaq,
double  g,
double  gp,
double  alpha,
double  beta,
double  thetaL2,
double  thetaR2,
double  runmqp,
double  runmq,
DoubleMatrix mixNeut,
int  ineutralino,
int  jchargino,
bool  onetothree,
char  qorl,
char  norc 
)

Just usual yukawa for up type

Just usual yukawa for down type

correction factor for negative masses

correction factor for negative masses

correction factor for if it's chargino -> neutralino fp fbar rather than neutralino -> chargino fpbar f

No snuR exists so only one sfp contribution

No snuR exists so only one sfp contribution

GammaW

Hpm1 contribution (W+ goldstone):

Hpm2 contribution (Actual Hpm):

Sfp Sfp diagonal (Remember fp is u-type fermion)

Sf Sf diagonal

Sfp t sf u interference Sfp 1 sf 2

Sfp 1 Sf 1 interference

Sfp 2 Sf 2 interference

Sfp 2 Sf 1 interference

W-Hpm interference

W-goldstone interference

W Sfp 1 interference

W Sfp 2 interference

W Sf1 interference

W Sf2 interference

H+ goldstone interference

goldstone - sfp1 interference

swap which integral goes with which couplingcombo

goldstone - sfp2 interference

H+ - sfp1 interference

H+ - sfp2 interference

goldstone - sf1 interference

goldstone - sf2 interference

Hpm - sf2 interference

Sfp Sfp interference

Sf - Sf interference

double neutralinoamplitudedecaydgaussneutralinoffbar ( double  mneutralinoi,
double  msf1,
double  msf2,
double  mZboson,
double  mhiggsl,
double  mhiggsH,
double  mhiggsA,
double  mneutralinoj,
double  mf,
double  alphas,
double  thetaq,
double  mWboson,
double  g,
double  gp,
double  alpha,
double  beta,
double  runmq,
DoubleMatrix mixNeut,
int  ineutralino,
int  jneutralino,
bool  onetothree,
char  uordornuorl 
)

correction factor for negative masses

correction factor for negative masses

First sf t sf u msf1-msf1, msf1-msf2, msf2-msf2 components:

the problem is in here - DEBUG

sf sf diag contribution 2x as t and u same

sf sf non diag 2x as t and u same

Pseudoscalar A contribution:

Have an additional pseudoscalar goldstone with mass of Z due to being in Feynman gauge, to add in the longitudinal polarisation of the Z

set so can use same integrals as for pseudoscalar A boson but now with Z mass

here set mh = mA as using the integrands written for h with mh -> mA

here set mh = mA as using the integrands written for h with mh -> mA

Goldstone - sf interference:

here set mh = mZ as using the integrands written for h with mh -> mA -> mZ

here set mh = mZ as using the integrands written for h with mh -> mA -> mZ

Goldstone-A interference

Coupling combos:

void printRowPDG ( ostream &  fout,
double  x 
)

make it return a character when you've worked out the equivalent of printf

Traps -0.0

double sleptonamplitudedecayleptonneutralinoNMSSM ( double  m1,
double  ml,
double  mneut,
double  g,
double  gp,
DoubleMatrix mixNeut,
char  uord,
char  LorR,
int  neut 
)

no sneutrinoR

double snutauamplitudedecaynutauneutralinoNMSSM ( double  m1,
double  mneut,
double  g,
double  gp,
DoubleMatrix mixNeut,
int  neutralino 
)

c2 is c(2) from above formulae

double Zfunc ( double  m1,
double  mq,
double  m,
double  Etbarmax,
double  Etbarmin 
)

Integrand functions for 1->3 decays.

required in many of the 1->3 integrals