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

Functions

double charginoToNeutralino1pion (const MssmSoftsusy *m)
 First, do hadronic decays. More...
 
double gluinoamplitudedecay (double m1, double m2, double m3, double alphastrong)
 
double gluinoamplitudedecaymix (double m1, double m2, double m3, double alphastrong, double squarkmix, double theta)
 
double squarkamplitudedecaygluino (double m1, double m2, double m3, double alphastrong)
 
double squarkamplitudedecaygluinomix (double m1, double m2, double m3, double alphastrong, double squarkmix, double theta)
 
double squarkamplitudedecaycharginoW1 (double m1, double m2, double m3, double g, double gamma)
 
double squarkamplitudedecaycharginoW2 (double m1, double m2, double m3, double g, double gamma)
 
double squark1amplitudedecaycharginoW1mix (double m1, double m2, double m3, double g, double gammaL, double gammaR, double theta, double beta, double mWboson, double runmt, double runmb, double torb)
 the variable torb depends on if it is stop (torb=1) or sbottom (torb =2) decaying and changes AprimeuW1 to AprimedW1 accordingly
 
double squark1amplitudedecaycharginoW2mix (double m1, double m2, double m3, double g, double gammaL, double gammaR, double theta, double beta, double mWboson, double runmt, double runmb, double torb)
 the variable torb depends on if it is stop (torb=1) or sbottom (torb =2) decaying and changes AprimeuW2 to AprimedW2 accordingly
 
double squark2amplitudedecaycharginoW1mix (double m1, double m2, double m3, double g, double gammaL, double gammaR, double theta, double beta, double mWboson, double runmt, double runmb, double torb)
 the variable torb depends on if it is stop (torb=1) or sbottom (torb =2) decaying and changes AprimeuW1 to AprimedW1 accordingly
 
double squark2amplitudedecaycharginoW2mix (double m1, double m2, double m3, double g, double gammaL, double gammaR, double theta, double beta, double mWboson, double runmt, double runmb, double torb)
 the variable torb depends on if it is stop (torb=1) or sbottom (torb =2) decaying and changes AprimeuW2 to AprimedW2 accordingly
 
double squarkLamplitudedecayneutralino (double m1, double m2, double m3, double g, double gprime, DoubleMatrix &mixNeut, int neutralino, int uord)
 neutralino takes values of 1, 2, 3, or 4 and denotes which neutralino mass eigenstate we decay into, uord takes value 1 for up quarks (or charm quarks) and -1 for down quarks (or strange quarks) in order to change the sign of the g*neutralinomixingmatrix[2][element] in AqZ accordingly
 
double squarkRamplitudedecayneutralino (double m1, double m2, double m3, double g, double gprime, DoubleMatrix &mixNeut, int neutralino, int uord)
 neutralino takes values of 1, 2, 3, or 4 and denotes which neutralino mass eigenstate we decay into, uord takes value 1 for up quarks (or charm quarks) and -1 for down quarks (or strange quarks) in order to change the sign and magnitude of the coefficient BqZ accordingly More...
 
double squark3amplitudedecayneutralino (double m1, double m2, double m3, double mWboson, double theta, double beta, DoubleMatrix &mixNeut, double g, double gp, double runmq, int squark, int oneortwo, int neutralino)
 
double squark3amplitudedecaysquark3Wboson (double m1, double m2, double m3, double g, double thetat, double thetab, int m1torb, int m1oneortwo, int m3torb, int m3oneortwo)
 m1torb tells the function if the initial squark is a stop or sbottom, m1oneortwo tells it whether it's the lighter or heavier squark, similarly for the final state squark with m3torb and m3oneortwo More...
 
double squark3amplitudedecaychargedHiggssquark3 (double m1, double m2, double m3, double g, double mWboson, double beta, double thetat, double thetab, double greekmu, double At, double Ab, double mt, double mb, int t1or2, int b1or2)
 
double squark32amplitudedecayneutralHiggssquark3 (double m1, double m2, double m3, double g, double gp, double mWboson, double beta, double alpha, double thetat, double thetab, double greekmu, double At, double Ab, double mt, double mb, int torb, char phi)
 
double squark32amplitudedecaysquark3Zboson (double m1, double m2, double m3, double g, double gp, double theta)
 
double sleptonamplitudedecayleptonneutralino (double m1, double m2, double m3, double g, double gp, DoubleMatrix &mixNeut, char LorR, int neutralino)
 
double sneutrinoamplitudedecayneutrinoneutralino (double m1, double m2, double m3, double g, double gp, DoubleMatrix &mixNeut, int neutralino)
 
double sleptonamplitudedecaychargino (double m1, double m2, double m3, double g, double theta, int chargino)
 for both sleptonL decays to charginos + neutrinos and for sneutrino decays to lepton + charginos - just change theta from thetaL in first case to thetaR in second case More...
 
double stauamplitudedecaytauneutralino (double m1, double m2, double m3, double g, double gp, double mWboson, DoubleMatrix &mixNeut, double theta, double beta, int oneortwo, int neutralino)
 
double stausneutrinoamplitudedecaytauneutrinoneutralino (double m1, double m2, double m3, double g, double gp, DoubleMatrix &mixNeut, int neutralino)
 
double stauamplitudedecaynutauchargino (double m1, double m2, double m3, double g, double mWboson, double theta, double thetaL, double beta, double mtau, int oneortwo, int chargino)
 
double stausneutrinoamplitudedecaytauchargino (double m1, double m2, double m3, double g, double mWboson, double beta, double thetaL, double thetaR, int chargino)
 
double stauamplitudedecaysnustauHminus (double m1, double m2, double m3, double g, double mWboson, double beta, double thetatau, double mtau, double greekmu, double Atau, int oneortwo)
 Also does decay mode snustau to Hplus and stau1/2 just with m1, m2 and m3 permuted.
 
double stauamplitudedecaysnustauWboson (double m1, double m2, double m3, double g, double thetatau, int oneortwo)
 m3 must be mw here
 
double stau2amplitudedecaystau1Zboson (double m1, double m2, double m3, double g, double gp, double thetatau)
 m3 must be mz here
 
double stau2amplitudedecaystau1phi (double m1, double m2, double m3, double g, double gp, double thetatau, double beta, double alpha, double mWboson, double mtau, double greekmu, double Atau, char phi)
 
double charginoamplitudedecayquarksquarkL (double m1, double m2, double m3, double g, double theta, int chargino)
 quark mass is m2 More...
 
double charginoamplitudedecayquarksquarkmix (double m1, double m2, double m3, double g, double theta, double thetaL, double thetaR, double beta, double runmt, double runmb, double mWboson, int chargino, int upordowntypesquark, int oneortwo)
 quark mass is m2 More...
 
double charginoamplitudedecayleptonsleptonL (double m1, double m2, double m3, double g, double thetaLorR, int chargino)
 lepton mass is m2, use thetaR for decays to sneutrinos and leptons, use thetaL for decays to sleptons neutrinos More...
 
double charginoamplitudedecaysnutautau (double m1, double m2, double m3, double g, double thetaL, double thetaR, double beta, double mWboson, int chargino)
 m2 must be tau mass More...
 
double charginoamplitudedecaystaunutau (double m1, double m2, double m3, double g, double thetaL, double thetaR, double thetatau, double beta, double mWboson, double mtau, int oneortwo, int chargino)
 m2 must be nutau mass (i.e. 0) More...
 
double charginoamplitudedecayWbosonneutralino (double m1, double m2, double m3, double g, double thetaL, double thetaR, DoubleMatrix &mixNeut, int chargino, int neutralino)
 m2 must be Wboson mass
 
double charginoamplitudedecayHminusneutralino (double m1, double m2, double m3, double g, double gp, double thetaL, double thetaR, double beta, DoubleMatrix &mixNeut, int chargino, int neutralino)
 m2 must be Hminus mass
 
double chargino2amplitudedecaychargino1Zboson (double m1, double m2, double m3, double g, double gp, double thetaL, double thetaR)
 m2 must be Zboson mass
 
double chargino2amplitudedecaychargino1neutHiggs (double m1, double m2, double m3, double g, double gp, double thetaL, double thetaR, double beta, double alpha, char phi)
 m2 must be neutral Higgs mass More...
 
double neutralinoamplitudedecayquarksquarkLorR (double m1, double m2, double m3, double g, double gp, DoubleMatrix &mixNeut, int uordtype, char LorR, int neutralino)
 m2 must be quark mass More...
 
double neutralinoamplitudedecayleptonsleptonLorR (double m1, double m2, double m3, double g, double gp, DoubleMatrix &mixNeut, char LorR, int neutralino)
 m2 must be lepton mass More...
 
double neutralinoamplitudedecayneutrinosneutrinoL (double m1, double m2, double m3, double g, double gp, DoubleMatrix &mixNeut, int neutralino)
 m2 must be neutrino mass (i.e. 0)
 
double neutralinoamplitudedecaysquark3quarkmix (double m1, double m2, double m3, double mWboson, double theta, double beta, DoubleMatrix &mixNeut, double g, double gp, double runmq, int squark, int oneortwo, int neutralino)
 m2 must be quark mass More...
 
double neutralinoamplitudedecaystautau (double m1, double m2, double m3, double mWboson, double theta, double beta, DoubleMatrix &mixNeut, double g, double gp, int oneortwo, int neutralino)
 m2 must be tau (i.e. lepton) mass More...
 
double neutralinoamplitudedecaycharginoWboson (double m1, double m2, double m3, double g, double thetaL, double thetaR, DoubleMatrix &mixNeut, int neutralino, int chargino)
 m2 must be W boson mass (expect to be pole mass 80.4...), neutralino is i in T&B whilst chargino is j
 
double neutralinoamplitudedecaycharginoHplus (double m1, double m2, double m3, double g, double gp, double beta, double thetaL, double thetaR, DoubleMatrix &mixNeut, int neutralino, int chargino)
 m2 must be Hplus mass, neutralino is i in T&B whilst chargino is j
 
double neutralinoamplitudedecayneutralinoZboson (double m1, double m2, double m3, double g, double gp, DoubleMatrix &mixNeut, int ineutralino, int fneutralino)
 m2 must be Z mass, ineutralino is i in T&B whilst fneutralino is j
 
double neutralinoamplitudedecayneutralinoneutHiggs (double m1, double m2, double m3, double g, double gp, DoubleMatrix &mixNeut, double mixingangle, int ineutralino, int fneutralino, char phi)
 m2 must be phi mass, ineutralino is i in T&B whilst fneutralino is j More...
 
double higgslorHamplitudedecayquarkantiquark (double m1, double m2, double g, double alpha, double beta, double mWboson, int uord, char lorH, DoubleMatrix &CPEMix, bool NMSSMmodel, bool QCD, double alphas)
 uord indicates if it's an up type quark (1) or down type quark (0) to choose which trig functions to act on the mixing angles (which parts of the mixing matrices), and int lorH tells the program if it's a light higgs (l) or heavy higgs (H) decaying in order to change the trig functions acting on the mixing angles; note can also use this formula for decays of higgs to leptons as these are in this sense down-type More...
 
double higgsCPevenamplitudedecayqqbarQCDcorrections (double amplitude, double alphas, double x)
 
double higgsAamplitudedecayquarkantiquark (double m1, double m2, double g, double beta, double mWboson, int uord, bool QCD, double alphas)
 uord indicates if it's an up type quark (1) or down type quark (0) to choose which trig functions to act on the mixing angles (which parts of the mixing matrices), note can also use this formula for decays of higgs to leptons as these are in this sense down-type
 
double higgsCPoddamplitudedecayqqbarQCDcorrections (double amplitude, double alphas, double x)
 
double higgsAamplitudedecayquarkantiquarkNMSSM (double m1, double m2, double beta, DoubleMatrix &CPOMix, int uord, int higgs, bool QCD, double alphas)
 uord indicates if it's an up type quark (1) or down type quark (0) to choose which trig functions to act on the mixing angles (which parts of the mixing matrices), note can also use this formula for decays of higgs to leptons as these are in this sense down-type
 
double higgsphiamplitudedecayneutralinoneutralino (double m1, double m2, double m3, double g, double tanthetaW, double mixingangle, DoubleMatrix &mixNeut, int ineutralino, int fneutralino, char phi)
 phi tells it whether a "h", "H" or "A" is decaying More...
 
double higgsAamplitudedecayneutralinoneutralinoNMSSM (double m1, double m2, double m3, double g, double tanthetaW, double lam, double kappa, DoubleMatrix &CPOMix, DoubleMatrix &mixNeut, int ineutralino, int jneutralino, int pseudoscalar)
 
double higgsphiamplitudedecaysamechargino (double m1, double m2, double g, double thetaL, double thetaR, double alpha, double beta, int chargino, char phi)
 phi tells it whether a "h", "H" or "A" is decaying More...
 
double higgsphiamplitudedecaysamecharginoNMSSM (double m1, double m2, double g, double thetaL, double thetaR, double lam, DoubleMatrix &CPEMix, int chargino, int higgs)
 
double higgsAamplitudedecaysamecharginoNMSSM (double m1, double m2, double g, double thetaL, double thetaR, double alpha, double lam, DoubleMatrix &CPOMix, int chargino, int pseudoscalar)
 
double higgsphiamplitudedecaydiffcharginoNMSSM (double m1, double m2, double m3, double g, double thetaL, double thetaR, double lam, DoubleMatrix &CPEMix, int higgs)
 
double higgsphiamplitudedecaydifchargino (double m1, double m2, double m3, double g, double thetaL, double thetaR, double alpha, double beta, char phi)
 phi tells it whether a "h", "H" or "A" is decaying More...
 
double higgsAamplitudedecaydifcharginoNMSSM (double m1, double m2, double m3, double g, double thetaL, double thetaR, double alpha, double lam, DoubleMatrix &CPOMix, int pseudoscalar)
 
double higgshamplitudedecayAA (double m1, double m2, double g, double gp, double alpha, double beta, double mWboson)
 calculates partial width for h->AA More...
 
double higgsHamplitudedecayhh (double m1, double m2, double g, double gp, double alpha, double beta, double mWboson)
 calculates partial width for h->hh More...
 
double higgsHamplitudedecayAA (double m1, double m2, double g, double gp, double alpha, double beta, double mWboson)
 calculates partial width for H->AA More...
 
double higgsHamplitudedecayHplusHminus (double m1, double m2, double g, double gp, double alpha, double beta, double mWboson)
 calculates partial width for H->H+H- More...
 
double higgshamplitudedecayhiggsAZboson (double m1, double m2, double m3, double g, double gp, double alpha, double beta)
 calculates partial width for h->AZ, m2 must be Zboson mass
 
double higgsHamplitudedecayhiggsAZboson (double m1, double m2, double m3, double g, double gp, double alpha, double beta)
 calculates partial width for H->AZ, m2 must be Zboson mass
 
double higgsAamplitudedecayhiggshZboson (double m1, double m2, double m3, double g, double gp, double alpha, double beta)
 calculates partial width for A->hZ, m2 must be Zboson mass
 
double higgsAamplitudedecayhiggsHZboson (double m1, double m2, double m3, double g, double gp, double alpha, double beta)
 calculates partial width for A->HZ, m2 must be Zboson mass
 
double higgsAamplitudedecayhiggshorHZbosonNMSSM (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double thetaA, DoubleMatrix &CPEMix, int pseudoscalar, int higgs)
 m2 must be Z mass
 
double higgshamplitudedecay2squarksamehand (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mupq, double mdownq, int sq)
 calculates partial width for h->squark squark with no mixing and squarks of same handedness, therefore for first two generations, int sq tells the function which squarks it's decaying into - uL, dL, uR, dR for sq = 1,2,3,4 respectively
 
double higgshamplitudedecay2squarksamehandNMSSM (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mq, DoubleMatrix &CPEMix, int sq)
 takes MSSM amplitude and applies relevant NMSSM prefactor to get NMSSM amplitude More...
 
double higgshamplitudedecay2sleptonsamehandNMSSM (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mq, DoubleMatrix &CPEMix, int sl)
 
double higgsHamplitudedecay2sleptonsamehandNMSSM (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mq, DoubleMatrix &CPEMix, int sl)
 
double higgsH3amplitudedecay2sleptonsamehandNMSSM (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mq, DoubleMatrix &CPEMix, int sl)
 
double higgshamplitudedecay2squarkdiffhand (double m1, double m2, double m3, double g, double alpha, double beta, double mWboson, double mupq, double mdownq, double greekmu, double Aup, double Adown, int sq)
 calculates partial width for h->squark squark with no mixing and squarks of different handedness, therefore for first two generations, int sq tells the function which squarks it's decaying into - uL, dL, uR, dR for sq = 1,2,3,4 respectively
 
double higgshamplitudedecay2squarkdiffhandNMSSM (double m1, double m2, double m3, double g, double alpha, double beta, double mWboson, double mq, double Aq, double mueff, double lam, DoubleMatrix &CPEMix, int sq, int higgs)
 
double higgsHamplitudedecay2squarksamehand (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mupq, double mdownq, int sq)
 calculates partial width for H->squark squark with no mixing and squarks of same handedness, therefore for first two generations, int sq tells the function which squarks it's decaying into - uL, dL, uR, dR for sq = 1,2,3,4 respectively
 
double higgsHamplitudedecay2squarksamehandNMSSM (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mq, DoubleMatrix &CPEMix, int sq)
 
double higgsH3amplitudedecay2squarksamehandNMSSM (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mq, DoubleMatrix &CPEMix, int sq)
 
double higgsHamplitudedecay2squarkdiffhand (double m1, double m2, double m3, double g, double alpha, double beta, double mWboson, double mupq, double mdownq, double greekmu, double Aup, double Adown, int sq)
 calculates partial width for H->squark squark with no mixing and squarks of different handedness, therefore for first two generations, int sq tells the function which squarks it's decaying into - uL, dL, uR, dR for sq = 1,2,3,4 respectively
 
double higgshamplitudedecay2sleptonsamehand (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mel, int sl)
 calculates partial width for h->slepton slepton with no mixing and sleptons of same handedness, therefore for first two generations, int sl tells the function which sleptons it's decaying into - nuL, eL, eR for sl = 1,2,3 respectively
 
double higgshamplitudedecay2sleptondiffhand (double m1, double m2, double m3, double g, double alpha, double beta, double mWboson, double mel, double greekmu, double Aelectron, int sl)
 calculates partial width for h->slepton slepton with no mixing and sleptons of different handedness, therefore for first two generations, int sl tells the function which sleptons it's decaying into - nuL, eL, eR for sl = 1,2,3 respectively
 
double higgsHamplitudedecay2sleptonsamehand (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mel, int sl)
 calculates partial width for H->slepton slepton with no mixing and sleptons of same handedness, therefore for first two generations, int sl tells the function which sleptons it's decaying into - nuL, eL, eR for sl = 1,2,3 respectively
 
double higgsHamplitudedecay2sleptondiffhand (double m1, double m2, double m3, double g, double alpha, double beta, double mWboson, double mel, double greekmu, double Aelectron, int sl)
 calculates partial width for H->slepton slepton with no mixing and sleptons of different handedness, therefore for first two generations, int sl tells the function which sleptons it's decaying into - nuL, eL, eR for sl = 1,2,3 respectively
 
double higgshamplitudedecaystop1stop1 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for h->stop1 antistop1
 
double higgshamplitudedecaystop2stop2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for h->stop2 antistop2
 
double higgshamplitudedecaystop1stop2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for h->stop1 antistop2 or stop2 antistop1 as they are the same
 
double higgshamplitudedecaysbottom1sbottom1 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for h->sbottom1 antisbottom1
 
double higgshamplitudedecaysbottom2sbottom2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for h->sbottom2 antisbottom2
 
double higgshamplitudedecaysbottom1sbottom2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for h->sbottom1 antisbottom2 or sbottom2 antisbottom1 as they are the same
 
double higgsHamplitudedecaystop1stop1 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for H->stop1 antistop1
 
double higgsHamplitudedecaystop2stop2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for H->stop2 antistop2
 
double higgsHamplitudedecaystop1stop2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for H->stop1 antistop2 or stop2 antistop1 as they are the same
 
double higgsHamplitudedecaysbottom1sbottom1 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for H->sbottom1 antisbottom1
 
double higgsHamplitudedecaysbottom2sbottom2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for H->sbottom2 antisbottom2
 
double higgsHamplitudedecaysbottom1sbottom2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for H->sbottom1 antisbottom2 or sbottom2 antisbottom1 as they are the same
 
double higgshamplitudedecaystau1stau1 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtau, double greekmu, double Atau, double theta)
 calculates partial width for h->stau1 antistau1
 
double higgshamplitudedecaystau2stau2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtau, double greekmu, double Atau, double theta)
 calculates partial width for h->stau2 antistau2
 
double higgshamplitudedecaystau1stau2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtau, double greekmu, double Atau, double theta)
 calculates partial width for h->stau1 antistau2 or h->stau2 antistau1 as these widths have the same value
 
double higgsHamplitudedecaystau1stau1 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtau, double greekmu, double Atau, double theta)
 calculates partial width for H->stau1 antistau1
 
double higgsHamplitudedecaystau2stau2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtau, double greekmu, double Atau, double theta)
 calculates partial width for H->stau2 antistau2
 
double higgsHamplitudedecaystau1stau2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtau, double greekmu, double Atau, double theta)
 calculates partial width for H->stau1 antistau2 or H->stau2 antistau1 as these widths have the same value
 
double higgsAamplitudedecaysfermions (double m1, double m2, double m3, double g, double mWboson, double mf, double greekmu, double Asf, double beta, char uord)
 calculates partial width for A->sfermion1 sfermion2, these sfermions must be of the same type, note can't have decays to sfermion1 and sfermion 1 or to sfermion2 and sfermion2 by CP conservation, also note there's no dependence on sfermion mixing angle in these decays, mf is the mass of the corresponding fermion. char uord tells it whether we have up type (so Asf*cot(beta)) or down type (so Asf*tan(beta)). Finally note that the extra factor of three from colour for squarks is added above by multiplying the answer this function gives by 3
 
double higgsAamplitudedecaysfermionsNMSSM (double m1, double m2, double m3, double g, double mWboson, double mf, double Asf, double beta, double lam, double mueff, DoubleMatrix &CPOMix, char uord, int pseudoscalar)
 mf here should be runmf and mWboson should be runmw More...
 
double higgsHplusamplitudedecayquarkantiquark (double m1, double m2, double m3, double g, double mWboson, double beta, DoubleMatrix &VCKM, int quark, int antiquark)
 calculates partial width for H+ ->quark1 antiquark2, this is the same as H- -> antiquark1 quark2, note the up type quark (quark1) is m2, the down type quark (quark2) is m3, the int quark is 1,2,3 (u,c,t) and int antiquark is 1,2,3 (d,s,b) then this selects VCKM matrix element VCKM(quark, antiquark)
 
double higgsHplusamplitudedecayneutralinochargino (double m1, double m2, double m3, double g, double gp, double beta, double thetaL, double thetaR, DoubleMatrix &mixNeut, int neutralino, int chargino)
 Calculates the partial width for decays of the charged H+ higgs to a neutralino and a chragino Wtilda+ where neutralino is j in T&B whilst chargino is i.
 
double higgsHplusamplitudedecayWbosonhiggsh (double m1, double m2, double m3, double g, double alpha, double beta)
 Calculates the partial width for a charged Higgs boson H+ to decay to a Wboson and a neutral light scalar higgs (i.e. the SM-like higgs) h, m2 must be the W boson mass.
 
DoubleVector higgsHplusamplitudedecaysquarksquark (double m1, double m2, double m3, double g, double beta, double mWboson, double mup, double mdown, double greekmu, double Aup, double Adown)
 
DoubleVector higgsHplusamplitudedecaysquarksquarkmix (double m1, double m2, double m3, double g, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double thetatop, double thetabottom)
 calculates partial width for Hplus->squarki antisquarkj where i,j are each 1/2 so mixing included, i.e. third generations of squarks
 
double higgsesamplitudedecaygammagammatotal (double m1, double g, double gprime, double alphaEmrun, double mWboson, double polemw, double alpha, double beta, double mtop, double mbottom, double mcharm, double mtau, double mHpm, double mstop1, double mstop2, double msbottom1, double msbottom2, double mstau1, double mstau2, double mchargino1, double mchargino2, double thetaL, double thetaR, double thetat, double thetab, double thetatau, double greekmu, double Atop, double Abottom, double Atau, char higgstype)
 function that calculates the partial width for h->gamma gamma at 1-loop (forbidden at tree-level)
 
DoubleVector higgsmatrixelementgammagammaviatops (double m1, double mtop, double alpha, double beta, char higgstype)
 function that calculates the part of the matrix element that differs depending on the loop particles, in this case it calculates it for tops in the loop.
 
DoubleVector higgsmatrixelementgammagammaviastops (double m1, double mstop1, double mstop2, double mtop, double mbottom, double mWboson, double thetat, double g, double gprime, double alpha, double beta, double greekmu, double Atop, double Abottom, char higgstype)
 function that calculates the part of the matrix element that differs depending on the loop particles, in this case it calculates it for stop1s and for stop2s in the loop.
 
DoubleVector higgsmatrixelementgammagammaviabottoms (double m1, double mbottom, double alpha, double beta, char higgstype)
 function that calculates the part of the matrix element that differs depending on the loop particles, in this case it calculates it for bottoms in the loop.
 
DoubleVector higgsmatrixelementgammagammaviasbottoms (double m1, double msbottom1, double msbottom2, double mbottom, double mtop, double mWboson, double thetab, double g, double gprime, double alpha, double beta, double Atop, double Abottom, double greekmu, char higgstype)
 function that calculates the part of the matrix element that differs depending on the loop particles, in this case it calculates it for sbottom1s and for sbottom2s in the loop.
 
DoubleVector higgsmatrixelementgammagammaviacharms (double m1, double mcharm, double alpha, double beta, char higgstype)
 function that calculates the part of the matrix element that differs depending on the loop particles, in this case it calculates it for charms in the loop.
 
DoubleVector higgsmatrixelementgammagammaviataus (double m1, double mtau, double alpha, double beta, char higgstype)
 function that calculates the part of the matrix element that differs depending on the loop particles, in this case it calculates it for taus in the loop.
 
DoubleVector higgsmatrixelementgammagammaviastaus (double m1, double mstau1, double mstau2, double mtau, double mWboson, double thetatau, double g, double gprime, double alpha, double beta, double greekmu, double Atau, char higgstype)
 function that calculates the part of the matrix element that differs depending on the loop particles, in this case it calculates it for stau1s and for stau2s in the loop.
 
DoubleVector higgsmatrixelementgammagammaviaWbosons (double m1, double mWboson, double alpha, double beta, double g, double gprime, char higgstype)
 function that calculates the part of the matrix element that differs depending on the loop particles, in this case it calculates it for W bosons in the loop.
 
DoubleVector higgsmatrixelementgammagammaviaHpms (double m1, double mHpm, double mWboson, double alpha, double beta, double g, double gprime, char higgstype)
 function that calculates the part of the matrix element that differs depending on the loop particles, in this case it calculates it for H+-s in the loop.
 
DoubleVector higgsmatrixelementgammagammaviachargino1s (double m1, double mchargino1, double mWboson, double alpha, double beta, double thetaL, double thetaR, char higgstype)
 function that calculates the part of the matrix element that differs depending on the loop particles, in this case it calculates it for chargino1s in the loop.
 
DoubleVector higgsmatrixelementgammagammaviachargino2s (double m1, double mchargino2, double mWboson, double alpha, double beta, double thetaL, double thetaR, char higgstype)
 function that calculates the part of the matrix element that differs depending on the loop particles, in this case it calculates it for chargino2s in the loop.
 
double higgsesamplitudedecaygluongluontotal (double m1, double g, double gs, double gprime, double mWboson, double alpha, double beta, double mtop, double mbottom, double mcharm, double mstop1, double mstop2, double msbottom1, double msbottom2, double thetat, double thetab, double greekmu, double Atop, double Abottom, double mstrange, double mscharmL, double mscharmR, double msstrangeL, double msstrangeR, double Acharm, double Astrange, double mup, double mdown, double msupL, double msupR, double msdownL, double msdownR, double Aup, double Adown, char higgstype, bool QCD)
 function that calculates the partial width for h->gluon gluon at 1-loop (forbidden at tree-level) More...
 
DoubleVector hggQCDcorrections (double amplitudeW, double alphas, int Nf, char higgs, double prefactor, double SMtotr, double SMtoti, double sqtotr, double sqtoti)
 Function for QCD corrections to h->gg.
 
double fermionQCDcorrections (double amplitudeW, double alphasnow, double alphasprev, int Nf, char higgs)
 Function for the fermionic QCD corrections to e.g. h->gg. More...
 
double susyQCDcorrections (double prefactor, double alphas, double SMtotr, double SMtoti, double sqtotr, double sqtoti)
 Function for the susy QCD corrections to h->gg, i.e. the corrections to the squark loops. More...
 
double higgsamplitudedecayVVstar (double m1, double mboson, double g, double gp, double beta, double alpha, char Vtype, DoubleMatrix &CPEMix, bool nmssmIsIt, int higgs)
 Function that calculates higgs to VV* to Vff'bar. Formula derived as in Marciano and Keung, massless fermion limit and zero W width considered. More...
 
DoubleVector higgshamplitudedecayVV (double m1, double mWboson, double mZboson, double g, double gp, double alpha, double beta, char Vtype, DoubleMatrix &CPEMix, bool nmssmIsIt)
 Function that calculates the light Higgs decays to two vector bosons, both on-shell or one off-shell. More...
 
DoubleVector higgsHamplitudedecayVV (double m1, double mWboson, double mZboson, double g, double gp, double alpha, double beta, char Vtype, DoubleMatrix &CPEMix, bool nmssmIsIt)
 Function that calculates the Heavy Higgs decays to two vector bosons, assuming both are on-shell.
 
DoubleVector higgsH3amplitudedecayVVNMSSM (double m1, double mWboson, double mZboson, double g, double gp, double alpha, double beta, char Vtype, DoubleMatrix &CPEMix, bool nmssmIsIt)
 Function that calculates the Heavy Higgs decays to two vector bosons, assuming both are on-shell. More...
 
double higgsesamplitudedecayZbosonphotontotal (double m1, double mZboson, double g, double gprime, double alphaEmrun, double polemw, double runmw, double alpha, double beta, double mtop, double mbottom, double mcharm, double mstrange, double mstop1, double mstop2, double msbottom1, double msbottom2, double mHplus, double thetat, double thetab, double greekmu, double Atop, double Abottom, char higgstype)
 function that calculates the partial width for h->Z gamma at 1-loop (forbidden at tree-level)
 
DoubleVector higgsmatrixelementZgammaviafermions (double m1, double mferm, double mZboson, double mWboson, double alpha, double beta, double g, double gprime, double Qferm, double I3ferm, char fermtype, char higgstype)
 Calculates contribution of fermion loop to higgs to Z gamma decay.
 
DoubleVector higgsmatrixelementZgammaviaWbosons (double m1, double mWboson, double mZboson, double alpha, double beta, double g, double gprime, char higgstype)
 Calculates contribution of W boson loop to higgs to Z gamma decay.
 
DoubleVector higgsmatrixelementZgammaviaHplus (double m1, double mWboson, double mZboson, double mHplus, double alpha, double beta, double g, double gprime, char higgstype)
 Calculates contribution of charged higgs boson loop to higgs to Z gamma decay.
 
double gluinoamplitudedecaygravitino (double m1, double mgrav, double MPlreduced, int gravonoff, int gluNLSP)
 Decays to gravitinos. More...
 
double squarkamplitudedecaygravitino (double m1, double mgrav, double mquark, double MPlreduced, int gravonoff, int squNLSP)
 Function that calculates the decays to gravitinos of squark if int gravonoff == 1, otherwise decays to gravitinos are off. More...
 
double neutralinoamplitudedecayphotongravitino (double m1, double mgrav, double MPlreduced, DoubleMatrix &mixNeut, double g, double gp, int neutralino, int gravonoff, int neutNLSP)
 Function that calculates the decays to gravitino and photon of a neutralino if int gravonoff == 1, otherwise decays to gravitinos are off. More...
 
double neutralinoamplitudedecayZgravitino (double m1, double mZ, double mgrav, double MPlreduced, DoubleMatrix &mixNeut, double g, double gp, double beta, int neutralino, int gravonoff, int neutNLSP)
 Function that calculates the decays to gravitino and Z boson of a neutralino if int gravonoff == 1, otherwise decays to gravitinos are off. More...
 
double neutralinoamplitudedecayphigravitino (double m1, double mphi, double mgrav, double MPlreduced, DoubleMatrix &mixNeut, double alpha, double beta, int neutralino, int gravonoff, char phi, int neutNLSP)
 Function that calculates the decays to gravitino and Z boson of a neutralino if int gravonoff == 1, otherwise decays to gravitinos are off. More...
 
void slhaDecays (ostream &fout, vector< Particle > &decayTable, bool outputPartialWidths)
 outputs a decay table in SLHA format
 

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://hepforge.cedar.ac.uk/softsusy/

Function Documentation

double chargino2amplitudedecaychargino1neutHiggs ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
double  thetaL,
double  thetaR,
double  beta,
double  alpha,
char  phi 
)

m2 must be neutral Higgs mass

throw("DECAY to h\n");

throw("DECAY to H\n");

throw("DECAY to A\n");

double charginoamplitudedecayleptonsleptonL ( double  m1,
double  m2,
double  m3,
double  g,
double  thetaLorR,
int  chargino 
)

lepton mass is m2, use thetaR for decays to sneutrinos and leptons, use thetaL for decays to sleptons neutrinos

altered as now + quarkmass/initialmass ^2 not minus

double charginoamplitudedecayquarksquarkL ( double  m1,
double  m2,
double  m3,
double  g,
double  theta,
int  chargino 
)

quark mass is m2

altered as now + quarkmass/initialmass ^2 not minus

chargino1 decaying

theta is thetaL if sdownL and thetaR if supL

chargino2 decaying

theta is thetaL if sdownL and thetaR if supL

double charginoamplitudedecayquarksquarkmix ( double  m1,
double  m2,
double  m3,
double  g,
double  theta,
double  thetaL,
double  thetaR,
double  beta,
double  runmt,
double  runmb,
double  mWboson,
int  chargino,
int  upordowntypesquark,
int  oneortwo 
)

quark mass is m2

altered as now + quarkmass/initialmass ^2 not minus

double charginoamplitudedecaysnutautau ( double  m1,
double  m2,
double  m3,
double  g,
double  thetaL,
double  thetaR,
double  beta,
double  mWboson,
int  chargino 
)

m2 must be tau mass

altered as now + quarkmass/initialmass ^2 not minus

double charginoamplitudedecaystaunutau ( double  m1,
double  m2,
double  m3,
double  g,
double  thetaL,
double  thetaR,
double  thetatau,
double  beta,
double  mWboson,
double  mtau,
int  oneortwo,
int  chargino 
)

m2 must be nutau mass (i.e. 0)

altered as now + quarkmass/initialmass ^2 not minus

reduces to 1 - pow(m3/m1,2) as m2 = 0

decaying to a stau1

decaying to a stau2

decaying to a stau1

decaying to a stau2

double charginoToNeutralino1pion ( const MssmSoftsusy m)

First, do hadronic decays.

Two body partial width calculations.

double fermionQCDcorrections ( double  amplitudeW,
double  alphasnow,
double  alphasprev,
int  Nf,
char  higgs 
)

Function for the fermionic QCD corrections to e.g. h->gg.

alphasprev required so can multiply by ratio accounting for change in alphas effect in prefactor of hgg in gluongluontotal function above

double gluinoamplitudedecaygravitino ( double  m1,
double  mgrav,
double  MPlreduced,
int  gravonoff,
int  gluNLSP 
)

Decays to gravitinos.

Function that calculates the decays to gravitinos of gluinos if int gravonoff == 1, otherwise decays to gravitinos are off

Comment this line, last line and line 3 below this out if always want decays to gravitinos output

double higgsAamplitudedecaysamecharginoNMSSM ( double  m1,
double  m2,
double  g,
double  thetaL,
double  thetaR,
double  alpha,
double  lam,
DoubleMatrix CPOMix,
int  chargino,
int  pseudoscalar 
)

so ofcourse squarminus is just 1, just keeping link with other amplitudes

double higgsAamplitudedecaysfermionsNMSSM ( double  m1,
double  m2,
double  m3,
double  g,
double  mWboson,
double  mf,
double  Asf,
double  beta,
double  lam,
double  mueff,
DoubleMatrix CPOMix,
char  uord,
int  pseudoscalar 
)

mf here should be runmf and mWboson should be runmw

NMSSM functions (where MSSM functions haven't been recycled)

double higgsamplitudedecayVVstar ( double  m1,
double  mboson,
double  g,
double  gp,
double  beta,
double  alpha,
char  Vtype,
DoubleMatrix CPEMix,
bool  nmssmIsIt,
int  higgs 
)

Function that calculates higgs to VV* to Vff'bar. Formula derived as in Marciano and Keung, massless fermion limit and zero W width considered.

Only get H3 in NMSSM

double higgsesamplitudedecaygluongluontotal ( double  m1,
double  g,
double  gs,
double  gprime,
double  mWboson,
double  alpha,
double  beta,
double  mtop,
double  mbottom,
double  mcharm,
double  mstop1,
double  mstop2,
double  msbottom1,
double  msbottom2,
double  thetat,
double  thetab,
double  greekmu,
double  Atop,
double  Abottom,
double  mstrange,
double  mscharmL,
double  mscharmR,
double  msstrangeL,
double  msstrangeR,
double  Acharm,
double  Astrange,
double  mup,
double  mdown,
double  msupL,
double  msupR,
double  msdownL,
double  msdownR,
double  Aup,
double  Adown,
char  higgstype,
bool  QCD 
)

function that calculates the partial width for h->gluon gluon at 1-loop (forbidden at tree-level)

Now as the only difference is in the prefactor I can use the same functions for each of the loop contributions as in the higgs to gamma gamma case.

double higgsH3amplitudedecay2sleptonsamehandNMSSM ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
double  alpha,
double  beta,
double  mWboson,
double  mq,
DoubleMatrix CPEMix,
int  sl 
)

snuLsnuL - drop terms proportional to ml^2 here

slLslL

slRslR

double higgsH3amplitudedecay2squarksamehandNMSSM ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
double  alpha,
double  beta,
double  mWboson,
double  mq,
DoubleMatrix CPEMix,
int  sq 
)

uLuL

dLdL

uRuR

dRdR

DoubleVector higgsH3amplitudedecayVVNMSSM ( double  m1,
double  mWboson,
double  mZboson,
double  g,
double  gp,
double  alpha,
double  beta,
char  Vtype,
DoubleMatrix CPEMix,
bool  nmssmIsIt 
)

Function that calculates the Heavy Higgs decays to two vector bosons, assuming both are on-shell.

Only get H3 in NMSSM

Only get H3 in NMSSM

double higgshamplitudedecay2sleptonsamehandNMSSM ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
double  alpha,
double  beta,
double  mWboson,
double  mq,
DoubleMatrix CPEMix,
int  sl 
)

snuLsnuL - drop terms proportional to ml^2 here

slLslL

slRslR

double higgsHamplitudedecay2sleptonsamehandNMSSM ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
double  alpha,
double  beta,
double  mWboson,
double  mq,
DoubleMatrix CPEMix,
int  sl 
)

snuLsnuL - drop terms proportional to ml^2 here

slLslL

slRslR

double higgshamplitudedecay2squarkdiffhandNMSSM ( double  m1,
double  m2,
double  m3,
double  g,
double  alpha,
double  beta,
double  mWboson,
double  mq,
double  Aq,
double  mueff,
double  lam,
DoubleMatrix CPEMix,
int  sq,
int  higgs 
)

uLuR

dLdR

double higgshamplitudedecay2squarksamehandNMSSM ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
double  alpha,
double  beta,
double  mWboson,
double  mq,
DoubleMatrix CPEMix,
int  sq 
)

takes MSSM amplitude and applies relevant NMSSM prefactor to get NMSSM amplitude

uLuL

dLdL

uRuR

dRdR

double higgsHamplitudedecay2squarksamehandNMSSM ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
double  alpha,
double  beta,
double  mWboson,
double  mq,
DoubleMatrix CPEMix,
int  sq 
)

uLuL

dLdL

uRuR

dRdR

double higgshamplitudedecayAA ( double  m1,
double  m2,
double  g,
double  gp,
double  alpha,
double  beta,
double  mWboson 
)

calculates partial width for h->AA

obviously 1, just for comparison and consistency with other decay modes

double higgsHamplitudedecayAA ( double  m1,
double  m2,
double  g,
double  gp,
double  alpha,
double  beta,
double  mWboson 
)

calculates partial width for H->AA

obviously 1, just for comparison and consistency with other decay modes

double higgsHamplitudedecayhh ( double  m1,
double  m2,
double  g,
double  gp,
double  alpha,
double  beta,
double  mWboson 
)

calculates partial width for h->hh

obviously 1, just for comparison and consistency with other decay modes

double higgsHamplitudedecayHplusHminus ( double  m1,
double  m2,
double  g,
double  gp,
double  alpha,
double  beta,
double  mWboson 
)

calculates partial width for H->H+H-

obviously 1, just for comparison and consistency with other decay modes

DoubleVector higgshamplitudedecayVV ( double  m1,
double  mWboson,
double  mZboson,
double  g,
double  gp,
double  alpha,
double  beta,
char  Vtype,
DoubleMatrix CPEMix,
bool  nmssmIsIt 
)

Function that calculates the light Higgs decays to two vector bosons, both on-shell or one off-shell.

double higgsamplitudedecayVVstar (double m1, double mboson, double g, double gp, double beta, double alpha, char Vtype);

I don't calculate cases where both are off-shell

I don't calculate cases where both are off-shell

DoubleVector higgsHplusamplitudedecaysquarksquark ( double  m1,
double  m2,
double  m3,
double  g,
double  beta,
double  mWboson,
double  mup,
double  mdown,
double  greekmu,
double  Aup,
double  Adown 
)

calculates partial width for Hplus->squarki antisquarkj where i,j are each L/R so no mixing, i.e. first two generations of squarks

double higgslorHamplitudedecayquarkantiquark ( double  m1,
double  m2,
double  g,
double  alpha,
double  beta,
double  mWboson,
int  uord,
char  lorH,
DoubleMatrix CPEMix,
bool  NMSSMmodel,
bool  QCD,
double  alphas 
)

uord indicates if it's an up type quark (1) or down type quark (0) to choose which trig functions to act on the mixing angles (which parts of the mixing matrices), and int lorH tells the program if it's a light higgs (l) or heavy higgs (H) decaying in order to change the trig functions acting on the mixing angles; note can also use this formula for decays of higgs to leptons as these are in this sense down-type

M for max i.e. H3 heaviest higgs in NMSSM

u

d

double higgsphiamplitudedecaydifchargino ( double  m1,
double  m2,
double  m3,
double  g,
double  thetaL,
double  thetaR,
double  alpha,
double  beta,
char  phi 
)

phi tells it whether a "h", "H" or "A" is decaying

this function calls the function higgsphicharginocouplings to calculate the couplings for it

double higgsphiamplitudedecayneutralinoneutralino ( double  m1,
double  m2,
double  m3,
double  g,
double  tanthetaW,
double  mixingangle,
DoubleMatrix mixNeut,
int  ineutralino,
int  fneutralino,
char  phi 
)

phi tells it whether a "h", "H" or "A" is decaying

here mixingangle is alpha

these are actually Xij/g and Xji/g really

here mixingangle is alpha

here mixingangle is beta

double higgsphiamplitudedecaysamechargino ( double  m1,
double  m2,
double  g,
double  thetaL,
double  thetaR,
double  alpha,
double  beta,
int  chargino,
char  phi 
)

phi tells it whether a "h", "H" or "A" is decaying

so ofcourse squarminus is just 1, just keeping link with other amplitudes

double higgsphiamplitudedecaysamecharginoNMSSM ( double  m1,
double  m2,
double  g,
double  thetaL,
double  thetaR,
double  lam,
DoubleMatrix CPEMix,
int  chargino,
int  higgs 
)

so ofcourse squarminus is just 1, just keeping link with other amplitudes

double neutralinoamplitudedecayleptonsleptonLorR ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
DoubleMatrix mixNeut,
char  LorR,
int  neutralino 
)

m2 must be lepton mass

so get wino and zino couplings as LH slepton

so get only Zino couplings as RH

double neutralinoamplitudedecayneutralinoneutHiggs ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
DoubleMatrix mixNeut,
double  mixingangle,
int  ineutralino,
int  fneutralino,
char  phi 
)

m2 must be phi mass, ineutralino is i in T&B whilst fneutralino is j

here mixingangle is alpha

here mixingangle is alpha

here mixingangle is beta

double neutralinoamplitudedecayphigravitino ( double  m1,
double  mphi,
double  mgrav,
double  MPlreduced,
DoubleMatrix mixNeut,
double  alpha,
double  beta,
int  neutralino,
int  gravonoff,
char  phi,
int  neutNLSP 
)

Function that calculates the decays to gravitino and Z boson of a neutralino if int gravonoff == 1, otherwise decays to gravitinos are off.

Comment this line, last line and line 3 below this out if always want decays to gravitinos output

double neutralinoamplitudedecayphotongravitino ( double  m1,
double  mgrav,
double  MPlreduced,
DoubleMatrix mixNeut,
double  g,
double  gp,
int  neutralino,
int  gravonoff,
int  neutNLSP 
)

Function that calculates the decays to gravitino and photon of a neutralino if int gravonoff == 1, otherwise decays to gravitinos are off.

Comment this line, last line and line 3 below this out if always want decays to gravitinos output

double neutralinoamplitudedecayquarksquarkLorR ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
DoubleMatrix mixNeut,
int  uordtype,
char  LorR,
int  neutralino 
)

m2 must be quark mass

up type squark (i.e. u squark or c squark)

down type squark (i.e. d squark or s squark)

so get wino and zino couplings as LH squark

so get only Zino couplings as RH

double neutralinoamplitudedecaysquark3quarkmix ( double  m1,
double  m2,
double  m3,
double  mWboson,
double  theta,
double  beta,
DoubleMatrix mixNeut,
double  g,
double  gp,
double  runmq,
int  squark,
int  oneortwo,
int  neutralino 
)

m2 must be quark mass

we have stops

we have stop1s

this is just simpler (rearranged) form of atopr(1,i) from susyhit *g

this is just simpler (rearranged) form of btopr(1,i) from susyhit * g

we have stop2s

again simplified form of atopr(2,i) * g from susyhit

again simplified form of btopr(2,i) * g from susyhit

we have sbottoms

we have sbottom1s

just simplified form of abot(1,i) * g from susyhit

we have sbottom2s

simplified abot(2,i)*g from susyhit

simplified bbot(2,i)*g from susyhit

double neutralinoamplitudedecaystautau ( double  m1,
double  m2,
double  m3,
double  mWboson,
double  theta,
double  beta,
DoubleMatrix mixNeut,
double  g,
double  gp,
int  oneortwo,
int  neutralino 
)

m2 must be tau (i.e. lepton) mass

we are decaying into a stau1

we are decaying into a stau2

double neutralinoamplitudedecayZgravitino ( double  m1,
double  mZ,
double  mgrav,
double  MPlreduced,
DoubleMatrix mixNeut,
double  g,
double  gp,
double  beta,
int  neutralino,
int  gravonoff,
int  neutNLSP 
)

Function that calculates the decays to gravitino and Z boson of a neutralino if int gravonoff == 1, otherwise decays to gravitinos are off.

Comment this line, last line and line 3 below this out if always want decays to gravitinos output

double sleptonamplitudedecaychargino ( double  m1,
double  m2,
double  m3,
double  g,
double  theta,
int  chargino 
)

for both sleptonL decays to charginos + neutrinos and for sneutrino decays to lepton + charginos - just change theta from thetaL in first case to thetaR in second case

note in the slepton decay to neutrinos case m2 is zero so lambda reduces to squareratio - giving squareratio squared

double sneutrinoamplitudedecayneutrinoneutralino ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
DoubleMatrix mixNeut,
int  neutralino 
)

note here as m2=0 then lambda and squareratio each reduce to (1-pow(m3/m1,2))

double squark32amplitudedecayneutralHiggssquark3 ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
double  mWboson,
double  beta,
double  alpha,
double  thetat,
double  thetab,
double  greekmu,
double  At,
double  Ab,
double  mt,
double  mb,
int  torb,
char  phi 
)

possible minus sign issue here, both terms are same sign in susyhit -> changed second sign to - ?? whereas Tata and Baer has a signs of two terms opposite - note as it's squared anyway only relative sign between the two terms matters

stop2 decay

sbottom2 decay

double squark3amplitudedecaychargedHiggssquark3 ( double  m1,
double  m2,
double  m3,
double  g,
double  mWboson,
double  beta,
double  thetat,
double  thetab,
double  greekmu,
double  At,
double  Ab,
double  mt,
double  mb,
int  t1or2,
int  b1or2 
)

we have an initial stop1

we have a final state sbottom1

we have a final state sbottom2

we have an initial stop2

we have a final state sbottom1

we have a final state sbottom2

double squark3amplitudedecayneutralino ( double  m1,
double  m2,
double  m3,
double  mWboson,
double  theta,
double  beta,
DoubleMatrix mixNeut,
double  g,
double  gp,
double  runmq,
int  squark,
int  oneortwo,
int  neutralino 
)

we have stops

we have stop1s

this is just simpler (rearranged) form of atopr(1,i) from susyhit *g

this is just simpler (rearranged) form of btopr(1,i) from susyhit * g

we have stop2s

again simplified form of atopr(2,i) * g from susyhit

again simplified form of btopr(2,i) * g from susyhit

we have sbottoms

we have sbottom1s

just simplified form of abot(1,i) * g from susyhit

we have sbottom2s

simplified abot(2,i)*g from susyhit

simplified bbot(2,i)*g from susyhit

double squark3amplitudedecaysquark3Wboson ( double  m1,
double  m2,
double  m3,
double  g,
double  thetat,
double  thetab,
int  m1torb,
int  m1oneortwo,
int  m3torb,
int  m3oneortwo 
)

m1torb tells the function if the initial squark is a stop or sbottom, m1oneortwo tells it whether it's the lighter or heavier squark, similarly for the final state squark with m3torb and m3oneortwo

we have an initial stop

we have an initial stop1

we have an initial sbottom

we have an initial sbottom1

we have a final state stop

we have a final state stop2

we have a final state sbottom

we have a final state sbottom1

we have a final state sbottom2

double squarkamplitudedecaygravitino ( double  m1,
double  mgrav,
double  mquark,
double  MPlreduced,
int  gravonoff,
int  squNLSP 
)

Function that calculates the decays to gravitinos of squark if int gravonoff == 1, otherwise decays to gravitinos are off.

Comment this line, last line and line 3 below this out if always want decays to gravitinos output

double squarkRamplitudedecayneutralino ( double  m1,
double  m2,
double  m3,
double  g,
double  gprime,
DoubleMatrix mixNeut,
int  neutralino,
int  uord 
)

neutralino takes values of 1, 2, 3, or 4 and denotes which neutralino mass eigenstate we decay into, uord takes value 1 for up quarks (or charm quarks) and -1 for down quarks (or strange quarks) in order to change the sign and magnitude of the coefficient BqZ accordingly

Following changes in AqZ suggested by SUSYHIT

need to check this formula, unsure about BqZ and also if it should be mod squared or just the squared I have done here!

double stau2amplitudedecaystau1phi ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
double  thetatau,
double  beta,
double  alpha,
double  mWboson,
double  mtau,
double  greekmu,
double  Atau,
char  phi 
)

is just -1 + 3*pow(tanthetaW,2)

double stauamplitudedecaynutauchargino ( double  m1,
double  m2,
double  m3,
double  g,
double  mWboson,
double  theta,
double  thetaL,
double  beta,
double  mtau,
int  oneortwo,
int  chargino 
)

again lambda and squareratio reduce to same thing as m2 = 0

double stauamplitudedecaytauneutralino ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
double  mWboson,
DoubleMatrix mixNeut,
double  theta,
double  beta,
int  oneortwo,
int  neutralino 
)

we have a stau1 decaying

we have a stau2 decaying

double stausneutrinoamplitudedecaytauchargino ( double  m1,
double  m2,
double  m3,
double  g,
double  mWboson,
double  beta,
double  thetaL,
double  thetaR,
int  chargino 
)

as m2 is mtau which is what we need to calculate ftau

double stausneutrinoamplitudedecaytauneutrinoneutralino ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
DoubleMatrix mixNeut,
int  neutralino 
)

note lambda and squareratio reduce to same thing here as m2 = 0

double susyQCDcorrections ( double  prefactor,
double  alphas,
double  SMtotr,
double  SMtoti,
double  sqtotr,
double  sqtoti 
)

Function for the susy QCD corrections to h->gg, i.e. the corrections to the squark loops.

additional correction at NLO to squark loops

Note the (SMr*sqr+pow(sqr,2)+SMi*sqi+pow(sqi,2)) is just Re[c.c. of total matrix element x matrix element part from squarks] this is the interference of the total matrix element with the squark parts of the matrix element which get extra alphas susy qcd corrections. Note amplitude here must be added to the amplitude inc FQCD corrections to get the total FQCD and SQCD corrected amplitude.